# Spans of families of types
```agda
module foundation.spans-families-of-types where
```
<details><summary>Imports</summary>
```agda
open import foundation.dependent-pair-types
open import foundation.universe-levels
open import foundation-core.equivalences
open import foundation-core.function-types
```
</details>
## Idea
Consider a family of types `A i` indexed by `i : I`. A
{{#concept "span" Disambiguation="family of types" Agda=span-type-family}} on
`A` consists of a type `S` equipped with a family of maps
```text
(i : I) → S → A i.
```
The type `S` is called the
{{#concept "spanning type" Disambiguation="span of family of types" Agda=spanning-type-span-type-family}}
of the span.
## Definitions
### Spans on families of types
```agda
module _
{l1 l2 : Level} (l3 : Level) {I : UU l1} (A : I → UU l2)
where
span-type-family : UU (l1 ⊔ l2 ⊔ lsuc l3)
span-type-family = Σ (UU l3) (λ S → (i : I) → S → A i)
module _
{l1 l2 l3 : Level} {I : UU l1} {A : I → UU l2}
(s : span-type-family l3 A)
where
spanning-type-span-type-family : UU l3
spanning-type-span-type-family = pr1 s
map-span-type-family :
(i : I) → spanning-type-span-type-family → A i
map-span-type-family = pr2 s
```
## See also
- [(Binary) spans](foundation.spans.md)
- [Span diagrams on families of types](foundation.span-diagrams-families-of-types.md)
- [Permutations of spans of on families of types](foundation.permutations-spans-families-of-types.md)