# Sorial type families
```agda
module foundation.sorial-type-families where
```
<details><summary>Imports</summary>
```agda
open import foundation.universe-levels
open import foundation-core.equivalences
open import structured-types.pointed-types
```
</details>
## Idea
The notion of _sorial type family_ is a generalization of the notion of
[torsorial type family](foundation.torsorial-type-families.md). Recall that if a
type family `E` over a [pointed type](structured-types.pointed-types.md) `B` is
torsorial, then we obtain in a canonical way, for each `x : B` an action
```text
E x → (E pt ≃ E x)
```
A **sorial type family** is a type family `E` over a pointed type `B` for which
we have such an action.
## Definitions
### Sorial type families
```agda
module _
{l1 l2 : Level} (B : Pointed-Type l1) (E : type-Pointed-Type B → UU l2)
where
is-sorial-family-of-types : UU (l1 ⊔ l2)
is-sorial-family-of-types =
(x : type-Pointed-Type B) → E x → (E (point-Pointed-Type B) ≃ E x)
```