A name for an existing type expression, without constructing
a distinct runtime datatype. In
Haskell,
type Seq a = a -> [Integer] names a function representation; an
equality test constraint can belong to an operation on that representation without belonging to the
synonym itself.