-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Type-threaded list -- -- 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. -- -- For further ideas, please consult the companion (draft) paper -- "Thrists: Dominoes of Data" at -- http://www.opendylan.org/~gabor/Thrist-draft-2008-07-18.pdf @package thrist @version 0.1.2 module Data.Thrist data Thrist :: (* -> * -> *) -> * -> * -> * Nil :: Thrist ~> a a Cons :: (a ~> b) -> Thrist ~> b c -> Thrist ~> a c foldThrist :: (forall i j k. (i ~> j) -> (j ~> k) -> (i ~> k)) -> c ~> c -> Thrist ~> a c -> a ~> c appendThrist :: Thrist ~> a b -> Thrist ~> b c -> Thrist ~> a c mapThrist :: (forall i j. i +> j -> i ~> j) -> Thrist +> a b -> Thrist ~> a b instance Category (Thrist (~>)) instance Arrow (Thrist (->)) instance Monoid (Thrist (~>) a a)