A telescope is the variable context in a dependently typed program. Dependent types with free varialbes are really only well-defined in a telescope. A segment of a telescope is a tuple of types in that telescope. These are usually implicit in formal developments, but seem to be crucial to get a compositional account. Here we use them to get 'n-ary dependent function' (compare with `Data.Fun` and `Data.Rel`). I've learned this from Conor McBride on an SPLV'19 bus ride. A literary reference would be welcome. This paper is a start: Unifiers as Equivalences: Proof-Relevant Unification of Dependently Typed Data. Jesper Cockx, Dominique Devriese, Frank Piessens, ICFP'16. but they don't seem to have segments and their left action on contexts.
import public Data.Telescope.Telescope
import public Data.Telescope.Segment
import public Data.Telescope.SimpleFun
import public Data.Telescope.Fun
import public Data.Telescope.Congruence