-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Sum and Product types and such -- -- This package provides scalable composite types with neat syntax. -- Additionally it provides the strict data-structures. @package compound-types @version 0.1.2 -- | Implementations of the lazy data-structures. module CompoundTypes.Lazy data Sum2 v1 v2 Sum2_1 :: v1 -> Sum2 v1 v2 Sum2_2 :: v2 -> Sum2 v1 v2 data Sum3 v1 v2 v3 Sum3_1 :: v1 -> Sum3 v1 v2 v3 Sum3_2 :: v2 -> Sum3 v1 v2 v3 Sum3_3 :: v3 -> Sum3 v1 v2 v3 data Sum4 v1 v2 v3 v4 Sum4_1 :: v1 -> Sum4 v1 v2 v3 v4 Sum4_2 :: v2 -> Sum4 v1 v2 v3 v4 Sum4_3 :: v3 -> Sum4 v1 v2 v3 v4 Sum4_4 :: v4 -> Sum4 v1 v2 v3 v4 data Sum5 v1 v2 v3 v4 v5 Sum5_1 :: v1 -> Sum5 v1 v2 v3 v4 v5 Sum5_2 :: v2 -> Sum5 v1 v2 v3 v4 v5 Sum5_3 :: v3 -> Sum5 v1 v2 v3 v4 v5 Sum5_4 :: v4 -> Sum5 v1 v2 v3 v4 v5 Sum5_5 :: v5 -> Sum5 v1 v2 v3 v4 v5 data Sum6 v1 v2 v3 v4 v5 v6 Sum6_1 :: v1 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_2 :: v2 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_3 :: v3 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_4 :: v4 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_5 :: v5 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_6 :: v6 -> Sum6 v1 v2 v3 v4 v5 v6 data Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_1 :: v1 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_2 :: v2 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_3 :: v3 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_4 :: v4 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_5 :: v5 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_6 :: v6 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_7 :: v7 -> Sum7 v1 v2 v3 v4 v5 v6 v7 -- | Automatically derives the sum-type of the according arity from -- expressions such as: -- --
-- Int + Char + Bool ---- -- In that case it will resolve to: -- --
-- Sum3 Int Char Bool --data Product2 v1 v2 Product2 :: v1 -> v2 -> Product2 v1 v2 data Product3 v1 v2 v3 Product3 :: v1 -> v2 -> v3 -> Product3 v1 v2 v3 data Product4 v1 v2 v3 v4 Product4 :: v1 -> v2 -> v3 -> v4 -> Product4 v1 v2 v3 v4 data Product5 v1 v2 v3 v4 v5 Product5 :: v1 -> v2 -> v3 -> v4 -> v5 -> Product5 v1 v2 v3 v4 v5 data Product6 v1 v2 v3 v4 v5 v6 Product6 :: v1 -> v2 -> v3 -> v4 -> v5 -> v6 -> Product6 v1 v2 v3 v4 v5 v6 data Product7 v1 v2 v3 v4 v5 v6 v7 Product7 :: v1 -> v2 -> v3 -> v4 -> v5 -> v6 -> v7 -> Product7 v1 v2 v3 v4 v5 v6 v7 -- | Automatically derives the product-type of the according arity from -- expressions such as: -- --
-- Int * Char * Bool ---- -- In that case it will resolve to: -- --
-- Product3 Int Char Bool ---- | Implementations of the strict data-structures. module CompoundTypes.Strict data Sum2 v1 v2 Sum2_1 :: !v1 -> Sum2 v1 v2 Sum2_2 :: !v2 -> Sum2 v1 v2 data Sum3 v1 v2 v3 Sum3_1 :: !v1 -> Sum3 v1 v2 v3 Sum3_2 :: !v2 -> Sum3 v1 v2 v3 Sum3_3 :: !v3 -> Sum3 v1 v2 v3 data Sum4 v1 v2 v3 v4 Sum4_1 :: !v1 -> Sum4 v1 v2 v3 v4 Sum4_2 :: !v2 -> Sum4 v1 v2 v3 v4 Sum4_3 :: !v3 -> Sum4 v1 v2 v3 v4 Sum4_4 :: !v4 -> Sum4 v1 v2 v3 v4 data Sum5 v1 v2 v3 v4 v5 Sum5_1 :: !v1 -> Sum5 v1 v2 v3 v4 v5 Sum5_2 :: !v2 -> Sum5 v1 v2 v3 v4 v5 Sum5_3 :: !v3 -> Sum5 v1 v2 v3 v4 v5 Sum5_4 :: !v4 -> Sum5 v1 v2 v3 v4 v5 Sum5_5 :: !v5 -> Sum5 v1 v2 v3 v4 v5 data Sum6 v1 v2 v3 v4 v5 v6 Sum6_1 :: !v1 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_2 :: !v2 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_3 :: !v3 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_4 :: !v4 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_5 :: !v5 -> Sum6 v1 v2 v3 v4 v5 v6 Sum6_6 :: !v6 -> Sum6 v1 v2 v3 v4 v5 v6 data Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_1 :: !v1 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_2 :: !v2 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_3 :: !v3 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_4 :: !v4 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_5 :: !v5 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_6 :: !v6 -> Sum7 v1 v2 v3 v4 v5 v6 v7 Sum7_7 :: !v7 -> Sum7 v1 v2 v3 v4 v5 v6 v7 -- | Automatically derives the sum-type of the according arity from -- expressions such as: -- --
-- Int + Char + Bool ---- -- In that case it will resolve to: -- --
-- Sum3 Int Char Bool --data Product2 v1 v2 Product2 :: !v1 -> !v2 -> Product2 v1 v2 data Product3 v1 v2 v3 Product3 :: !v1 -> !v2 -> !v3 -> Product3 v1 v2 v3 data Product4 v1 v2 v3 v4 Product4 :: !v1 -> !v2 -> !v3 -> !v4 -> Product4 v1 v2 v3 v4 data Product5 v1 v2 v3 v4 v5 Product5 :: !v1 -> !v2 -> !v3 -> !v4 -> !v5 -> Product5 v1 v2 v3 v4 v5 data Product6 v1 v2 v3 v4 v5 v6 Product6 :: !v1 -> !v2 -> !v3 -> !v4 -> !v5 -> !v6 -> Product6 v1 v2 v3 v4 v5 v6 data Product7 v1 v2 v3 v4 v5 v6 v7 Product7 :: !v1 -> !v2 -> !v3 -> !v4 -> !v5 -> !v6 -> !v7 -> Product7 v1 v2 v3 v4 v5 v6 v7 -- | Automatically derives the product-type of the according arity from -- expressions such as: -- --
-- Int * Char * Bool ---- -- In that case it will resolve to: -- --
-- Product3 Int Char Bool --