The thrist package

Thrist is a list-like data structure (GADT)
whose elements are values of a two-parameter
datatype. The typing constraint ensures that
the second type parameter of a former value
unifies with the first type parameter of the
latter.

This threading of types is the foundation for
thrists' nice properties. E.g., paired with a
suitable semantics, function composition (.)
can be embedded.

Sub-modules demonstrate the power of the thrist
idea by emulating some familiar data structures.