-- 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 -- | Implementations of strict data-structures. module CompoundTypes.Strict data Sum2 a b Sum2_1 :: !a -> Sum2 a b Sum2_2 :: !b -> Sum2 a b data Sum3 a b c Sum3_1 :: !a -> Sum3 a b c Sum3_2 :: !b -> Sum3 a b c Sum3_3 :: !c -> Sum3 a b c data Sum4 a b c d Sum4_1 :: !a -> Sum4 a b c d Sum4_2 :: !b -> Sum4 a b c d Sum4_3 :: !c -> Sum4 a b c d Sum4_4 :: !d -> Sum4 a b c d data Sum5 a b c d e Sum5_1 :: !a -> Sum5 a b c d e Sum5_2 :: !b -> Sum5 a b c d e Sum5_3 :: !c -> Sum5 a b c d e Sum5_4 :: !d -> Sum5 a b c d e Sum5_5 :: !e -> Sum5 a b c d e -- | 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 a b Product2 :: !a -> !b -> Product2 a b data Product3 a b c Product3 :: !a -> !b -> !c -> Product3 a b c data Product4 a b c d Product4 :: !a -> !b -> !c -> !d -> Product4 a b c d data Product5 a b c d e Product5 :: !a -> !b -> !c -> !d -> !e -> Product5 a b c d e -- | 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 --