A type-indexed function is a function that is defined for each member of some family of types. Haskell’s type class mechanism provides collections of open type-indexed function...
In the GADT (Generalized Algebraic Data Types) type system, a pattern-matching branch can draw type information from both the scrutinee type and the data constructor type. Even th...