-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Dynamic casting library with support for arbitrary rank type kinds. -- -- Originally written out of need to write Typeable instances for monad -- transformers. This is troublesome since monad transformer type -- constructors have by definition at least rank 2 kind. By default only -- type constructors whose kind contains maximum of 8 units are -- supported, for example: * -> (* -> *) -> ((* -> *) -- -> *) -> * -> * . The provided generator allows one to -- support even more complex types. However be aware that the amount of -- code generated increases exponentially. @package type @version 0.1.0 -- | Algorithms and operations on type kinds. module Data.Type.Kind -- | Type kind representation. data Kind KindUnit :: Kind KindArrow :: Kind -> Kind -> Kind -- | Adds -> * to the end of a kind. -- --
-- * ==> * -> * -- * -> * ==> * -> * -> * -- (* -> *) -> * ==> (* -> *) -> * -> * --succKind :: Kind -> Kind -- | Transforms from k to k -> * . -- --
-- * ==> * -> * -- * -> * ==> (* -> *) -> * -- (* -> *) -> * ==> ((* -> *) -> *) -> * --recurseKind :: Kind -> Kind -- | Extract kinds of a kinds parameters. parameters :: Kind -> [Kind] -- | Show kinds parameters with kind signatures. kindVariables :: String -> Kind -> String -- | Get a kind signature from a Kind. kindSignature :: Kind -> String -- | Get the bastard string representation of a Kind. kindName :: Kind -> String -- | Read the bastard string representation to Kind. readKindName :: String -> Kind -- | Generates all possible Kinds given the maximum KindUnits -- allowed. -- --
-- 1:1 1 -- * -- -- 2:1 2 -- *->* -- -- 3:2 4 -- *->*->* -- (*->*)->* -- -- 4:5 9 -- *->*->*->* -- (*->*)->*->* -- *->(*->*)->* -- (*->*->*)->* -- ((*->*)->*)->* -- -- 5:14 23 -- *->*->*->*->* -- (*->*)->(*->*)->* -- (*->*)->*->*->* -- *->(*->*)->*->* -- *->*->(*->*)->* -- (*->*->*)->*->* -- ((*->*)->*)->*->* -- *->(*->*->*)->* -- *->((*->*)->*)->* -- (*->*->*->*)->* -- ((*->*)->*->*)->* -- (*->(*->*)->*)->* -- ((*->*->*)->*)->* -- (((*->*)->*)->*)->* ---- -- The series continues: 1,1,2,5,14,42,132,429,1430,4862,... generateKinds :: Int -> [Kind] instance [overlap ok] Eq Kind instance [overlap ok] Ord Kind instance [overlap ok] Show Kind module Data.Type.Typeable toTypeable :: (Typed (Type t)) => t -> TypeRep toTypeable1 :: (Typed (TypeX t)) => t a -> TypeRep toTypeable2 :: (Typed (TypeXX t)) => t a b -> TypeRep toTypeable3 :: (Typed (TypeXXX t)) => t a b c -> TypeRep toTypeable4 :: (Typed (TypeXXXX t)) => t a b c d -> TypeRep toTypeable5 :: (Typed (TypeXXXXX t)) => t a b c d e -> TypeRep toTypeable6 :: (Typed (TypeXXXXXX t)) => t a b c d e f -> TypeRep toTypeable7 :: (Typed (TypeXXXXXXX t)) => t a b c d e f g -> TypeRep -- | Collection of dynamic type casting classes and functions. module Data.Type -- | An unique identifier for types. The order given is arbitrary but -- stable. data TypeID -- | Class for all the Type, TypeX, ... types. class TypeClass t type_ :: (TypeClass t) => t kindOf :: (TypeClass t) => t -> Kind -- | This is the replacement class for Data.Typeable.Typeable. use -- Data.Type.deriveTyped to derive instances of this class. class (TypeClass t) => Typed t typeID :: (Typed t) => t -> TypeID -- | Used internally when defining instances of Typed. makeTypeID :: String -> String -> TypeID -- | Used internally when defining instances of Typed. applyTypeID :: TypeID -> TypeID -> TypeID -- | Used mainly internally, but may be useful for defining custom -- show like functions for TypeIDs. -- -- Extracts the raw data that was used to construct TypeIDs. mapTypeID :: (String -> String -> r) -> (r -> r -> r) -> TypeID -> r -- | An encapsulation of type with a kind * . data Type x Type :: Type -- | An encapsulation of type with a kind * -> * . data TypeX x :: (* -> *) TypeX :: TypeX -- | An encapsulation of type with a kind * -> * -> * . data TypeXX x :: (* -> * -> *) TypeXX :: TypeXX -- | An encapsulation of type with a kind ( * -> * ) -> * . data TypeBXXE x :: ((* -> *) -> *) TypeBXXE :: TypeBXXE -- | An encapsulation of type with a kind * -> * -> * -> * -- . data TypeXXX x :: (* -> * -> * -> *) TypeXXX :: TypeXXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * . data TypeBXXEX x :: ((* -> *) -> * -> *) TypeBXXEX :: TypeBXXEX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * . data TypeXBXXE x :: (* -> (* -> *) -> *) TypeXBXXE :: TypeXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * . data TypeBXXXE x :: ((* -> * -> *) -> *) TypeBXXXE :: TypeBXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * . data TypeBBXXEXE x :: (((* -> *) -> *) -> *) TypeBBXXEXE :: TypeBBXXEXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> * . data TypeXXXX x :: (* -> * -> * -> * -> *) TypeXXXX :: TypeXXXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> * . data TypeBXXEXX x :: ((* -> *) -> * -> * -> *) TypeBXXEXX :: TypeBXXEXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> * . data TypeBXXEBXXE x :: ((* -> *) -> (* -> *) -> *) TypeBXXEBXXE :: TypeBXXEBXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> * . data TypeXBXXEX x :: (* -> (* -> *) -> * -> *) TypeXBXXEX :: TypeXBXXEX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> * . data TypeXXBXXE x :: (* -> * -> (* -> *) -> *) TypeXXBXXE :: TypeXXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> * . data TypeBXXXEX x :: ((* -> * -> *) -> * -> *) TypeBXXXEX :: TypeBXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> * . data TypeBBXXEXEX x :: (((* -> *) -> *) -> * -> *) TypeBBXXEXEX :: TypeBBXXEXEX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> * . data TypeXBXXXE x :: (* -> (* -> * -> *) -> *) TypeXBXXXE :: TypeXBXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> * . data TypeXBBXXEXE x :: (* -> ((* -> *) -> *) -> *) TypeXBBXXEXE :: TypeXBBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> * . data TypeBXXXXE x :: ((* -> * -> * -> *) -> *) TypeBXXXXE :: TypeBXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> * . data TypeBBXXEXXE x :: (((* -> *) -> * -> *) -> *) TypeBBXXEXXE :: TypeBBXXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> * . data TypeBXBXXEXE x :: ((* -> (* -> *) -> *) -> *) TypeBXBXXEXE :: TypeBXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> * . data TypeBBXXXEXE x :: (((* -> * -> *) -> *) -> *) TypeBBXXXEXE :: TypeBBXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> * . data TypeBBBXXEXEXE x :: ((((* -> *) -> *) -> *) -> *) TypeBBBXXEXEXE :: TypeBBBXXEXEXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> * -> * . data TypeXXXXX x :: (* -> * -> * -> * -> * -> *) TypeXXXXX :: TypeXXXXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> * -> * . data TypeBXXEXXX x :: ((* -> *) -> * -> * -> * -> *) TypeBXXEXXX :: TypeBXXEXXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> * -> * . data TypeBXXEBXXEX x :: ((* -> *) -> (* -> *) -> * -> *) TypeBXXEBXXEX :: TypeBXXEBXXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * ) -> * . data TypeBXXEXBXXE x :: ((* -> *) -> * -> (* -> *) -> *) TypeBXXEXBXXE :: TypeBXXEXBXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * ) -> * . data TypeBXXEBXXXE x :: ((* -> *) -> (* -> * -> *) -> *) TypeBXXEBXXXE :: TypeBXXEBXXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * . data TypeBXXEBBXXEXE x :: ((* -> *) -> ((* -> *) -> *) -> *) TypeBXXEBBXXEXE :: TypeBXXEBBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> * -> * . data TypeXBXXEXX x :: (* -> (* -> *) -> * -> * -> *) TypeXBXXEXX :: TypeXBXXEXX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * ) -> * . data TypeXBXXEBXXE x :: (* -> (* -> *) -> (* -> *) -> *) TypeXBXXEBXXE :: TypeXBXXEBXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> * -> * . data TypeXXBXXEX x :: (* -> * -> (* -> *) -> * -> *) TypeXXBXXEX :: TypeXXBXXEX -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * ) -> * . data TypeXXXBXXE x :: (* -> * -> * -> (* -> *) -> *) TypeXXXBXXE :: TypeXXXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> * -> * . data TypeBXXXEXX x :: ((* -> * -> *) -> * -> * -> *) TypeBXXXEXX :: TypeBXXXEXX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * ) -> * . data TypeBXXXEBXXE x :: ((* -> * -> *) -> (* -> *) -> *) TypeBXXXEBXXE :: TypeBXXXEBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> * -> * . data TypeBBXXEXEXX x :: (((* -> *) -> *) -> * -> * -> *) TypeBBXXEXEXX :: TypeBBXXEXEXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * . data TypeBBXXEXEBXXE x :: (((* -> *) -> *) -> (* -> *) -> *) TypeBBXXEXEBXXE :: TypeBBXXEXEBXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> * -> * . data TypeXBXXXEX x :: (* -> (* -> * -> *) -> * -> *) TypeXBXXXEX :: TypeXBXXXEX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> * -> * . data TypeXBBXXEXEX x :: (* -> ((* -> *) -> *) -> * -> *) TypeXBBXXEXEX :: TypeXBBXXEXEX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * ) -> * . data TypeXXBXXXE x :: (* -> * -> (* -> * -> *) -> *) TypeXXBXXXE :: TypeXXBXXXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * ) -> * . data TypeXXBBXXEXE x :: (* -> * -> ((* -> *) -> *) -> *) TypeXXBBXXEXE :: TypeXXBBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> * -> * . data TypeBXXXXEX x :: ((* -> * -> * -> *) -> * -> *) TypeBXXXXEX :: TypeBXXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> * -> * . data TypeBBXXEXXEX x :: (((* -> *) -> * -> *) -> * -> *) TypeBBXXEXXEX :: TypeBBXXEXXEX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> * -> * . data TypeBXBXXEXEX x :: ((* -> (* -> *) -> *) -> * -> *) TypeBXBXXEXEX :: TypeBXBXXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> * -> * . data TypeBBXXXEXEX x :: (((* -> * -> *) -> *) -> * -> *) TypeBBXXXEXEX :: TypeBBXXXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> * -> * . data TypeBBBXXEXEXEX x :: ((((* -> *) -> *) -> *) -> * -> *) TypeBBBXXEXEXEX :: TypeBBBXXEXEXEX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * ) -> * . data TypeXBXXXXE x :: (* -> (* -> * -> * -> *) -> *) TypeXBXXXXE :: TypeXBXXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * ) -> * . data TypeXBBXXEXXE x :: (* -> ((* -> *) -> * -> *) -> *) TypeXBBXXEXXE :: TypeXBBXXEXXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * ) -> * . data TypeXBXBXXEXE x :: (* -> (* -> (* -> *) -> *) -> *) TypeXBXBXXEXE :: TypeXBXBXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * ) -> * . data TypeXBBXXXEXE x :: (* -> ((* -> * -> *) -> *) -> *) TypeXBBXXXEXE :: TypeXBBXXXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * . data TypeXBBBXXEXEXE x :: (* -> (((* -> *) -> *) -> *) -> *) TypeXBBBXXEXEXE :: TypeXBBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * ) -> * . data TypeBXXXXXE x :: ((* -> * -> * -> * -> *) -> *) TypeBXXXXXE :: TypeBXXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * ) -> * . data TypeBBXXEXXXE x :: (((* -> *) -> * -> * -> *) -> *) TypeBBXXEXXXE :: TypeBBXXEXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * . data TypeBBXXEBXXEXE x :: (((* -> *) -> (* -> *) -> *) -> *) TypeBBXXEBXXEXE :: TypeBBXXEBXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * ) -> * . data TypeBXBXXEXXE x :: ((* -> (* -> *) -> * -> *) -> *) TypeBXBXXEXXE :: TypeBXBXXEXXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * ) -> * . data TypeBXXBXXEXE x :: ((* -> * -> (* -> *) -> *) -> *) TypeBXXBXXEXE :: TypeBXXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * ) -> * . data TypeBBXXXEXXE x :: (((* -> * -> *) -> * -> *) -> *) TypeBBXXXEXXE :: TypeBBXXXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * ) -> * . data TypeBBBXXEXEXXE x :: ((((* -> *) -> *) -> * -> *) -> *) TypeBBBXXEXEXXE :: TypeBBBXXEXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * ) -> * . data TypeBXBXXXEXE x :: ((* -> (* -> * -> *) -> *) -> *) TypeBXBXXXEXE :: TypeBXBXXXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * . data TypeBXBBXXEXEXE x :: ((* -> ((* -> *) -> *) -> *) -> *) TypeBXBBXXEXEXE :: TypeBXBBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * ) -> * . data TypeBBXXXXEXE x :: (((* -> * -> * -> *) -> *) -> *) TypeBBXXXXEXE :: TypeBBXXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * . data TypeBBBXXEXXEXE x :: ((((* -> *) -> * -> *) -> *) -> *) TypeBBBXXEXXEXE :: TypeBBBXXEXXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * . data TypeBBXBXXEXEXE x :: (((* -> (* -> *) -> *) -> *) -> *) TypeBBXBXXEXEXE :: TypeBBXBXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * . data TypeBBBXXXEXEXE x :: ((((* -> * -> *) -> *) -> *) -> *) TypeBBBXXXEXEXE :: TypeBBBXXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * ) -> * . data TypeBBBBXXEXEXEXE x :: (((((* -> *) -> *) -> *) -> *) -> *) TypeBBBBXXEXEXEXE :: TypeBBBBXXEXEXEXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> * -> * -> * . data TypeXXXXXX x :: (* -> * -> * -> * -> * -> * -> *) TypeXXXXXX :: TypeXXXXXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> * -> * -> * . data TypeBXXEXXXX x :: ((* -> *) -> * -> * -> * -> * -> *) TypeBXXEXXXX :: TypeBXXEXXXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> * -> * -> * . data TypeBXXEBXXEXX x :: ((* -> *) -> (* -> *) -> * -> * -> *) TypeBXXEBXXEXX :: TypeBXXEBXXEXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> ( * -> * ) -> * . data TypeBXXEBXXEBXXE x :: ((* -> *) -> (* -> *) -> (* -> *) -> *) TypeBXXEBXXEBXXE :: TypeBXXEBXXEBXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * ) -> * -> * . data TypeBXXEXBXXEX x :: ((* -> *) -> * -> (* -> *) -> * -> *) TypeBXXEXBXXEX :: TypeBXXEXBXXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> ( * -> * ) -> * . data TypeBXXEXXBXXE x :: ((* -> *) -> * -> * -> (* -> *) -> *) TypeBXXEXXBXXE :: TypeBXXEXXBXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * ) -> * -> * . data TypeBXXEBXXXEX x :: ((* -> *) -> (* -> * -> *) -> * -> *) TypeBXXEBXXXEX :: TypeBXXEBXXXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * -> * . data TypeBXXEBBXXEXEX x :: ((* -> *) -> ((* -> *) -> *) -> * -> *) TypeBXXEBBXXEXEX :: TypeBXXEBBXXEXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * -> * ) -> * . data TypeBXXEXBXXXE x :: ((* -> *) -> * -> (* -> * -> *) -> *) TypeBXXEXBXXXE :: TypeBXXEXBXXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( ( * -> * ) -> * ) -> * . data TypeBXXEXBBXXEXE x :: ((* -> *) -> * -> ((* -> *) -> *) -> *) TypeBXXEXBBXXEXE :: TypeBXXEXBBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * -> * ) -> * . data TypeBXXEBXXXXE x :: ((* -> *) -> (* -> * -> * -> *) -> *) TypeBXXEBXXXXE :: TypeBXXEBXXXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * -> * ) -> * . data TypeBXXEBBXXEXXE x :: ((* -> *) -> ((* -> *) -> * -> *) -> *) TypeBXXEBBXXEXXE :: TypeBXXEBBXXEXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> ( * -> * ) -> * ) -> * . data TypeBXXEBXBXXEXE x :: ((* -> *) -> (* -> (* -> *) -> *) -> *) TypeBXXEBXBXXEXE :: TypeBXXEBXBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * -> * ) -> * ) -> * . data TypeBXXEBBXXXEXE x :: ((* -> *) -> ((* -> * -> *) -> *) -> *) TypeBXXEBBXXXEXE :: TypeBXXEBBXXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( * -- -> * ) -> * ) -> * ) -> * . data TypeBXXEBBBXXEXEXE x :: ((* -> *) -> (((* -> *) -> *) -> *) -> *) TypeBXXEBBBXXEXEXE :: TypeBXXEBBBXXEXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> * -> * -> * . data TypeXBXXEXXX x :: (* -> (* -> *) -> * -> * -> * -> *) TypeXBXXEXXX :: TypeXBXXEXXX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * ) -> * -> * . data TypeXBXXEBXXEX x :: (* -> (* -> *) -> (* -> *) -> * -> *) TypeXBXXEBXXEX :: TypeXBXXEBXXEX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> ( * -> * ) -> * . data TypeXBXXEXBXXE x :: (* -> (* -> *) -> * -> (* -> *) -> *) TypeXBXXEXBXXE :: TypeXBXXEXBXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * -> * ) -> * . data TypeXBXXEBXXXE x :: (* -> (* -> *) -> (* -> * -> *) -> *) TypeXBXXEBXXXE :: TypeXBXXEBXXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( ( * -> * ) -> * ) -> * . data TypeXBXXEBBXXEXE x :: (* -> (* -> *) -> ((* -> *) -> *) -> *) TypeXBXXEBBXXEXE :: TypeXBXXEBBXXEXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> * -> * -> * . data TypeXXBXXEXX x :: (* -> * -> (* -> *) -> * -> * -> *) TypeXXBXXEXX :: TypeXXBXXEXX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> ( * -> * ) -> * . data TypeXXBXXEBXXE x :: (* -> * -> (* -> *) -> (* -> *) -> *) TypeXXBXXEBXXE :: TypeXXBXXEBXXE -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * ) -> * -> * . data TypeXXXBXXEX x :: (* -> * -> * -> (* -> *) -> * -> *) TypeXXXBXXEX :: TypeXXXBXXEX -- | An encapsulation of type with a kind * -> * -> * -> * -- -> ( * -> * ) -> * . data TypeXXXXBXXE x :: (* -> * -> * -> * -> (* -> *) -> *) TypeXXXXBXXE :: TypeXXXXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> * -> * -> * . data TypeBXXXEXXX x :: ((* -> * -> *) -> * -> * -> * -> *) TypeBXXXEXXX :: TypeBXXXEXXX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * ) -> * -> * . data TypeBXXXEBXXEX x :: ((* -> * -> *) -> (* -> *) -> * -> *) TypeBXXXEBXXEX :: TypeBXXXEBXXEX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> ( * -> * ) -> * . data TypeBXXXEXBXXE x :: ((* -> * -> *) -> * -> (* -> *) -> *) TypeBXXXEXBXXE :: TypeBXXXEXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * -> * ) -> * . data TypeBXXXEBXXXE x :: ((* -> * -> *) -> (* -> * -> *) -> *) TypeBXXXEBXXXE :: TypeBXXXEBXXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( ( * -> * ) -> * ) -> * . data TypeBXXXEBBXXEXE x :: ((* -> * -> *) -> ((* -> *) -> *) -> *) TypeBXXXEBBXXEXE :: TypeBXXXEBBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> * -> * -> * . data TypeBBXXEXEXXX x :: (((* -> *) -> *) -> * -> * -> * -> *) TypeBBXXEXEXXX :: TypeBBXXEXEXXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * -> * . data TypeBBXXEXEBXXEX x :: (((* -> *) -> *) -> (* -> *) -> * -> *) TypeBBXXEXEBXXEX :: TypeBBXXEXEBXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> ( * -> * ) -> * . data TypeBBXXEXEXBXXE x :: (((* -> *) -> *) -> * -> (* -> *) -> *) TypeBBXXEXEXBXXE :: TypeBBXXEXEXBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * -> * ) -> * . data TypeBBXXEXEBXXXE x :: (((* -> *) -> *) -> (* -> * -> *) -> *) TypeBBXXEXEBXXXE :: TypeBBXXEXEBXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( ( * -> * ) -> * ) -> * . data TypeBBXXEXEBBXXEXE x :: (((* -> *) -> *) -> ((* -> *) -> *) -> *) TypeBBXXEXEBBXXEXE :: TypeBBXXEXEBBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> * -> * -> * . data TypeXBXXXEXX x :: (* -> (* -> * -> *) -> * -> * -> *) TypeXBXXXEXX :: TypeXBXXXEXX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> ( * -> * ) -> * . data TypeXBXXXEBXXE x :: (* -> (* -> * -> *) -> (* -> *) -> *) TypeXBXXXEBXXE :: TypeXBXXXEBXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> * -> * -> * . data TypeXBBXXEXEXX x :: (* -> ((* -> *) -> *) -> * -> * -> *) TypeXBBXXEXEXX :: TypeXBBXXEXEXX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> ( * -> * ) -> * . data TypeXBBXXEXEBXXE x :: (* -> ((* -> *) -> *) -> (* -> *) -> *) TypeXBBXXEXEBXXE :: TypeXBBXXEXEBXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * ) -> * -> * . data TypeXXBXXXEX x :: (* -> * -> (* -> * -> *) -> * -> *) TypeXXBXXXEX :: TypeXXBXXXEX -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * ) -> * -> * . data TypeXXBBXXEXEX x :: (* -> * -> ((* -> *) -> *) -> * -> *) TypeXXBBXXEXEX :: TypeXXBBXXEXEX -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * -> * ) -> * . data TypeXXXBXXXE x :: (* -> * -> * -> (* -> * -> *) -> *) TypeXXXBXXXE :: TypeXXXBXXXE -- | An encapsulation of type with a kind * -> * -> * -> ( ( -- * -> * ) -> * ) -> * . data TypeXXXBBXXEXE x :: (* -> * -> * -> ((* -> *) -> *) -> *) TypeXXXBBXXEXE :: TypeXXXBBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> * -> * -> * . data TypeBXXXXEXX x :: ((* -> * -> * -> *) -> * -> * -> *) TypeBXXXXEXX :: TypeBXXXXEXX -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> ( * -> * ) -> * . data TypeBXXXXEBXXE x :: ((* -> * -> * -> *) -> (* -> *) -> *) TypeBXXXXEBXXE :: TypeBXXXXEBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> * -> * -> * . data TypeBBXXEXXEXX x :: (((* -> *) -> * -> *) -> * -> * -> *) TypeBBXXEXXEXX :: TypeBBXXEXXEXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> ( * -> * ) -> * . data TypeBBXXEXXEBXXE x :: (((* -> *) -> * -> *) -> (* -> *) -> *) TypeBBXXEXXEBXXE :: TypeBBXXEXXEBXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> * -> * -> * . data TypeBXBXXEXEXX x :: ((* -> (* -> *) -> *) -> * -> * -> *) TypeBXBXXEXEXX :: TypeBXBXXEXEXX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> ( * -> * ) -> * . data TypeBXBXXEXEBXXE x :: ((* -> (* -> *) -> *) -> (* -> *) -> *) TypeBXBXXEXEBXXE :: TypeBXBXXEXEBXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> * -> * -> * . data TypeBBXXXEXEXX x :: (((* -> * -> *) -> *) -> * -> * -> *) TypeBBXXXEXEXX :: TypeBBXXXEXEXX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> ( * -> * ) -> * . data TypeBBXXXEXEBXXE x :: (((* -> * -> *) -> *) -> (* -> *) -> *) TypeBBXXXEXEBXXE :: TypeBBXXXEXEBXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> * -> * -> * . data TypeBBBXXEXEXEXX x :: ((((* -> *) -> *) -> *) -> * -> * -> *) TypeBBBXXEXEXEXX :: TypeBBBXXEXEXEXX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> ( * -> * ) -> * . data TypeBBBXXEXEXEBXXE x :: ((((* -> *) -> *) -> *) -> (* -> *) -> *) TypeBBBXXEXEXEBXXE :: TypeBBBXXEXEXEBXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * ) -> * -> * . data TypeXBXXXXEX x :: (* -> (* -> * -> * -> *) -> * -> *) TypeXBXXXXEX :: TypeXBXXXXEX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * ) -> * -> * . data TypeXBBXXEXXEX x :: (* -> ((* -> *) -> * -> *) -> * -> *) TypeXBBXXEXXEX :: TypeXBBXXEXXEX -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * ) -> * -> * . data TypeXBXBXXEXEX x :: (* -> (* -> (* -> *) -> *) -> * -> *) TypeXBXBXXEXEX :: TypeXBXBXXEXEX -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * ) -> * -> * . data TypeXBBXXXEXEX x :: (* -> ((* -> * -> *) -> *) -> * -> *) TypeXBBXXXEXEX :: TypeXBBXXXEXEX -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * -> * . data TypeXBBBXXEXEXEX x :: (* -> (((* -> *) -> *) -> *) -> * -> *) TypeXBBBXXEXEXEX :: TypeXBBBXXEXEXEX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * -> * ) -> * . data TypeXXBXXXXE x :: (* -> * -> (* -> * -> * -> *) -> *) TypeXXBXXXXE :: TypeXXBXXXXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * -> * ) -> * . data TypeXXBBXXEXXE x :: (* -> * -> ((* -> *) -> * -> *) -> *) TypeXXBBXXEXXE :: TypeXXBBXXEXXE -- | An encapsulation of type with a kind * -> * -> ( * -> ( -- * -> * ) -> * ) -> * . data TypeXXBXBXXEXE x :: (* -> * -> (* -> (* -> *) -> *) -> *) TypeXXBXBXXEXE :: TypeXXBXBXXEXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * -> * ) -> * ) -> * . data TypeXXBBXXXEXE x :: (* -> * -> ((* -> * -> *) -> *) -> *) TypeXXBBXXXEXE :: TypeXXBBXXXEXE -- | An encapsulation of type with a kind * -> * -> ( ( ( * -- -> * ) -> * ) -> * ) -> * . data TypeXXBBBXXEXEXE x :: (* -> * -> (((* -> *) -> *) -> *) -> *) TypeXXBBBXXEXEXE :: TypeXXBBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * ) -> * -> * . data TypeBXXXXXEX x :: ((* -> * -> * -> * -> *) -> * -> *) TypeBXXXXXEX :: TypeBXXXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * ) -> * -> * . data TypeBBXXEXXXEX x :: (((* -> *) -> * -> * -> *) -> * -> *) TypeBBXXEXXXEX :: TypeBBXXEXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * -> * . data TypeBBXXEBXXEXEX x :: (((* -> *) -> (* -> *) -> *) -> * -> *) TypeBBXXEBXXEXEX :: TypeBBXXEBXXEXEX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * ) -> * -> * . data TypeBXBXXEXXEX x :: ((* -> (* -> *) -> * -> *) -> * -> *) TypeBXBXXEXXEX :: TypeBXBXXEXXEX -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * ) -> * -> * . data TypeBXXBXXEXEX x :: ((* -> * -> (* -> *) -> *) -> * -> *) TypeBXXBXXEXEX :: TypeBXXBXXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * ) -> * -> * . data TypeBBXXXEXXEX x :: (((* -> * -> *) -> * -> *) -> * -> *) TypeBBXXXEXXEX :: TypeBBXXXEXXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * ) -> * -> * . data TypeBBBXXEXEXXEX x :: ((((* -> *) -> *) -> * -> *) -> * -> *) TypeBBBXXEXEXXEX :: TypeBBBXXEXEXXEX -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * ) -> * -> * . data TypeBXBXXXEXEX x :: ((* -> (* -> * -> *) -> *) -> * -> *) TypeBXBXXXEXEX :: TypeBXBXXXEXEX -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * -> * . data TypeBXBBXXEXEXEX x :: ((* -> ((* -> *) -> *) -> *) -> * -> *) TypeBXBBXXEXEXEX :: TypeBXBBXXEXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * ) -> * -> * . data TypeBBXXXXEXEX x :: (((* -> * -> * -> *) -> *) -> * -> *) TypeBBXXXXEXEX :: TypeBBXXXXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * -> * . data TypeBBBXXEXXEXEX x :: ((((* -> *) -> * -> *) -> *) -> * -> *) TypeBBBXXEXXEXEX :: TypeBBBXXEXXEXEX -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * -> * . data TypeBBXBXXEXEXEX x :: (((* -> (* -> *) -> *) -> *) -> * -> *) TypeBBXBXXEXEXEX :: TypeBBXBXXEXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * -> * . data TypeBBBXXXEXEXEX x :: ((((* -> * -> *) -> *) -> *) -> * -> *) TypeBBBXXXEXEXEX :: TypeBBBXXXEXEXEX -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * ) -> * -> * . data TypeBBBBXXEXEXEXEX x :: (((((* -> *) -> *) -> *) -> *) -> * -> *) TypeBBBBXXEXEXEXEX :: TypeBBBBXXEXEXEXEX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * -> * ) -> * . data TypeXBXXXXXE x :: (* -> (* -> * -> * -> * -> *) -> *) TypeXBXXXXXE :: TypeXBXXXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * -> * ) -> * . data TypeXBBXXEXXXE x :: (* -> ((* -> *) -> * -> * -> *) -> *) TypeXBBXXEXXXE :: TypeXBBXXEXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> ( * -> * ) -> * ) -> * . data TypeXBBXXEBXXEXE x :: (* -> ((* -> *) -> (* -> *) -> *) -> *) TypeXBBXXEBXXEXE :: TypeXBBXXEBXXEXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * -> * ) -> * . data TypeXBXBXXEXXE x :: (* -> (* -> (* -> *) -> * -> *) -> *) TypeXBXBXXEXXE :: TypeXBXBXXEXXE -- | An encapsulation of type with a kind * -> ( * -> * -> ( -- * -> * ) -> * ) -> * . data TypeXBXXBXXEXE x :: (* -> (* -> * -> (* -> *) -> *) -> *) TypeXBXXBXXEXE :: TypeXBXXBXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * -> * ) -> * . data TypeXBBXXXEXXE x :: (* -> ((* -> * -> *) -> * -> *) -> *) TypeXBBXXXEXXE :: TypeXBBXXXEXXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * -> * ) -> * . data TypeXBBBXXEXEXXE x :: (* -> (((* -> *) -> *) -> * -> *) -> *) TypeXBBBXXEXEXXE :: TypeXBBBXXEXEXXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * -> * ) -> * ) -> * . data TypeXBXBXXXEXE x :: (* -> (* -> (* -> * -> *) -> *) -> *) TypeXBXBXXXEXE :: TypeXBXBXXXEXE -- | An encapsulation of type with a kind * -> ( * -> ( ( * -- -> * ) -> * ) -> * ) -> * . data TypeXBXBBXXEXEXE x :: (* -> (* -> ((* -> *) -> *) -> *) -> *) TypeXBXBBXXEXEXE :: TypeXBXBBXXEXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * -> * ) -> * ) -> * . data TypeXBBXXXXEXE x :: (* -> ((* -> * -> * -> *) -> *) -> *) TypeXBBXXXXEXE :: TypeXBBXXXXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * -> * ) -> * ) -> * . data TypeXBBBXXEXXEXE x :: (* -> (((* -> *) -> * -> *) -> *) -> *) TypeXBBBXXEXXEXE :: TypeXBBBXXEXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> ( * -- -> * ) -> * ) -> * ) -> * . data TypeXBBXBXXEXEXE x :: (* -> ((* -> (* -> *) -> *) -> *) -> *) TypeXBBXBXXEXEXE :: TypeXBBXBXXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * -- -> * ) -> * ) -> * ) -> * . data TypeXBBBXXXEXEXE x :: (* -> (((* -> * -> *) -> *) -> *) -> *) TypeXBBBXXXEXEXE :: TypeXBBBXXXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * . data TypeXBBBBXXEXEXEXE x :: (* -> ((((* -> *) -> *) -> *) -> *) -> *) TypeXBBBBXXEXEXEXE :: TypeXBBBBXXEXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * -> * ) -> * . data TypeBXXXXXXE x :: ((* -> * -> * -> * -> * -> *) -> *) TypeBXXXXXXE :: TypeBXXXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * -> * ) -> * . data TypeBBXXEXXXXE x :: (((* -> *) -> * -> * -> * -> *) -> *) TypeBBXXEXXXXE :: TypeBBXXEXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * -> * ) -> * . data TypeBBXXEBXXEXXE x :: (((* -> *) -> (* -> *) -> * -> *) -> *) TypeBBXXEBXXEXXE :: TypeBBXXEBXXEXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> ( * -> * ) -> * ) -> * . data TypeBBXXEXBXXEXE x :: (((* -> *) -> * -> (* -> *) -> *) -> *) TypeBBXXEXBXXEXE :: TypeBBXXEXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * -> * ) -> * ) -> * . data TypeBBXXEBXXXEXE x :: (((* -> *) -> (* -> * -> *) -> *) -> *) TypeBBXXEBXXXEXE :: TypeBBXXEBXXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * ) -> * . data TypeBBXXEBBXXEXEXE x :: (((* -> *) -> ((* -> *) -> *) -> *) -> *) TypeBBXXEBBXXEXEXE :: TypeBBXXEBBXXEXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * -> * ) -> * . data TypeBXBXXEXXXE x :: ((* -> (* -> *) -> * -> * -> *) -> *) TypeBXBXXEXXXE :: TypeBXBXXEXXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> ( * -> * ) -> * ) -> * . data TypeBXBXXEBXXEXE x :: ((* -> (* -> *) -> (* -> *) -> *) -> *) TypeBXBXXEBXXEXE :: TypeBXBXXEBXXEXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * -> * ) -> * . data TypeBXXBXXEXXE x :: ((* -> * -> (* -> *) -> * -> *) -> *) TypeBXXBXXEXXE :: TypeBXXBXXEXXE -- | An encapsulation of type with a kind ( * -> * -> * -> ( -- * -> * ) -> * ) -> * . data TypeBXXXBXXEXE x :: ((* -> * -> * -> (* -> *) -> *) -> *) TypeBXXXBXXEXE :: TypeBXXXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * -> * ) -> * . data TypeBBXXXEXXXE x :: (((* -> * -> *) -> * -> * -> *) -> *) TypeBBXXXEXXXE :: TypeBBXXXEXXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> ( * -> * ) -> * ) -> * . data TypeBBXXXEBXXEXE x :: (((* -> * -> *) -> (* -> *) -> *) -> *) TypeBBXXXEBXXEXE :: TypeBBXXXEBXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * -> * ) -> * . data TypeBBBXXEXEXXXE x :: ((((* -> *) -> *) -> * -> * -> *) -> *) TypeBBBXXEXEXXXE :: TypeBBBXXEXEXXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * ) -> * . data TypeBBBXXEXEBXXEXE x :: ((((* -> *) -> *) -> (* -> *) -> *) -> *) TypeBBBXXEXEBXXEXE :: TypeBBBXXEXEBXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * -> * ) -> * . data TypeBXBXXXEXXE x :: ((* -> (* -> * -> *) -> * -> *) -> *) TypeBXBXXXEXXE :: TypeBXBXXXEXXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * -> * ) -> * . data TypeBXBBXXEXEXXE x :: ((* -> ((* -> *) -> *) -> * -> *) -> *) TypeBXBBXXEXEXXE :: TypeBXBBXXEXEXXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * -> * ) -> * ) -> * . data TypeBXXBXXXEXE x :: ((* -> * -> (* -> * -> *) -> *) -> *) TypeBXXBXXXEXE :: TypeBXXBXXXEXE -- | An encapsulation of type with a kind ( * -> * -> ( ( * -- -> * ) -> * ) -> * ) -> * . data TypeBXXBBXXEXEXE x :: ((* -> * -> ((* -> *) -> *) -> *) -> *) TypeBXXBBXXEXEXE :: TypeBXXBBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * -> * ) -> * . data TypeBBXXXXEXXE x :: (((* -> * -> * -> *) -> * -> *) -> *) TypeBBXXXXEXXE :: TypeBBXXXXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * -> * ) -> * . data TypeBBBXXEXXEXXE x :: ((((* -> *) -> * -> *) -> * -> *) -> *) TypeBBBXXEXXEXXE :: TypeBBBXXEXXEXXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * -> * ) -> * . data TypeBBXBXXEXEXXE x :: (((* -> (* -> *) -> *) -> * -> *) -> *) TypeBBXBXXEXEXXE :: TypeBBXBXXEXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * -> * ) -> * . data TypeBBBXXXEXEXXE x :: ((((* -> * -> *) -> *) -> * -> *) -> *) TypeBBBXXXEXEXXE :: TypeBBBXXXEXEXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * -> * ) -> * . data TypeBBBBXXEXEXEXXE x :: (((((* -> *) -> *) -> *) -> * -> *) -> *) TypeBBBBXXEXEXEXXE :: TypeBBBBXXEXEXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * -> * ) -> * ) -> * . data TypeBXBXXXXEXE x :: ((* -> (* -> * -> * -> *) -> *) -> *) TypeBXBXXXXEXE :: TypeBXBXXXXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * -> * ) -> * ) -> * . data TypeBXBBXXEXXEXE x :: ((* -> ((* -> *) -> * -> *) -> *) -> *) TypeBXBBXXEXXEXE :: TypeBXBBXXEXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> ( * -- -> * ) -> * ) -> * ) -> * . data TypeBXBXBXXEXEXE x :: ((* -> (* -> (* -> *) -> *) -> *) -> *) TypeBXBXBXXEXEXE :: TypeBXBXBXXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * -- -> * ) -> * ) -> * ) -> * . data TypeBXBBXXXEXEXE x :: ((* -> ((* -> * -> *) -> *) -> *) -> *) TypeBXBBXXXEXEXE :: TypeBXBBXXXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * . data TypeBXBBBXXEXEXEXE x :: ((* -> (((* -> *) -> *) -> *) -> *) -> *) TypeBXBBBXXEXEXEXE :: TypeBXBBBXXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * -> * ) -> * ) -> * . data TypeBBXXXXXEXE x :: (((* -> * -> * -> * -> *) -> *) -> *) TypeBBXXXXXEXE :: TypeBBXXXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * -> * ) -> * ) -> * . data TypeBBBXXEXXXEXE x :: ((((* -> *) -> * -> * -> *) -> *) -> *) TypeBBBXXEXXXEXE :: TypeBBBXXEXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * ) -> * . data TypeBBBXXEBXXEXEXE x :: ((((* -> *) -> (* -> *) -> *) -> *) -> *) TypeBBBXXEBXXEXEXE :: TypeBBBXXEBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * -> * ) -> * ) -> * . data TypeBBXBXXEXXEXE x :: (((* -> (* -> *) -> * -> *) -> *) -> *) TypeBBXBXXEXXEXE :: TypeBBXBXXEXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> ( * -- -> * ) -> * ) -> * ) -> * . data TypeBBXXBXXEXEXE x :: (((* -> * -> (* -> *) -> *) -> *) -> *) TypeBBXXBXXEXEXE :: TypeBBXXBXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * -> * ) -> * ) -> * . data TypeBBBXXXEXXEXE x :: ((((* -> * -> *) -> * -> *) -> *) -> *) TypeBBBXXXEXXEXE :: TypeBBBXXXEXXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * -> * ) -> * ) -> * . data TypeBBBBXXEXEXXEXE x :: (((((* -> *) -> *) -> * -> *) -> *) -> *) TypeBBBBXXEXEXXEXE :: TypeBBBBXXEXEXXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * -- -> * ) -> * ) -> * ) -> * . data TypeBBXBXXXEXEXE x :: (((* -> (* -> * -> *) -> *) -> *) -> *) TypeBBXBXXXEXEXE :: TypeBBXBXXXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * . data TypeBBXBBXXEXEXEXE x :: (((* -> ((* -> *) -> *) -> *) -> *) -> *) TypeBBXBBXXEXEXEXE :: TypeBBXBBXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * -- -> * ) -> * ) -> * ) -> * . data TypeBBBXXXXEXEXE x :: ((((* -> * -> * -> *) -> *) -> *) -> *) TypeBBBXXXXEXEXE :: TypeBBBXXXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * ) -> * . data TypeBBBBXXEXXEXEXE x :: (((((* -> *) -> * -> *) -> *) -> *) -> *) TypeBBBBXXEXXEXEXE :: TypeBBBBXXEXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * ) -> * . data TypeBBBXBXXEXEXEXE x :: ((((* -> (* -> *) -> *) -> *) -> *) -> *) TypeBBBXBXXEXEXEXE :: TypeBBBXBXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * ) -> * . data TypeBBBBXXXEXEXEXE x :: (((((* -> * -> *) -> *) -> *) -> *) -> *) TypeBBBBXXXEXEXEXE :: TypeBBBBXXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBBXXEXEXEXEXE x :: ((((((* -> *) -> *) -> *) -> *) -> *) -> *) TypeBBBBBXXEXEXEXEXE :: TypeBBBBBXXEXEXEXEXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> * -> * -> * -> * . data TypeXXXXXXX x :: (* -> * -> * -> * -> * -> * -> * -> *) TypeXXXXXXX :: TypeXXXXXXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> * -> * -> * -> * . data TypeBXXEXXXXX x :: ((* -> *) -> * -> * -> * -> * -> * -> *) TypeBXXEXXXXX :: TypeBXXEXXXXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> * -> * -> * -> * . data TypeBXXEBXXEXXX x :: ((* -> *) -> (* -> *) -> * -> * -> * -> *) TypeBXXEBXXEXXX :: TypeBXXEBXXEXXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> ( * -> * ) -> * -> * . data TypeBXXEBXXEBXXEX x :: ((* -> *) -> (* -> *) -> (* -> *) -> * -> *) TypeBXXEBXXEBXXEX :: TypeBXXEBXXEBXXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> * -> ( * -> * ) -> * . data TypeBXXEBXXEXBXXE x :: ((* -> *) -> (* -> *) -> * -> (* -> *) -> *) TypeBXXEBXXEXBXXE :: TypeBXXEBXXEXBXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> ( * -> * -> * ) -> * . data TypeBXXEBXXEBXXXE x :: ((* -> *) -> (* -> *) -> (* -> * -> *) -> *) TypeBXXEBXXEBXXXE :: TypeBXXEBXXEBXXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeBXXEBXXEBBXXEXE x :: ((* -> *) -> (* -> *) -> ((* -> *) -> *) -> *) TypeBXXEBXXEBBXXEXE :: TypeBXXEBXXEBBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * ) -> * -> * -> * . data TypeBXXEXBXXEXX x :: ((* -> *) -> * -> (* -> *) -> * -> * -> *) TypeBXXEXBXXEXX :: TypeBXXEXBXXEXX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * ) -> ( * -> * ) -> * . data TypeBXXEXBXXEBXXE x :: ((* -> *) -> * -> (* -> *) -> (* -> *) -> *) TypeBXXEXBXXEBXXE :: TypeBXXEXBXXEBXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> ( * -> * ) -> * -> * . data TypeBXXEXXBXXEX x :: ((* -> *) -> * -> * -> (* -> *) -> * -> *) TypeBXXEXXBXXEX :: TypeBXXEXXBXXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> * -> ( * -> * ) -> * . data TypeBXXEXXXBXXE x :: ((* -> *) -> * -> * -> * -> (* -> *) -> *) TypeBXXEXXXBXXE :: TypeBXXEXXXBXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * ) -> * -> * -> * . data TypeBXXEBXXXEXX x :: ((* -> *) -> (* -> * -> *) -> * -> * -> *) TypeBXXEBXXXEXX :: TypeBXXEBXXXEXX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * ) -> ( * -> * ) -> * . data TypeBXXEBXXXEBXXE x :: ((* -> *) -> (* -> * -> *) -> (* -> *) -> *) TypeBXXEBXXXEBXXE :: TypeBXXEBXXXEBXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * -> * -> * . data TypeBXXEBBXXEXEXX x :: ((* -> *) -> ((* -> *) -> *) -> * -> * -> *) TypeBXXEBBXXEXEXX :: TypeBXXEBBXXEXEXX -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBXXEBBXXEXEBXXE x :: ((* -> *) -> ((* -> *) -> *) -> (* -> *) -> *) TypeBXXEBBXXEXEBXXE :: TypeBXXEBBXXEXEBXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * -> * ) -> * -> * . data TypeBXXEXBXXXEX x :: ((* -> *) -> * -> (* -> * -> *) -> * -> *) TypeBXXEXBXXXEX :: TypeBXXEXBXXXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( ( * -> * ) -> * ) -> * -> * . data TypeBXXEXBBXXEXEX x :: ((* -> *) -> * -> ((* -> *) -> *) -> * -> *) TypeBXXEXBBXXEXEX :: TypeBXXEXBBXXEXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> ( * -> * -> * ) -> * . data TypeBXXEXXBXXXE x :: ((* -> *) -> * -> * -> (* -> * -> *) -> *) TypeBXXEXXBXXXE :: TypeBXXEXXBXXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- * -> ( ( * -> * ) -> * ) -> * . data TypeBXXEXXBBXXEXE x :: ((* -> *) -> * -> * -> ((* -> *) -> *) -> *) TypeBXXEXXBBXXEXE :: TypeBXXEXXBBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * -> * ) -> * -> * . data TypeBXXEBXXXXEX x :: ((* -> *) -> (* -> * -> * -> *) -> * -> *) TypeBXXEBXXXXEX :: TypeBXXEBXXXXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * -> * ) -> * -> * . data TypeBXXEBBXXEXXEX x :: ((* -> *) -> ((* -> *) -> * -> *) -> * -> *) TypeBXXEBBXXEXXEX :: TypeBXXEBBXXEXXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> ( * -> * ) -> * ) -> * -> * . data TypeBXXEBXBXXEXEX x :: ((* -> *) -> (* -> (* -> *) -> *) -> * -> *) TypeBXXEBXBXXEXEX :: TypeBXXEBXBXXEXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * -> * ) -> * ) -> * -> * . data TypeBXXEBBXXXEXEX x :: ((* -> *) -> ((* -> * -> *) -> *) -> * -> *) TypeBXXEBBXXXEXEX :: TypeBXXEBBXXXEXEX -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBXXEBBBXXEXEXEX x :: ((* -> *) -> (((* -> *) -> *) -> *) -> * -> *) TypeBXXEBBBXXEXEXEX :: TypeBXXEBBBXXEXEXEX -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> * -> * -> * ) -> * . data TypeBXXEXBXXXXE x :: ((* -> *) -> * -> (* -> * -> * -> *) -> *) TypeBXXEXBXXXXE :: TypeBXXEXBXXXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( ( * -> * ) -> * -> * ) -> * . data TypeBXXEXBBXXEXXE x :: ((* -> *) -> * -> ((* -> *) -> * -> *) -> *) TypeBXXEXBBXXEXXE :: TypeBXXEXBBXXEXXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( * -> ( * -> * ) -> * ) -> * . data TypeBXXEXBXBXXEXE x :: ((* -> *) -> * -> (* -> (* -> *) -> *) -> *) TypeBXXEXBXBXXEXE :: TypeBXXEXBXBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( ( * -> * -> * ) -> * ) -> * . data TypeBXXEXBBXXXEXE x :: ((* -> *) -> * -> ((* -> * -> *) -> *) -> *) TypeBXXEXBBXXXEXE :: TypeBXXEXBBXXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> * -> -- ( ( ( * -> * ) -> * ) -> * ) -> * . data TypeBXXEXBBBXXEXEXE x :: ((* -> *) -> * -> (((* -> *) -> *) -> *) -> *) TypeBXXEXBBBXXEXEXE :: TypeBXXEXBBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> * -> * -> * ) -> * . data TypeBXXEBXXXXXE x :: ((* -> *) -> (* -> * -> * -> * -> *) -> *) TypeBXXEBXXXXXE :: TypeBXXEBXXXXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> * -> * -> * ) -> * . data TypeBXXEBBXXEXXXE x :: ((* -> *) -> ((* -> *) -> * -> * -> *) -> *) TypeBXXEBBXXEXXXE :: TypeBXXEBBXXEXXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBXXEBBXXEBXXEXE x :: ((* -> *) -> ((* -> *) -> (* -> *) -> *) -> *) TypeBXXEBBXXEBXXEXE :: TypeBXXEBBXXEBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> ( * -> * ) -> * -> * ) -> * . data TypeBXXEBXBXXEXXE x :: ((* -> *) -> (* -> (* -> *) -> * -> *) -> *) TypeBXXEBXBXXEXXE :: TypeBXXEBXBXXEXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> * -> ( * -> * ) -> * ) -> * . data TypeBXXEBXXBXXEXE x :: ((* -> *) -> (* -> * -> (* -> *) -> *) -> *) TypeBXXEBXXBXXEXE :: TypeBXXEBXXBXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * -> * ) -> * -> * ) -> * . data TypeBXXEBBXXXEXXE x :: ((* -> *) -> ((* -> * -> *) -> * -> *) -> *) TypeBXXEBBXXXEXXE :: TypeBXXEBBXXXEXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBXXEBBBXXEXEXXE x :: ((* -> *) -> (((* -> *) -> *) -> * -> *) -> *) TypeBXXEBBBXXEXEXXE :: TypeBXXEBBBXXEXEXXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> ( * -> * -> * ) -> * ) -> * . data TypeBXXEBXBXXXEXE x :: ((* -> *) -> (* -> (* -> * -> *) -> *) -> *) TypeBXXEBXBXXXEXE :: TypeBXXEBXBXXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( * -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeBXXEBXBBXXEXEXE x :: ((* -> *) -> (* -> ((* -> *) -> *) -> *) -> *) TypeBXXEBXBBXXEXEXE :: TypeBXXEBXBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> * -> * -> * ) -> * ) -> * . data TypeBXXEBBXXXXEXE x :: ((* -> *) -> ((* -> * -> * -> *) -> *) -> *) TypeBXXEBBXXXXEXE :: TypeBXXEBBXXXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBXXEBBBXXEXXEXE x :: ((* -> *) -> (((* -> *) -> * -> *) -> *) -> *) TypeBXXEBBBXXEXXEXE :: TypeBXXEBBBXXEXXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( * -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBXXEBBXBXXEXEXE x :: ((* -> *) -> ((* -> (* -> *) -> *) -> *) -> *) TypeBXXEBBXBXXEXEXE :: TypeBXXEBBXBXXEXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBXXEBBBXXXEXEXE x :: ((* -> *) -> (((* -> * -> *) -> *) -> *) -> *) TypeBXXEBBBXXXEXEXE :: TypeBXXEBBBXXXEXEXE -- | An encapsulation of type with a kind ( * -> * ) -> ( ( ( ( -- * -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXXEBBBBXXEXEXEXE x :: ((* -> *) -> ((((* -> *) -> *) -> *) -> *) -> *) TypeBXXEBBBBXXEXEXEXE :: TypeBXXEBBBBXXEXEXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> * -> * -> * -> * . data TypeXBXXEXXXX x :: (* -> (* -> *) -> * -> * -> * -> * -> *) TypeXBXXEXXXX :: TypeXBXXEXXXX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * ) -> * -> * -> * . data TypeXBXXEBXXEXX x :: (* -> (* -> *) -> (* -> *) -> * -> * -> *) TypeXBXXEBXXEXX :: TypeXBXXEBXXEXX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * ) -> ( * -> * ) -> * . data TypeXBXXEBXXEBXXE x :: (* -> (* -> *) -> (* -> *) -> (* -> *) -> *) TypeXBXXEBXXEBXXE :: TypeXBXXEBXXEBXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> ( * -> * ) -> * -> * . data TypeXBXXEXBXXEX x :: (* -> (* -> *) -> * -> (* -> *) -> * -> *) TypeXBXXEXBXXEX :: TypeXBXXEXBXXEX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> * -> ( * -> * ) -> * . data TypeXBXXEXXBXXE x :: (* -> (* -> *) -> * -> * -> (* -> *) -> *) TypeXBXXEXXBXXE :: TypeXBXXEXXBXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * -> * ) -> * -> * . data TypeXBXXEBXXXEX x :: (* -> (* -> *) -> (* -> * -> *) -> * -> *) TypeXBXXEBXXXEX :: TypeXBXXEBXXXEX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( ( * -> * ) -> * ) -> * -> * . data TypeXBXXEBBXXEXEX x :: (* -> (* -> *) -> ((* -> *) -> *) -> * -> *) TypeXBXXEBBXXEXEX :: TypeXBXXEBBXXEXEX -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> ( * -> * -> * ) -> * . data TypeXBXXEXBXXXE x :: (* -> (* -> *) -> * -> (* -> * -> *) -> *) TypeXBXXEXBXXXE :: TypeXBXXEXBXXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- * -> ( ( * -> * ) -> * ) -> * . data TypeXBXXEXBBXXEXE x :: (* -> (* -> *) -> * -> ((* -> *) -> *) -> *) TypeXBXXEXBBXXEXE :: TypeXBXXEXBBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> * -> * -> * ) -> * . data TypeXBXXEBXXXXE x :: (* -> (* -> *) -> (* -> * -> * -> *) -> *) TypeXBXXEBXXXXE :: TypeXBXXEBXXXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( ( * -> * ) -> * -> * ) -> * . data TypeXBXXEBBXXEXXE x :: (* -> (* -> *) -> ((* -> *) -> * -> *) -> *) TypeXBXXEBBXXEXXE :: TypeXBXXEBBXXEXXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( * -> ( * -> * ) -> * ) -> * . data TypeXBXXEBXBXXEXE x :: (* -> (* -> *) -> (* -> (* -> *) -> *) -> *) TypeXBXXEBXBXXEXE :: TypeXBXXEBXBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( ( * -> * -> * ) -> * ) -> * . data TypeXBXXEBBXXXEXE x :: (* -> (* -> *) -> ((* -> * -> *) -> *) -> *) TypeXBXXEBBXXXEXE :: TypeXBXXEBBXXXEXE -- | An encapsulation of type with a kind * -> ( * -> * ) -> -- ( ( ( * -> * ) -> * ) -> * ) -> * . data TypeXBXXEBBBXXEXEXE x :: (* -> (* -> *) -> (((* -> *) -> *) -> *) -> *) TypeXBXXEBBBXXEXEXE :: TypeXBXXEBBBXXEXEXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> * -> * -> * -> * . data TypeXXBXXEXXX x :: (* -> * -> (* -> *) -> * -> * -> * -> *) TypeXXBXXEXXX :: TypeXXBXXEXXX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> ( * -> * ) -> * -> * . data TypeXXBXXEBXXEX x :: (* -> * -> (* -> *) -> (* -> *) -> * -> *) TypeXXBXXEBXXEX :: TypeXXBXXEBXXEX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> * -> ( * -> * ) -> * . data TypeXXBXXEXBXXE x :: (* -> * -> (* -> *) -> * -> (* -> *) -> *) TypeXXBXXEXBXXE :: TypeXXBXXEXBXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> ( * -> * -> * ) -> * . data TypeXXBXXEBXXXE x :: (* -> * -> (* -> *) -> (* -> * -> *) -> *) TypeXXBXXEBXXXE :: TypeXXBXXEBXXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- ) -> ( ( * -> * ) -> * ) -> * . data TypeXXBXXEBBXXEXE x :: (* -> * -> (* -> *) -> ((* -> *) -> *) -> *) TypeXXBXXEBBXXEXE :: TypeXXBXXEBBXXEXE -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * ) -> * -> * -> * . data TypeXXXBXXEXX x :: (* -> * -> * -> (* -> *) -> * -> * -> *) TypeXXXBXXEXX :: TypeXXXBXXEXX -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * ) -> ( * -> * ) -> * . data TypeXXXBXXEBXXE x :: (* -> * -> * -> (* -> *) -> (* -> *) -> *) TypeXXXBXXEBXXE :: TypeXXXBXXEBXXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> ( * -> * ) -> * -> * . data TypeXXXXBXXEX x :: (* -> * -> * -> * -> (* -> *) -> * -> *) TypeXXXXBXXEX :: TypeXXXXBXXEX -- | An encapsulation of type with a kind * -> * -> * -> * -- -> * -> ( * -> * ) -> * . data TypeXXXXXBXXE x :: (* -> * -> * -> * -> * -> (* -> *) -> *) TypeXXXXXBXXE :: TypeXXXXXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> * -> * -> * -> * . data TypeBXXXEXXXX x :: ((* -> * -> *) -> * -> * -> * -> * -> *) TypeBXXXEXXXX :: TypeBXXXEXXXX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * ) -> * -> * -> * . data TypeBXXXEBXXEXX x :: ((* -> * -> *) -> (* -> *) -> * -> * -> *) TypeBXXXEBXXEXX :: TypeBXXXEBXXEXX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * ) -> ( * -> * ) -> * . data TypeBXXXEBXXEBXXE x :: ((* -> * -> *) -> (* -> *) -> (* -> *) -> *) TypeBXXXEBXXEBXXE :: TypeBXXXEBXXEBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> ( * -> * ) -> * -> * . data TypeBXXXEXBXXEX x :: ((* -> * -> *) -> * -> (* -> *) -> * -> *) TypeBXXXEXBXXEX :: TypeBXXXEXBXXEX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> * -> ( * -> * ) -> * . data TypeBXXXEXXBXXE x :: ((* -> * -> *) -> * -> * -> (* -> *) -> *) TypeBXXXEXXBXXE :: TypeBXXXEXXBXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * -> * ) -> * -> * . data TypeBXXXEBXXXEX x :: ((* -> * -> *) -> (* -> * -> *) -> * -> *) TypeBXXXEBXXXEX :: TypeBXXXEBXXXEX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( ( * -> * ) -> * ) -> * -> * . data TypeBXXXEBBXXEXEX x :: ((* -> * -> *) -> ((* -> *) -> *) -> * -> *) TypeBXXXEBBXXEXEX :: TypeBXXXEBBXXEXEX -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> ( * -> * -> * ) -> * . data TypeBXXXEXBXXXE x :: ((* -> * -> *) -> * -> (* -> * -> *) -> *) TypeBXXXEXBXXXE :: TypeBXXXEXBXXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- * -> ( ( * -> * ) -> * ) -> * . data TypeBXXXEXBBXXEXE x :: ((* -> * -> *) -> * -> ((* -> *) -> *) -> *) TypeBXXXEXBBXXEXE :: TypeBXXXEXBBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> * -> * -> * ) -> * . data TypeBXXXEBXXXXE x :: ((* -> * -> *) -> (* -> * -> * -> *) -> *) TypeBXXXEBXXXXE :: TypeBXXXEBXXXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( ( * -> * ) -> * -> * ) -> * . data TypeBXXXEBBXXEXXE x :: ((* -> * -> *) -> ((* -> *) -> * -> *) -> *) TypeBXXXEBBXXEXXE :: TypeBXXXEBBXXEXXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( * -> ( * -> * ) -> * ) -> * . data TypeBXXXEBXBXXEXE x :: ((* -> * -> *) -> (* -> (* -> *) -> *) -> *) TypeBXXXEBXBXXEXE :: TypeBXXXEBXBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( ( * -> * -> * ) -> * ) -> * . data TypeBXXXEBBXXXEXE x :: ((* -> * -> *) -> ((* -> * -> *) -> *) -> *) TypeBXXXEBBXXXEXE :: TypeBXXXEBBXXXEXE -- | An encapsulation of type with a kind ( * -> * -> * ) -> -- ( ( ( * -> * ) -> * ) -> * ) -> * . data TypeBXXXEBBBXXEXEXE x :: ((* -> * -> *) -> (((* -> *) -> *) -> *) -> *) TypeBXXXEBBBXXEXEXE :: TypeBXXXEBBBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> * -> * -> * -> * . data TypeBBXXEXEXXXX x :: (((* -> *) -> *) -> * -> * -> * -> * -> *) TypeBBXXEXEXXXX :: TypeBBXXEXEXXXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * -> * -> * . data TypeBBXXEXEBXXEXX x :: (((* -> *) -> *) -> (* -> *) -> * -> * -> *) TypeBBXXEXEBXXEXX :: TypeBBXXEXEBXXEXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * ) -> ( * -> * ) -> * . data TypeBBXXEXEBXXEBXXE x :: (((* -> *) -> *) -> (* -> *) -> (* -> *) -> *) TypeBBXXEXEBXXEBXXE :: TypeBBXXEXEBXXEBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> ( * -> * ) -> * -> * . data TypeBBXXEXEXBXXEX x :: (((* -> *) -> *) -> * -> (* -> *) -> * -> *) TypeBBXXEXEXBXXEX :: TypeBBXXEXEXBXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> * -> ( * -> * ) -> * . data TypeBBXXEXEXXBXXE x :: (((* -> *) -> *) -> * -> * -> (* -> *) -> *) TypeBBXXEXEXXBXXE :: TypeBBXXEXEXXBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * -> * ) -> * -> * . data TypeBBXXEXEBXXXEX x :: (((* -> *) -> *) -> (* -> * -> *) -> * -> *) TypeBBXXEXEBXXXEX :: TypeBBXXEXEBXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( ( * -> * ) -> * ) -> * -> * . data TypeBBXXEXEBBXXEXEX x :: (((* -> *) -> *) -> ((* -> *) -> *) -> * -> *) TypeBBXXEXEBBXXEXEX :: TypeBBXXEXEBBXXEXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> ( * -> * -> * ) -> * . data TypeBBXXEXEXBXXXE x :: (((* -> *) -> *) -> * -> (* -> * -> *) -> *) TypeBBXXEXEXBXXXE :: TypeBBXXEXEXBXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> * -> ( ( * -> * ) -> * ) -> * . data TypeBBXXEXEXBBXXEXE x :: (((* -> *) -> *) -> * -> ((* -> *) -> *) -> *) TypeBBXXEXEXBBXXEXE :: TypeBBXXEXEXBBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> * -> * -> * ) -> * . data TypeBBXXEXEBXXXXE x :: (((* -> *) -> *) -> (* -> * -> * -> *) -> *) TypeBBXXEXEBXXXXE :: TypeBBXXEXEBXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( ( * -> * ) -> * -> * ) -> * . data TypeBBXXEXEBBXXEXXE x :: (((* -> *) -> *) -> ((* -> *) -> * -> *) -> *) TypeBBXXEXEBBXXEXXE :: TypeBBXXEXEBBXXEXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( * -> ( * -> * ) -> * ) -> * . data TypeBBXXEXEBXBXXEXE x :: (((* -> *) -> *) -> (* -> (* -> *) -> *) -> *) TypeBBXXEXEBXBXXEXE :: TypeBBXXEXEBXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( ( * -> * -> * ) -> * ) -> * . data TypeBBXXEXEBBXXXEXE x :: (((* -> *) -> *) -> ((* -> * -> *) -> *) -> *) TypeBBXXEXEBBXXXEXE :: TypeBBXXEXEBBXXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * ) -- -> ( ( ( * -> * ) -> * ) -> * ) -> * . data TypeBBXXEXEBBBXXEXEXE x :: (((* -> *) -> *) -> (((* -> *) -> *) -> *) -> *) TypeBBXXEXEBBBXXEXEXE :: TypeBBXXEXEBBBXXEXEXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> * -> * -> * -> * . data TypeXBXXXEXXX x :: (* -> (* -> * -> *) -> * -> * -> * -> *) TypeXBXXXEXXX :: TypeXBXXXEXXX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> ( * -> * ) -> * -> * . data TypeXBXXXEBXXEX x :: (* -> (* -> * -> *) -> (* -> *) -> * -> *) TypeXBXXXEBXXEX :: TypeXBXXXEBXXEX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> * -> ( * -> * ) -> * . data TypeXBXXXEXBXXE x :: (* -> (* -> * -> *) -> * -> (* -> *) -> *) TypeXBXXXEXBXXE :: TypeXBXXXEXBXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> ( * -> * -> * ) -> * . data TypeXBXXXEBXXXE x :: (* -> (* -> * -> *) -> (* -> * -> *) -> *) TypeXBXXXEBXXXE :: TypeXBXXXEBXXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- ) -> ( ( * -> * ) -> * ) -> * . data TypeXBXXXEBBXXEXE x :: (* -> (* -> * -> *) -> ((* -> *) -> *) -> *) TypeXBXXXEBBXXEXE :: TypeXBXXXEBBXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> * -> * -> * -> * . data TypeXBBXXEXEXXX x :: (* -> ((* -> *) -> *) -> * -> * -> * -> *) TypeXBBXXEXEXXX :: TypeXBBXXEXEXXX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> ( * -> * ) -> * -> * . data TypeXBBXXEXEBXXEX x :: (* -> ((* -> *) -> *) -> (* -> *) -> * -> *) TypeXBBXXEXEBXXEX :: TypeXBBXXEXEBXXEX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> * -> ( * -> * ) -> * . data TypeXBBXXEXEXBXXE x :: (* -> ((* -> *) -> *) -> * -> (* -> *) -> *) TypeXBBXXEXEXBXXE :: TypeXBBXXEXEXBXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> ( * -> * -> * ) -> * . data TypeXBBXXEXEBXXXE x :: (* -> ((* -> *) -> *) -> (* -> * -> *) -> *) TypeXBBXXEXEBXXXE :: TypeXBBXXEXEBXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeXBBXXEXEBBXXEXE x :: (* -> ((* -> *) -> *) -> ((* -> *) -> *) -> *) TypeXBBXXEXEBBXXEXE :: TypeXBBXXEXEBBXXEXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * ) -> * -> * -> * . data TypeXXBXXXEXX x :: (* -> * -> (* -> * -> *) -> * -> * -> *) TypeXXBXXXEXX :: TypeXXBXXXEXX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * ) -> ( * -> * ) -> * . data TypeXXBXXXEBXXE x :: (* -> * -> (* -> * -> *) -> (* -> *) -> *) TypeXXBXXXEBXXE :: TypeXXBXXXEBXXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * ) -> * -> * -> * . data TypeXXBBXXEXEXX x :: (* -> * -> ((* -> *) -> *) -> * -> * -> *) TypeXXBBXXEXEXX :: TypeXXBBXXEXEXX -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeXXBBXXEXEBXXE x :: (* -> * -> ((* -> *) -> *) -> (* -> *) -> *) TypeXXBBXXEXEBXXE :: TypeXXBBXXEXEBXXE -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * -> * ) -> * -> * . data TypeXXXBXXXEX x :: (* -> * -> * -> (* -> * -> *) -> * -> *) TypeXXXBXXXEX :: TypeXXXBXXXEX -- | An encapsulation of type with a kind * -> * -> * -> ( ( -- * -> * ) -> * ) -> * -> * . data TypeXXXBBXXEXEX x :: (* -> * -> * -> ((* -> *) -> *) -> * -> *) TypeXXXBBXXEXEX :: TypeXXXBBXXEXEX -- | An encapsulation of type with a kind * -> * -> * -> * -- -> ( * -> * -> * ) -> * . data TypeXXXXBXXXE x :: (* -> * -> * -> * -> (* -> * -> *) -> *) TypeXXXXBXXXE :: TypeXXXXBXXXE -- | An encapsulation of type with a kind * -> * -> * -> * -- -> ( ( * -> * ) -> * ) -> * . data TypeXXXXBBXXEXE x :: (* -> * -> * -> * -> ((* -> *) -> *) -> *) TypeXXXXBBXXEXE :: TypeXXXXBBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> * -> * -> * -> * . data TypeBXXXXEXXX x :: ((* -> * -> * -> *) -> * -> * -> * -> *) TypeBXXXXEXXX :: TypeBXXXXEXXX -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> ( * -> * ) -> * -> * . data TypeBXXXXEBXXEX x :: ((* -> * -> * -> *) -> (* -> *) -> * -> *) TypeBXXXXEBXXEX :: TypeBXXXXEBXXEX -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> * -> ( * -> * ) -> * . data TypeBXXXXEXBXXE x :: ((* -> * -> * -> *) -> * -> (* -> *) -> *) TypeBXXXXEXBXXE :: TypeBXXXXEXBXXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> ( * -> * -> * ) -> * . data TypeBXXXXEBXXXE x :: ((* -> * -> * -> *) -> (* -> * -> *) -> *) TypeBXXXXEBXXXE :: TypeBXXXXEBXXXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- ) -> ( ( * -> * ) -> * ) -> * . data TypeBXXXXEBBXXEXE x :: ((* -> * -> * -> *) -> ((* -> *) -> *) -> *) TypeBXXXXEBBXXEXE :: TypeBXXXXEBBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> * -> * -> * -> * . data TypeBBXXEXXEXXX x :: (((* -> *) -> * -> *) -> * -> * -> * -> *) TypeBBXXEXXEXXX :: TypeBBXXEXXEXXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> ( * -> * ) -> * -> * . data TypeBBXXEXXEBXXEX x :: (((* -> *) -> * -> *) -> (* -> *) -> * -> *) TypeBBXXEXXEBXXEX :: TypeBBXXEXXEBXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> * -> ( * -> * ) -> * . data TypeBBXXEXXEXBXXE x :: (((* -> *) -> * -> *) -> * -> (* -> *) -> *) TypeBBXXEXXEXBXXE :: TypeBBXXEXXEXBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> ( * -> * -> * ) -> * . data TypeBBXXEXXEBXXXE x :: (((* -> *) -> * -> *) -> (* -> * -> *) -> *) TypeBBXXEXXEBXXXE :: TypeBBXXEXXEBXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeBBXXEXXEBBXXEXE x :: (((* -> *) -> * -> *) -> ((* -> *) -> *) -> *) TypeBBXXEXXEBBXXEXE :: TypeBBXXEXXEBBXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> * -> * -> * -> * . data TypeBXBXXEXEXXX x :: ((* -> (* -> *) -> *) -> * -> * -> * -> *) TypeBXBXXEXEXXX :: TypeBXBXXEXEXXX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> ( * -> * ) -> * -> * . data TypeBXBXXEXEBXXEX x :: ((* -> (* -> *) -> *) -> (* -> *) -> * -> *) TypeBXBXXEXEBXXEX :: TypeBXBXXEXEBXXEX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> * -> ( * -> * ) -> * . data TypeBXBXXEXEXBXXE x :: ((* -> (* -> *) -> *) -> * -> (* -> *) -> *) TypeBXBXXEXEXBXXE :: TypeBXBXXEXEXBXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> ( * -> * -> * ) -> * . data TypeBXBXXEXEBXXXE x :: ((* -> (* -> *) -> *) -> (* -> * -> *) -> *) TypeBXBXXEXEBXXXE :: TypeBXBXXEXEBXXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeBXBXXEXEBBXXEXE x :: ((* -> (* -> *) -> *) -> ((* -> *) -> *) -> *) TypeBXBXXEXEBBXXEXE :: TypeBXBXXEXEBBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> * -> * -> * -> * . data TypeBBXXXEXEXXX x :: (((* -> * -> *) -> *) -> * -> * -> * -> *) TypeBBXXXEXEXXX :: TypeBBXXXEXEXXX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> ( * -> * ) -> * -> * . data TypeBBXXXEXEBXXEX x :: (((* -> * -> *) -> *) -> (* -> *) -> * -> *) TypeBBXXXEXEBXXEX :: TypeBBXXXEXEBXXEX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> * -> ( * -> * ) -> * . data TypeBBXXXEXEXBXXE x :: (((* -> * -> *) -> *) -> * -> (* -> *) -> *) TypeBBXXXEXEXBXXE :: TypeBBXXXEXEXBXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> ( * -> * -> * ) -> * . data TypeBBXXXEXEBXXXE x :: (((* -> * -> *) -> *) -> (* -> * -> *) -> *) TypeBBXXXEXEBXXXE :: TypeBBXXXEXEBXXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeBBXXXEXEBBXXEXE x :: (((* -> * -> *) -> *) -> ((* -> *) -> *) -> *) TypeBBXXXEXEBBXXEXE :: TypeBBXXXEXEBBXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> * -> * -> * -> * . data TypeBBBXXEXEXEXXX x :: ((((* -> *) -> *) -> *) -> * -> * -> * -> *) TypeBBBXXEXEXEXXX :: TypeBBBXXEXEXEXXX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> ( * -> * ) -> * -> * . data TypeBBBXXEXEXEBXXEX x :: ((((* -> *) -> *) -> *) -> (* -> *) -> * -> *) TypeBBBXXEXEXEBXXEX :: TypeBBBXXEXEXEBXXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> * -> ( * -> * ) -> * . data TypeBBBXXEXEXEXBXXE x :: ((((* -> *) -> *) -> *) -> * -> (* -> *) -> *) TypeBBBXXEXEXEXBXXE :: TypeBBBXXEXEXEXBXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> ( * -> * -> * ) -> * . data TypeBBBXXEXEXEBXXXE x :: ((((* -> *) -> *) -> *) -> (* -> * -> *) -> *) TypeBBBXXEXEXEBXXXE :: TypeBBBXXEXEXEBXXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * ) -> ( ( * -> * ) -> * ) -> * . data TypeBBBXXEXEXEBBXXEXE x :: ((((* -> *) -> *) -> *) -> ((* -> *) -> *) -> *) TypeBBBXXEXEXEBBXXEXE :: TypeBBBXXEXEXEBBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * ) -> * -> * -> * . data TypeXBXXXXEXX x :: (* -> (* -> * -> * -> *) -> * -> * -> *) TypeXBXXXXEXX :: TypeXBXXXXEXX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * ) -> ( * -> * ) -> * . data TypeXBXXXXEBXXE x :: (* -> (* -> * -> * -> *) -> (* -> *) -> *) TypeXBXXXXEBXXE :: TypeXBXXXXEBXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * ) -> * -> * -> * . data TypeXBBXXEXXEXX x :: (* -> ((* -> *) -> * -> *) -> * -> * -> *) TypeXBBXXEXXEXX :: TypeXBBXXEXXEXX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * ) -> ( * -> * ) -> * . data TypeXBBXXEXXEBXXE x :: (* -> ((* -> *) -> * -> *) -> (* -> *) -> *) TypeXBBXXEXXEBXXE :: TypeXBBXXEXXEBXXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * ) -> * -> * -> * . data TypeXBXBXXEXEXX x :: (* -> (* -> (* -> *) -> *) -> * -> * -> *) TypeXBXBXXEXEXX :: TypeXBXBXXEXEXX -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeXBXBXXEXEBXXE x :: (* -> (* -> (* -> *) -> *) -> (* -> *) -> *) TypeXBXBXXEXEBXXE :: TypeXBXBXXEXEBXXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * ) -> * -> * -> * . data TypeXBBXXXEXEXX x :: (* -> ((* -> * -> *) -> *) -> * -> * -> *) TypeXBBXXXEXEXX :: TypeXBBXXXEXEXX -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeXBBXXXEXEBXXE x :: (* -> ((* -> * -> *) -> *) -> (* -> *) -> *) TypeXBBXXXEXEBXXE :: TypeXBBXXXEXEBXXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * -> * -> * . data TypeXBBBXXEXEXEXX x :: (* -> (((* -> *) -> *) -> *) -> * -> * -> *) TypeXBBBXXEXEXEXX :: TypeXBBBXXEXEXEXX -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeXBBBXXEXEXEBXXE x :: (* -> (((* -> *) -> *) -> *) -> (* -> *) -> *) TypeXBBBXXEXEXEBXXE :: TypeXBBBXXEXEXEBXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * -> * ) -> * -> * . data TypeXXBXXXXEX x :: (* -> * -> (* -> * -> * -> *) -> * -> *) TypeXXBXXXXEX :: TypeXXBXXXXEX -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * -> * ) -> * -> * . data TypeXXBBXXEXXEX x :: (* -> * -> ((* -> *) -> * -> *) -> * -> *) TypeXXBBXXEXXEX :: TypeXXBBXXEXXEX -- | An encapsulation of type with a kind * -> * -> ( * -> ( -- * -> * ) -> * ) -> * -> * . data TypeXXBXBXXEXEX x :: (* -> * -> (* -> (* -> *) -> *) -> * -> *) TypeXXBXBXXEXEX :: TypeXXBXBXXEXEX -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * -> * ) -> * ) -> * -> * . data TypeXXBBXXXEXEX x :: (* -> * -> ((* -> * -> *) -> *) -> * -> *) TypeXXBBXXXEXEX :: TypeXXBBXXXEXEX -- | An encapsulation of type with a kind * -> * -> ( ( ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeXXBBBXXEXEXEX x :: (* -> * -> (((* -> *) -> *) -> *) -> * -> *) TypeXXBBBXXEXEXEX :: TypeXXBBBXXEXEXEX -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> * -> * -> * ) -> * . data TypeXXXBXXXXE x :: (* -> * -> * -> (* -> * -> * -> *) -> *) TypeXXXBXXXXE :: TypeXXXBXXXXE -- | An encapsulation of type with a kind * -> * -> * -> ( ( -- * -> * ) -> * -> * ) -> * . data TypeXXXBBXXEXXE x :: (* -> * -> * -> ((* -> *) -> * -> *) -> *) TypeXXXBBXXEXXE :: TypeXXXBBXXEXXE -- | An encapsulation of type with a kind * -> * -> * -> ( * -- -> ( * -> * ) -> * ) -> * . data TypeXXXBXBXXEXE x :: (* -> * -> * -> (* -> (* -> *) -> *) -> *) TypeXXXBXBXXEXE :: TypeXXXBXBXXEXE -- | An encapsulation of type with a kind * -> * -> * -> ( ( -- * -> * -> * ) -> * ) -> * . data TypeXXXBBXXXEXE x :: (* -> * -> * -> ((* -> * -> *) -> *) -> *) TypeXXXBBXXXEXE :: TypeXXXBBXXXEXE -- | An encapsulation of type with a kind * -> * -> * -> ( ( -- ( * -> * ) -> * ) -> * ) -> * . data TypeXXXBBBXXEXEXE x :: (* -> * -> * -> (((* -> *) -> *) -> *) -> *) TypeXXXBBBXXEXEXE :: TypeXXXBBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * ) -> * -> * -> * . data TypeBXXXXXEXX x :: ((* -> * -> * -> * -> *) -> * -> * -> *) TypeBXXXXXEXX :: TypeBXXXXXEXX -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * ) -> ( * -> * ) -> * . data TypeBXXXXXEBXXE x :: ((* -> * -> * -> * -> *) -> (* -> *) -> *) TypeBXXXXXEBXXE :: TypeBXXXXXEBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * ) -> * -> * -> * . data TypeBBXXEXXXEXX x :: (((* -> *) -> * -> * -> *) -> * -> * -> *) TypeBBXXEXXXEXX :: TypeBBXXEXXXEXX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * ) -> ( * -> * ) -> * . data TypeBBXXEXXXEBXXE x :: (((* -> *) -> * -> * -> *) -> (* -> *) -> *) TypeBBXXEXXXEBXXE :: TypeBBXXEXXXEBXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * -> * -> * . data TypeBBXXEBXXEXEXX x :: (((* -> *) -> (* -> *) -> *) -> * -> * -> *) TypeBBXXEBXXEXEXX :: TypeBBXXEBXXEXEXX -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBBXXEBXXEXEBXXE x :: (((* -> *) -> (* -> *) -> *) -> (* -> *) -> *) TypeBBXXEBXXEXEBXXE :: TypeBBXXEBXXEXEBXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * ) -> * -> * -> * . data TypeBXBXXEXXEXX x :: ((* -> (* -> *) -> * -> *) -> * -> * -> *) TypeBXBXXEXXEXX :: TypeBXBXXEXXEXX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * ) -> ( * -> * ) -> * . data TypeBXBXXEXXEBXXE x :: ((* -> (* -> *) -> * -> *) -> (* -> *) -> *) TypeBXBXXEXXEBXXE :: TypeBXBXXEXXEBXXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * ) -> * -> * -> * . data TypeBXXBXXEXEXX x :: ((* -> * -> (* -> *) -> *) -> * -> * -> *) TypeBXXBXXEXEXX :: TypeBXXBXXEXEXX -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeBXXBXXEXEBXXE x :: ((* -> * -> (* -> *) -> *) -> (* -> *) -> *) TypeBXXBXXEXEBXXE :: TypeBXXBXXEXEBXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * ) -> * -> * -> * . data TypeBBXXXEXXEXX x :: (((* -> * -> *) -> * -> *) -> * -> * -> *) TypeBBXXXEXXEXX :: TypeBBXXXEXXEXX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * ) -> ( * -> * ) -> * . data TypeBBXXXEXXEBXXE x :: (((* -> * -> *) -> * -> *) -> (* -> *) -> *) TypeBBXXXEXXEBXXE :: TypeBBXXXEXXEBXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * ) -> * -> * -> * . data TypeBBBXXEXEXXEXX x :: ((((* -> *) -> *) -> * -> *) -> * -> * -> *) TypeBBBXXEXEXXEXX :: TypeBBBXXEXEXXEXX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * ) -> ( * -> * ) -> * . data TypeBBBXXEXEXXEBXXE x :: ((((* -> *) -> *) -> * -> *) -> (* -> *) -> *) TypeBBBXXEXEXXEBXXE :: TypeBBBXXEXEXXEBXXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * ) -> * -> * -> * . data TypeBXBXXXEXEXX x :: ((* -> (* -> * -> *) -> *) -> * -> * -> *) TypeBXBXXXEXEXX :: TypeBXBXXXEXEXX -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeBXBXXXEXEBXXE x :: ((* -> (* -> * -> *) -> *) -> (* -> *) -> *) TypeBXBXXXEXEBXXE :: TypeBXBXXXEXEBXXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * -> * -> * . data TypeBXBBXXEXEXEXX x :: ((* -> ((* -> *) -> *) -> *) -> * -> * -> *) TypeBXBBXXEXEXEXX :: TypeBXBBXXEXEXEXX -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBXBBXXEXEXEBXXE x :: ((* -> ((* -> *) -> *) -> *) -> (* -> *) -> *) TypeBXBBXXEXEXEBXXE :: TypeBXBBXXEXEXEBXXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * ) -> * -> * -> * . data TypeBBXXXXEXEXX x :: (((* -> * -> * -> *) -> *) -> * -> * -> *) TypeBBXXXXEXEXX :: TypeBBXXXXEXEXX -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * ) -> ( * -> * ) -> * . data TypeBBXXXXEXEBXXE x :: (((* -> * -> * -> *) -> *) -> (* -> *) -> *) TypeBBXXXXEXEBXXE :: TypeBBXXXXEXEBXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * -> * -> * . data TypeBBBXXEXXEXEXX x :: ((((* -> *) -> * -> *) -> *) -> * -> * -> *) TypeBBBXXEXXEXEXX :: TypeBBBXXEXXEXEXX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBBBXXEXXEXEBXXE x :: ((((* -> *) -> * -> *) -> *) -> (* -> *) -> *) TypeBBBXXEXXEXEBXXE :: TypeBBBXXEXXEXEBXXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * -> * -> * . data TypeBBXBXXEXEXEXX x :: (((* -> (* -> *) -> *) -> *) -> * -> * -> *) TypeBBXBXXEXEXEXX :: TypeBBXBXXEXEXEXX -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBBXBXXEXEXEBXXE x :: (((* -> (* -> *) -> *) -> *) -> (* -> *) -> *) TypeBBXBXXEXEXEBXXE :: TypeBBXBXXEXEXEBXXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * -> * -> * . data TypeBBBXXXEXEXEXX x :: ((((* -> * -> *) -> *) -> *) -> * -> * -> *) TypeBBBXXXEXEXEXX :: TypeBBBXXXEXEXEXX -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * ) -> ( * -> * ) -> * . data TypeBBBXXXEXEXEBXXE x :: ((((* -> * -> *) -> *) -> *) -> (* -> *) -> *) TypeBBBXXXEXEXEBXXE :: TypeBBBXXXEXEXEBXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * ) -> * -> * -> * . data TypeBBBBXXEXEXEXEXX x :: (((((* -> *) -> *) -> *) -> *) -> * -> * -> *) TypeBBBBXXEXEXEXEXX :: TypeBBBBXXEXEXEXEXX -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * ) -> ( * -> * ) -> * . data TypeBBBBXXEXEXEXEBXXE x :: (((((* -> *) -> *) -> *) -> *) -> (* -> *) -> *) TypeBBBBXXEXEXEXEBXXE :: TypeBBBBXXEXEXEXEBXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * -> * ) -> * -> * . data TypeXBXXXXXEX x :: (* -> (* -> * -> * -> * -> *) -> * -> *) TypeXBXXXXXEX :: TypeXBXXXXXEX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * -> * ) -> * -> * . data TypeXBBXXEXXXEX x :: (* -> ((* -> *) -> * -> * -> *) -> * -> *) TypeXBBXXEXXXEX :: TypeXBBXXEXXXEX -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> ( * -> * ) -> * ) -> * -> * . data TypeXBBXXEBXXEXEX x :: (* -> ((* -> *) -> (* -> *) -> *) -> * -> *) TypeXBBXXEBXXEXEX :: TypeXBBXXEBXXEXEX -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * -> * ) -> * -> * . data TypeXBXBXXEXXEX x :: (* -> (* -> (* -> *) -> * -> *) -> * -> *) TypeXBXBXXEXXEX :: TypeXBXBXXEXXEX -- | An encapsulation of type with a kind * -> ( * -> * -> ( -- * -> * ) -> * ) -> * -> * . data TypeXBXXBXXEXEX x :: (* -> (* -> * -> (* -> *) -> *) -> * -> *) TypeXBXXBXXEXEX :: TypeXBXXBXXEXEX -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * -> * ) -> * -> * . data TypeXBBXXXEXXEX x :: (* -> ((* -> * -> *) -> * -> *) -> * -> *) TypeXBBXXXEXXEX :: TypeXBBXXXEXXEX -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * -> * ) -> * -> * . data TypeXBBBXXEXEXXEX x :: (* -> (((* -> *) -> *) -> * -> *) -> * -> *) TypeXBBBXXEXEXXEX :: TypeXBBBXXEXEXXEX -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * -> * ) -> * ) -> * -> * . data TypeXBXBXXXEXEX x :: (* -> (* -> (* -> * -> *) -> *) -> * -> *) TypeXBXBXXXEXEX :: TypeXBXBXXXEXEX -- | An encapsulation of type with a kind * -> ( * -> ( ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeXBXBBXXEXEXEX x :: (* -> (* -> ((* -> *) -> *) -> *) -> * -> *) TypeXBXBBXXEXEXEX :: TypeXBXBBXXEXEXEX -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * -> * ) -> * ) -> * -> * . data TypeXBBXXXXEXEX x :: (* -> ((* -> * -> * -> *) -> *) -> * -> *) TypeXBBXXXXEXEX :: TypeXBBXXXXEXEX -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * -> * ) -> * ) -> * -> * . data TypeXBBBXXEXXEXEX x :: (* -> (((* -> *) -> * -> *) -> *) -> * -> *) TypeXBBBXXEXXEXEX :: TypeXBBBXXEXXEXEX -- | An encapsulation of type with a kind * -> ( ( * -> ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeXBBXBXXEXEXEX x :: (* -> ((* -> (* -> *) -> *) -> *) -> * -> *) TypeXBBXBXXEXEXEX :: TypeXBBXBXXEXEXEX -- | An encapsulation of type with a kind * -> ( ( ( * -> * -- -> * ) -> * ) -> * ) -> * -> * . data TypeXBBBXXXEXEXEX x :: (* -> (((* -> * -> *) -> *) -> *) -> * -> *) TypeXBBBXXXEXEXEX :: TypeXBBBXXXEXEXEX -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * -> * . data TypeXBBBBXXEXEXEXEX x :: (* -> ((((* -> *) -> *) -> *) -> *) -> * -> *) TypeXBBBBXXEXEXEXEX :: TypeXBBBBXXEXEXEXEX -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> * -> * -> * ) -> * . data TypeXXBXXXXXE x :: (* -> * -> (* -> * -> * -> * -> *) -> *) TypeXXBXXXXXE :: TypeXXBXXXXXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> * -> * -> * ) -> * . data TypeXXBBXXEXXXE x :: (* -> * -> ((* -> *) -> * -> * -> *) -> *) TypeXXBBXXEXXXE :: TypeXXBBXXEXXXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeXXBBXXEBXXEXE x :: (* -> * -> ((* -> *) -> (* -> *) -> *) -> *) TypeXXBBXXEBXXEXE :: TypeXXBBXXEBXXEXE -- | An encapsulation of type with a kind * -> * -> ( * -> ( -- * -> * ) -> * -> * ) -> * . data TypeXXBXBXXEXXE x :: (* -> * -> (* -> (* -> *) -> * -> *) -> *) TypeXXBXBXXEXXE :: TypeXXBXBXXEXXE -- | An encapsulation of type with a kind * -> * -> ( * -> * -- -> ( * -> * ) -> * ) -> * . data TypeXXBXXBXXEXE x :: (* -> * -> (* -> * -> (* -> *) -> *) -> *) TypeXXBXXBXXEXE :: TypeXXBXXBXXEXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * -> * ) -> * -> * ) -> * . data TypeXXBBXXXEXXE x :: (* -> * -> ((* -> * -> *) -> * -> *) -> *) TypeXXBBXXXEXXE :: TypeXXBBXXXEXXE -- | An encapsulation of type with a kind * -> * -> ( ( ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeXXBBBXXEXEXXE x :: (* -> * -> (((* -> *) -> *) -> * -> *) -> *) TypeXXBBBXXEXEXXE :: TypeXXBBBXXEXEXXE -- | An encapsulation of type with a kind * -> * -> ( * -> ( -- * -> * -> * ) -> * ) -> * . data TypeXXBXBXXXEXE x :: (* -> * -> (* -> (* -> * -> *) -> *) -> *) TypeXXBXBXXXEXE :: TypeXXBXBXXXEXE -- | An encapsulation of type with a kind * -> * -> ( * -> ( -- ( * -> * ) -> * ) -> * ) -> * . data TypeXXBXBBXXEXEXE x :: (* -> * -> (* -> ((* -> *) -> *) -> *) -> *) TypeXXBXBBXXEXEXE :: TypeXXBXBBXXEXEXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- * -> * -> * ) -> * ) -> * . data TypeXXBBXXXXEXE x :: (* -> * -> ((* -> * -> * -> *) -> *) -> *) TypeXXBBXXXXEXE :: TypeXXBBXXXXEXE -- | An encapsulation of type with a kind * -> * -> ( ( ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeXXBBBXXEXXEXE x :: (* -> * -> (((* -> *) -> * -> *) -> *) -> *) TypeXXBBBXXEXXEXE :: TypeXXBBBXXEXXEXE -- | An encapsulation of type with a kind * -> * -> ( ( * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeXXBBXBXXEXEXE x :: (* -> * -> ((* -> (* -> *) -> *) -> *) -> *) TypeXXBBXBXXEXEXE :: TypeXXBBXBXXEXEXE -- | An encapsulation of type with a kind * -> * -> ( ( ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeXXBBBXXXEXEXE x :: (* -> * -> (((* -> * -> *) -> *) -> *) -> *) TypeXXBBBXXXEXEXE :: TypeXXBBBXXXEXEXE -- | An encapsulation of type with a kind * -> * -> ( ( ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeXXBBBBXXEXEXEXE x :: (* -> * -> ((((* -> *) -> *) -> *) -> *) -> *) TypeXXBBBBXXEXEXEXE :: TypeXXBBBBXXEXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * -> * ) -> * -> * . data TypeBXXXXXXEX x :: ((* -> * -> * -> * -> * -> *) -> * -> *) TypeBXXXXXXEX :: TypeBXXXXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * -> * ) -> * -> * . data TypeBBXXEXXXXEX x :: (((* -> *) -> * -> * -> * -> *) -> * -> *) TypeBBXXEXXXXEX :: TypeBBXXEXXXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * -> * ) -> * -> * . data TypeBBXXEBXXEXXEX x :: (((* -> *) -> (* -> *) -> * -> *) -> * -> *) TypeBBXXEBXXEXXEX :: TypeBBXXEBXXEXXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> ( * -> * ) -> * ) -> * -> * . data TypeBBXXEXBXXEXEX x :: (((* -> *) -> * -> (* -> *) -> *) -> * -> *) TypeBBXXEXBXXEXEX :: TypeBBXXEXBXXEXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * -> * ) -> * ) -> * -> * . data TypeBBXXEBXXXEXEX x :: (((* -> *) -> (* -> * -> *) -> *) -> * -> *) TypeBBXXEBXXXEXEX :: TypeBBXXEBXXXEXEX -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBXXEBBXXEXEXEX x :: (((* -> *) -> ((* -> *) -> *) -> *) -> * -> *) TypeBBXXEBBXXEXEXEX :: TypeBBXXEBBXXEXEXEX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * -> * ) -> * -> * . data TypeBXBXXEXXXEX x :: ((* -> (* -> *) -> * -> * -> *) -> * -> *) TypeBXBXXEXXXEX :: TypeBXBXXEXXXEX -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> ( * -> * ) -> * ) -> * -> * . data TypeBXBXXEBXXEXEX x :: ((* -> (* -> *) -> (* -> *) -> *) -> * -> *) TypeBXBXXEBXXEXEX :: TypeBXBXXEBXXEXEX -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * -> * ) -> * -> * . data TypeBXXBXXEXXEX x :: ((* -> * -> (* -> *) -> * -> *) -> * -> *) TypeBXXBXXEXXEX :: TypeBXXBXXEXXEX -- | An encapsulation of type with a kind ( * -> * -> * -> ( -- * -> * ) -> * ) -> * -> * . data TypeBXXXBXXEXEX x :: ((* -> * -> * -> (* -> *) -> *) -> * -> *) TypeBXXXBXXEXEX :: TypeBXXXBXXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * -> * ) -> * -> * . data TypeBBXXXEXXXEX x :: (((* -> * -> *) -> * -> * -> *) -> * -> *) TypeBBXXXEXXXEX :: TypeBBXXXEXXXEX -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> ( * -> * ) -> * ) -> * -> * . data TypeBBXXXEBXXEXEX x :: (((* -> * -> *) -> (* -> *) -> *) -> * -> *) TypeBBXXXEBXXEXEX :: TypeBBXXXEBXXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * -> * ) -> * -> * . data TypeBBBXXEXEXXXEX x :: ((((* -> *) -> *) -> * -> * -> *) -> * -> *) TypeBBBXXEXEXXXEX :: TypeBBBXXEXEXXXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * ) -> * -> * . data TypeBBBXXEXEBXXEXEX x :: ((((* -> *) -> *) -> (* -> *) -> *) -> * -> *) TypeBBBXXEXEBXXEXEX :: TypeBBBXXEXEBXXEXEX -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * -> * ) -> * -> * . data TypeBXBXXXEXXEX x :: ((* -> (* -> * -> *) -> * -> *) -> * -> *) TypeBXBXXXEXXEX :: TypeBXBXXXEXXEX -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * -> * ) -> * -> * . data TypeBXBBXXEXEXXEX x :: ((* -> ((* -> *) -> *) -> * -> *) -> * -> *) TypeBXBBXXEXEXXEX :: TypeBXBBXXEXEXXEX -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * -> * ) -> * ) -> * -> * . data TypeBXXBXXXEXEX x :: ((* -> * -> (* -> * -> *) -> *) -> * -> *) TypeBXXBXXXEXEX :: TypeBXXBXXXEXEX -- | An encapsulation of type with a kind ( * -> * -> ( ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBXXBBXXEXEXEX x :: ((* -> * -> ((* -> *) -> *) -> *) -> * -> *) TypeBXXBBXXEXEXEX :: TypeBXXBBXXEXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * -> * ) -> * -> * . data TypeBBXXXXEXXEX x :: (((* -> * -> * -> *) -> * -> *) -> * -> *) TypeBBXXXXEXXEX :: TypeBBXXXXEXXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * -> * ) -> * -> * . data TypeBBBXXEXXEXXEX x :: ((((* -> *) -> * -> *) -> * -> *) -> * -> *) TypeBBBXXEXXEXXEX :: TypeBBBXXEXXEXXEX -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * -> * ) -> * -> * . data TypeBBXBXXEXEXXEX x :: (((* -> (* -> *) -> *) -> * -> *) -> * -> *) TypeBBXBXXEXEXXEX :: TypeBBXBXXEXEXXEX -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * -> * ) -> * -> * . data TypeBBBXXXEXEXXEX x :: ((((* -> * -> *) -> *) -> * -> *) -> * -> *) TypeBBBXXXEXEXXEX :: TypeBBBXXXEXEXXEX -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * -> * ) -> * -> * . data TypeBBBBXXEXEXEXXEX x :: (((((* -> *) -> *) -> *) -> * -> *) -> * -> *) TypeBBBBXXEXEXEXXEX :: TypeBBBBXXEXEXEXXEX -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * -> * ) -> * ) -> * -> * . data TypeBXBXXXXEXEX x :: ((* -> (* -> * -> * -> *) -> *) -> * -> *) TypeBXBXXXXEXEX :: TypeBXBXXXXEXEX -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * -> * ) -> * ) -> * -> * . data TypeBXBBXXEXXEXEX x :: ((* -> ((* -> *) -> * -> *) -> *) -> * -> *) TypeBXBBXXEXXEXEX :: TypeBXBBXXEXXEXEX -- | An encapsulation of type with a kind ( * -> ( * -> ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBXBXBXXEXEXEX x :: ((* -> (* -> (* -> *) -> *) -> *) -> * -> *) TypeBXBXBXXEXEXEX :: TypeBXBXBXXEXEXEX -- | An encapsulation of type with a kind ( * -> ( ( * -> * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBXBBXXXEXEXEX x :: ((* -> ((* -> * -> *) -> *) -> *) -> * -> *) TypeBXBBXXXEXEXEX :: TypeBXBBXXXEXEXEX -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * -> * . data TypeBXBBBXXEXEXEXEX x :: ((* -> (((* -> *) -> *) -> *) -> *) -> * -> *) TypeBXBBBXXEXEXEXEX :: TypeBXBBBXXEXEXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * -> * ) -> * ) -> * -> * . data TypeBBXXXXXEXEX x :: (((* -> * -> * -> * -> *) -> *) -> * -> *) TypeBBXXXXXEXEX :: TypeBBXXXXXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * -> * ) -> * ) -> * -> * . data TypeBBBXXEXXXEXEX x :: ((((* -> *) -> * -> * -> *) -> *) -> * -> *) TypeBBBXXEXXXEXEX :: TypeBBBXXEXXXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBBXXEBXXEXEXEX x :: ((((* -> *) -> (* -> *) -> *) -> *) -> * -> *) TypeBBBXXEBXXEXEXEX :: TypeBBBXXEBXXEXEXEX -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * -> * ) -> * ) -> * -> * . data TypeBBXBXXEXXEXEX x :: (((* -> (* -> *) -> * -> *) -> *) -> * -> *) TypeBBXBXXEXXEXEX :: TypeBBXBXXEXXEXEX -- | An encapsulation of type with a kind ( ( * -> * -> ( * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBXXBXXEXEXEX x :: (((* -> * -> (* -> *) -> *) -> *) -> * -> *) TypeBBXXBXXEXEXEX :: TypeBBXXBXXEXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * -> * ) -> * ) -> * -> * . data TypeBBBXXXEXXEXEX x :: ((((* -> * -> *) -> * -> *) -> *) -> * -> *) TypeBBBXXXEXXEXEX :: TypeBBBXXXEXXEXEX -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * -> * ) -> * ) -> * -> * . data TypeBBBBXXEXEXXEXEX x :: (((((* -> *) -> *) -> * -> *) -> *) -> * -> *) TypeBBBBXXEXEXXEXEX :: TypeBBBBXXEXEXXEXEX -- | An encapsulation of type with a kind ( ( * -> ( * -> * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBXBXXXEXEXEX x :: (((* -> (* -> * -> *) -> *) -> *) -> * -> *) TypeBBXBXXXEXEXEX :: TypeBBXBXXXEXEXEX -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBXBBXXEXEXEXEX x :: (((* -> ((* -> *) -> *) -> *) -> *) -> * -> *) TypeBBXBBXXEXEXEXEX :: TypeBBXBBXXEXEXEXEX -- | An encapsulation of type with a kind ( ( ( * -> * -> * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBBXXXXEXEXEX x :: ((((* -> * -> * -> *) -> *) -> *) -> * -> *) TypeBBBXXXXEXEXEX :: TypeBBBXXXXEXEXEX -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBBBXXEXXEXEXEX x :: (((((* -> *) -> * -> *) -> *) -> *) -> * -> *) TypeBBBBXXEXXEXEXEX :: TypeBBBBXXEXXEXEXEX -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBBXBXXEXEXEXEX x :: ((((* -> (* -> *) -> *) -> *) -> *) -> * -> *) TypeBBBXBXXEXEXEXEX :: TypeBBBXBXXEXEXEXEX -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * ) -> * -> * . data TypeBBBBXXXEXEXEXEX x :: (((((* -> * -> *) -> *) -> *) -> *) -> * -> *) TypeBBBBXXXEXEXEXEX :: TypeBBBBXXXEXEXEXEX -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * ) -> * ) -> * ) -> * ) -> * -> * . data TypeBBBBBXXEXEXEXEXEX x :: ((((((* -> *) -> *) -> *) -> *) -> *) -> * -> *) TypeBBBBBXXEXEXEXEXEX :: TypeBBBBBXXEXEXEXEXEX -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> * -> * -> * ) -> * . data TypeXBXXXXXXE x :: (* -> (* -> * -> * -> * -> * -> *) -> *) TypeXBXXXXXXE :: TypeXBXXXXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> * -> * -> * ) -> * . data TypeXBBXXEXXXXE x :: (* -> ((* -> *) -> * -> * -> * -> *) -> *) TypeXBBXXEXXXXE :: TypeXBBXXEXXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> ( * -> * ) -> * -> * ) -> * . data TypeXBBXXEBXXEXXE x :: (* -> ((* -> *) -> (* -> *) -> * -> *) -> *) TypeXBBXXEBXXEXXE :: TypeXBBXXEBXXEXXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> * -> ( * -> * ) -> * ) -> * . data TypeXBBXXEXBXXEXE x :: (* -> ((* -> *) -> * -> (* -> *) -> *) -> *) TypeXBBXXEXBXXEXE :: TypeXBBXXEXBXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> ( * -> * -> * ) -> * ) -> * . data TypeXBBXXEBXXXEXE x :: (* -> ((* -> *) -> (* -> * -> *) -> *) -> *) TypeXBBXXEBXXXEXE :: TypeXBBXXEBXXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * ) -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeXBBXXEBBXXEXEXE x :: (* -> ((* -> *) -> ((* -> *) -> *) -> *) -> *) TypeXBBXXEBBXXEXEXE :: TypeXBBXXEBBXXEXEXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> * -> * -> * ) -> * . data TypeXBXBXXEXXXE x :: (* -> (* -> (* -> *) -> * -> * -> *) -> *) TypeXBXBXXEXXXE :: TypeXBXBXXEXXXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeXBXBXXEBXXEXE x :: (* -> (* -> (* -> *) -> (* -> *) -> *) -> *) TypeXBXBXXEBXXEXE :: TypeXBXBXXEBXXEXE -- | An encapsulation of type with a kind * -> ( * -> * -> ( -- * -> * ) -> * -> * ) -> * . data TypeXBXXBXXEXXE x :: (* -> (* -> * -> (* -> *) -> * -> *) -> *) TypeXBXXBXXEXXE :: TypeXBXXBXXEXXE -- | An encapsulation of type with a kind * -> ( * -> * -> * -- -> ( * -> * ) -> * ) -> * . data TypeXBXXXBXXEXE x :: (* -> (* -> * -> * -> (* -> *) -> *) -> *) TypeXBXXXBXXEXE :: TypeXBXXXBXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> * -> * -> * ) -> * . data TypeXBBXXXEXXXE x :: (* -> ((* -> * -> *) -> * -> * -> *) -> *) TypeXBBXXXEXXXE :: TypeXBBXXXEXXXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeXBBXXXEBXXEXE x :: (* -> ((* -> * -> *) -> (* -> *) -> *) -> *) TypeXBBXXXEBXXEXE :: TypeXBBXXXEBXXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> * -> * -> * ) -> * . data TypeXBBBXXEXEXXXE x :: (* -> (((* -> *) -> *) -> * -> * -> *) -> *) TypeXBBBXXEXEXXXE :: TypeXBBBXXEXEXXXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeXBBBXXEXEBXXEXE x :: (* -> (((* -> *) -> *) -> (* -> *) -> *) -> *) TypeXBBBXXEXEBXXEXE :: TypeXBBBXXEXEBXXEXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * -> * ) -> * -> * ) -> * . data TypeXBXBXXXEXXE x :: (* -> (* -> (* -> * -> *) -> * -> *) -> *) TypeXBXBXXXEXXE :: TypeXBXBXXXEXXE -- | An encapsulation of type with a kind * -> ( * -> ( ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeXBXBBXXEXEXXE x :: (* -> (* -> ((* -> *) -> *) -> * -> *) -> *) TypeXBXBBXXEXEXXE :: TypeXBXBBXXEXEXXE -- | An encapsulation of type with a kind * -> ( * -> * -> ( -- * -> * -> * ) -> * ) -> * . data TypeXBXXBXXXEXE x :: (* -> (* -> * -> (* -> * -> *) -> *) -> *) TypeXBXXBXXXEXE :: TypeXBXXBXXXEXE -- | An encapsulation of type with a kind * -> ( * -> * -> ( -- ( * -> * ) -> * ) -> * ) -> * . data TypeXBXXBBXXEXEXE x :: (* -> (* -> * -> ((* -> *) -> *) -> *) -> *) TypeXBXXBBXXEXEXE :: TypeXBXXBBXXEXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * -> * ) -> * -> * ) -> * . data TypeXBBXXXXEXXE x :: (* -> ((* -> * -> * -> *) -> * -> *) -> *) TypeXBBXXXXEXXE :: TypeXBBXXXXEXXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * -> * ) -> * -> * ) -> * . data TypeXBBBXXEXXEXXE x :: (* -> (((* -> *) -> * -> *) -> * -> *) -> *) TypeXBBBXXEXXEXXE :: TypeXBBBXXEXXEXXE -- | An encapsulation of type with a kind * -> ( ( * -> ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeXBBXBXXEXEXXE x :: (* -> ((* -> (* -> *) -> *) -> * -> *) -> *) TypeXBBXBXXEXEXXE :: TypeXBBXBXXEXEXXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * -- -> * ) -> * ) -> * -> * ) -> * . data TypeXBBBXXXEXEXXE x :: (* -> (((* -> * -> *) -> *) -> * -> *) -> *) TypeXBBBXXXEXEXXE :: TypeXBBBXXXEXEXXE -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * ) -- -> * ) -> * ) -> * -> * ) -> * . data TypeXBBBBXXEXEXEXXE x :: (* -> ((((* -> *) -> *) -> *) -> * -> *) -> *) TypeXBBBBXXEXEXEXXE :: TypeXBBBBXXEXEXEXXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- * -> * -> * ) -> * ) -> * . data TypeXBXBXXXXEXE x :: (* -> (* -> (* -> * -> * -> *) -> *) -> *) TypeXBXBXXXXEXE :: TypeXBXBXXXXEXE -- | An encapsulation of type with a kind * -> ( * -> ( ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeXBXBBXXEXXEXE x :: (* -> (* -> ((* -> *) -> * -> *) -> *) -> *) TypeXBXBBXXEXXEXE :: TypeXBXBBXXEXXEXE -- | An encapsulation of type with a kind * -> ( * -> ( * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeXBXBXBXXEXEXE x :: (* -> (* -> (* -> (* -> *) -> *) -> *) -> *) TypeXBXBXBXXEXEXE :: TypeXBXBXBXXEXEXE -- | An encapsulation of type with a kind * -> ( * -> ( ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeXBXBBXXXEXEXE x :: (* -> (* -> ((* -> * -> *) -> *) -> *) -> *) TypeXBXBBXXXEXEXE :: TypeXBXBBXXXEXEXE -- | An encapsulation of type with a kind * -> ( * -> ( ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeXBXBBBXXEXEXEXE x :: (* -> (* -> (((* -> *) -> *) -> *) -> *) -> *) TypeXBXBBBXXEXEXEXE :: TypeXBXBBBXXEXEXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- * -> * -> * ) -> * ) -> * . data TypeXBBXXXXXEXE x :: (* -> ((* -> * -> * -> * -> *) -> *) -> *) TypeXBBXXXXXEXE :: TypeXBBXXXXXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> * -> * -> * ) -> * ) -> * . data TypeXBBBXXEXXXEXE x :: (* -> (((* -> *) -> * -> * -> *) -> *) -> *) TypeXBBBXXEXXXEXE :: TypeXBBBXXEXXXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * ) -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeXBBBXXEBXXEXEXE x :: (* -> (((* -> *) -> (* -> *) -> *) -> *) -> *) TypeXBBBXXEBXXEXEXE :: TypeXBBBXXEBXXEXEXE -- | An encapsulation of type with a kind * -> ( ( * -> ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeXBBXBXXEXXEXE x :: (* -> ((* -> (* -> *) -> * -> *) -> *) -> *) TypeXBBXBXXEXXEXE :: TypeXBBXBXXEXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeXBBXXBXXEXEXE x :: (* -> ((* -> * -> (* -> *) -> *) -> *) -> *) TypeXBBXXBXXEXEXE :: TypeXBBXXBXXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * -- -> * ) -> * -> * ) -> * ) -> * . data TypeXBBBXXXEXXEXE x :: (* -> (((* -> * -> *) -> * -> *) -> *) -> *) TypeXBBBXXXEXXEXE :: TypeXBBBXXXEXXEXE -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * ) -- -> * ) -> * -> * ) -> * ) -> * . data TypeXBBBBXXEXEXXEXE x :: (* -> ((((* -> *) -> *) -> * -> *) -> *) -> *) TypeXBBBBXXEXEXXEXE :: TypeXBBBBXXEXEXXEXE -- | An encapsulation of type with a kind * -> ( ( * -> ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeXBBXBXXXEXEXE x :: (* -> ((* -> (* -> * -> *) -> *) -> *) -> *) TypeXBBXBXXXEXEXE :: TypeXBBXBXXXEXEXE -- | An encapsulation of type with a kind * -> ( ( * -> ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeXBBXBBXXEXEXEXE x :: (* -> ((* -> ((* -> *) -> *) -> *) -> *) -> *) TypeXBBXBBXXEXEXEXE :: TypeXBBXBBXXEXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> * -- -> * -> * ) -> * ) -> * ) -> * . data TypeXBBBXXXXEXEXE x :: (* -> (((* -> * -> * -> *) -> *) -> *) -> *) TypeXBBBXXXXEXEXE :: TypeXBBBXXXXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * ) -- -> * -> * ) -> * ) -> * ) -> * . data TypeXBBBBXXEXXEXEXE x :: (* -> ((((* -> *) -> * -> *) -> *) -> *) -> *) TypeXBBBBXXEXXEXEXE :: TypeXBBBBXXEXXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( * -> ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeXBBBXBXXEXEXEXE x :: (* -> (((* -> (* -> *) -> *) -> *) -> *) -> *) TypeXBBBXBXXEXEXEXE :: TypeXBBBXBXXEXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( ( * -> * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeXBBBBXXXEXEXEXE x :: (* -> ((((* -> * -> *) -> *) -> *) -> *) -> *) TypeXBBBBXXXEXEXEXE :: TypeXBBBBXXXEXEXEXE -- | An encapsulation of type with a kind * -> ( ( ( ( ( * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeXBBBBBXXEXEXEXEXE x :: (* -> (((((* -> *) -> *) -> *) -> *) -> *) -> *) TypeXBBBBBXXEXEXEXEXE :: TypeXBBBBBXXEXEXEXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> * -> * -> * ) -> * . data TypeBXXXXXXXE x :: ((* -> * -> * -> * -> * -> * -> *) -> *) TypeBXXXXXXXE :: TypeBXXXXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> * -> * -> * ) -> * . data TypeBBXXEXXXXXE x :: (((* -> *) -> * -> * -> * -> * -> *) -> *) TypeBBXXEXXXXXE :: TypeBBXXEXXXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> * -> * -> * ) -> * . data TypeBBXXEBXXEXXXE x :: (((* -> *) -> (* -> *) -> * -> * -> *) -> *) TypeBBXXEBXXEXXXE :: TypeBBXXEBXXEXXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBBXXEBXXEBXXEXE x :: (((* -> *) -> (* -> *) -> (* -> *) -> *) -> *) TypeBBXXEBXXEBXXEXE :: TypeBBXXEBXXEBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> ( * -> * ) -> * -> * ) -> * . data TypeBBXXEXBXXEXXE x :: (((* -> *) -> * -> (* -> *) -> * -> *) -> *) TypeBBXXEXBXXEXXE :: TypeBBXXEXBXXEXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> * -> ( * -> * ) -> * ) -> * . data TypeBBXXEXXBXXEXE x :: (((* -> *) -> * -> * -> (* -> *) -> *) -> *) TypeBBXXEXXBXXEXE :: TypeBBXXEXXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * -> * ) -> * -> * ) -> * . data TypeBBXXEBXXXEXXE x :: (((* -> *) -> (* -> * -> *) -> * -> *) -> *) TypeBBXXEBXXXEXXE :: TypeBBXXEBXXXEXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBXXEBBXXEXEXXE x :: (((* -> *) -> ((* -> *) -> *) -> * -> *) -> *) TypeBBXXEBBXXEXEXXE :: TypeBBXXEBBXXEXEXXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> ( * -> * -> * ) -> * ) -> * . data TypeBBXXEXBXXXEXE x :: (((* -> *) -> * -> (* -> * -> *) -> *) -> *) TypeBBXXEXBXXXEXE :: TypeBBXXEXBXXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> * -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeBBXXEXBBXXEXEXE x :: (((* -> *) -> * -> ((* -> *) -> *) -> *) -> *) TypeBBXXEXBBXXEXEXE :: TypeBBXXEXBBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> * -> * -> * ) -> * ) -> * . data TypeBBXXEBXXXXEXE x :: (((* -> *) -> (* -> * -> * -> *) -> *) -> *) TypeBBXXEBXXXXEXE :: TypeBBXXEBXXXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBXXEBBXXEXXEXE x :: (((* -> *) -> ((* -> *) -> * -> *) -> *) -> *) TypeBBXXEBBXXEXXEXE :: TypeBBXXEBBXXEXXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( * -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBBXXEBXBXXEXEXE x :: (((* -> *) -> (* -> (* -> *) -> *) -> *) -> *) TypeBBXXEBXBXXEXEXE :: TypeBBXXEBXBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBXXEBBXXXEXEXE x :: (((* -> *) -> ((* -> * -> *) -> *) -> *) -> *) TypeBBXXEBBXXXEXEXE :: TypeBBXXEBBXXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * ) -> ( ( ( -- * -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBXXEBBBXXEXEXEXE x :: (((* -> *) -> (((* -> *) -> *) -> *) -> *) -> *) TypeBBXXEBBBXXEXEXEXE :: TypeBBXXEBBBXXEXEXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> * -> * -> * ) -> * . data TypeBXBXXEXXXXE x :: ((* -> (* -> *) -> * -> * -> * -> *) -> *) TypeBXBXXEXXXXE :: TypeBXBXXEXXXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> ( * -> * ) -> * -> * ) -> * . data TypeBXBXXEBXXEXXE x :: ((* -> (* -> *) -> (* -> *) -> * -> *) -> *) TypeBXBXXEBXXEXXE :: TypeBXBXXEBXXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> * -> ( * -> * ) -> * ) -> * . data TypeBXBXXEXBXXEXE x :: ((* -> (* -> *) -> * -> (* -> *) -> *) -> *) TypeBXBXXEXBXXEXE :: TypeBXBXXEXBXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> ( * -> * -> * ) -> * ) -> * . data TypeBXBXXEBXXXEXE x :: ((* -> (* -> *) -> (* -> * -> *) -> *) -> *) TypeBXBXXEBXXXEXE :: TypeBXBXXEBXXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * ) -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeBXBXXEBBXXEXEXE x :: ((* -> (* -> *) -> ((* -> *) -> *) -> *) -> *) TypeBXBXXEBBXXEXEXE :: TypeBXBXXEBBXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> * -> * -> * ) -> * . data TypeBXXBXXEXXXE x :: ((* -> * -> (* -> *) -> * -> * -> *) -> *) TypeBXXBXXEXXXE :: TypeBXXBXXEXXXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeBXXBXXEBXXEXE x :: ((* -> * -> (* -> *) -> (* -> *) -> *) -> *) TypeBXXBXXEBXXEXE :: TypeBXXBXXEBXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> ( -- * -> * ) -> * -> * ) -> * . data TypeBXXXBXXEXXE x :: ((* -> * -> * -> (* -> *) -> * -> *) -> *) TypeBXXXBXXEXXE :: TypeBXXXBXXEXXE -- | An encapsulation of type with a kind ( * -> * -> * -> * -- -> ( * -> * ) -> * ) -> * . data TypeBXXXXBXXEXE x :: ((* -> * -> * -> * -> (* -> *) -> *) -> *) TypeBXXXXBXXEXE :: TypeBXXXXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> * -> * -> * ) -> * . data TypeBBXXXEXXXXE x :: (((* -> * -> *) -> * -> * -> * -> *) -> *) TypeBBXXXEXXXXE :: TypeBBXXXEXXXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> ( * -> * ) -> * -> * ) -> * . data TypeBBXXXEBXXEXXE x :: (((* -> * -> *) -> (* -> *) -> * -> *) -> *) TypeBBXXXEBXXEXXE :: TypeBBXXXEBXXEXXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> * -> ( * -> * ) -> * ) -> * . data TypeBBXXXEXBXXEXE x :: (((* -> * -> *) -> * -> (* -> *) -> *) -> *) TypeBBXXXEXBXXEXE :: TypeBBXXXEXBXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> ( * -> * -> * ) -> * ) -> * . data TypeBBXXXEBXXXEXE x :: (((* -> * -> *) -> (* -> * -> *) -> *) -> *) TypeBBXXXEBXXXEXE :: TypeBBXXXEBXXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * ) -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeBBXXXEBBXXEXEXE x :: (((* -> * -> *) -> ((* -> *) -> *) -> *) -> *) TypeBBXXXEBBXXEXEXE :: TypeBBXXXEBBXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> * -> * -> * ) -> * . data TypeBBBXXEXEXXXXE x :: ((((* -> *) -> *) -> * -> * -> * -> *) -> *) TypeBBBXXEXEXXXXE :: TypeBBBXXEXEXXXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> ( * -> * ) -> * -> * ) -> * . data TypeBBBXXEXEBXXEXXE x :: ((((* -> *) -> *) -> (* -> *) -> * -> *) -> *) TypeBBBXXEXEBXXEXXE :: TypeBBBXXEXEBXXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> * -> ( * -> * ) -> * ) -> * . data TypeBBBXXEXEXBXXEXE x :: ((((* -> *) -> *) -> * -> (* -> *) -> *) -> *) TypeBBBXXEXEXBXXEXE :: TypeBBBXXEXEXBXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> ( * -> * -> * ) -> * ) -> * . data TypeBBBXXEXEBXXXEXE x :: ((((* -> *) -> *) -> (* -> * -> *) -> *) -> *) TypeBBBXXEXEBXXXEXE :: TypeBBBXXEXEBXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * ) -- -> ( ( * -> * ) -> * ) -> * ) -> * . data TypeBBBXXEXEBBXXEXEXE x :: ((((* -> *) -> *) -> ((* -> *) -> *) -> *) -> *) TypeBBBXXEXEBBXXEXEXE :: TypeBBBXXEXEBBXXEXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> * -> * -> * ) -> * . data TypeBXBXXXEXXXE x :: ((* -> (* -> * -> *) -> * -> * -> *) -> *) TypeBXBXXXEXXXE :: TypeBXBXXXEXXXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeBXBXXXEBXXEXE x :: ((* -> (* -> * -> *) -> (* -> *) -> *) -> *) TypeBXBXXXEBXXEXE :: TypeBXBXXXEBXXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> * -> * -> * ) -> * . data TypeBXBBXXEXEXXXE x :: ((* -> ((* -> *) -> *) -> * -> * -> *) -> *) TypeBXBBXXEXEXXXE :: TypeBXBBXXEXEXXXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBXBBXXEXEBXXEXE x :: ((* -> ((* -> *) -> *) -> (* -> *) -> *) -> *) TypeBXBBXXEXEBXXEXE :: TypeBXBBXXEXEBXXEXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * -> * ) -> * -> * ) -> * . data TypeBXXBXXXEXXE x :: ((* -> * -> (* -> * -> *) -> * -> *) -> *) TypeBXXBXXXEXXE :: TypeBXXBXXXEXXE -- | An encapsulation of type with a kind ( * -> * -> ( ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBXXBBXXEXEXXE x :: ((* -> * -> ((* -> *) -> *) -> * -> *) -> *) TypeBXXBBXXEXEXXE :: TypeBXXBBXXEXEXXE -- | An encapsulation of type with a kind ( * -> * -> * -> ( -- * -> * -> * ) -> * ) -> * . data TypeBXXXBXXXEXE x :: ((* -> * -> * -> (* -> * -> *) -> *) -> *) TypeBXXXBXXXEXE :: TypeBXXXBXXXEXE -- | An encapsulation of type with a kind ( * -> * -> * -> ( -- ( * -> * ) -> * ) -> * ) -> * . data TypeBXXXBBXXEXEXE x :: ((* -> * -> * -> ((* -> *) -> *) -> *) -> *) TypeBXXXBBXXEXEXE :: TypeBXXXBBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> * -> * -> * ) -> * . data TypeBBXXXXEXXXE x :: (((* -> * -> * -> *) -> * -> * -> *) -> *) TypeBBXXXXEXXXE :: TypeBBXXXXEXXXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * ) -> ( * -> * ) -> * ) -> * . data TypeBBXXXXEBXXEXE x :: (((* -> * -> * -> *) -> (* -> *) -> *) -> *) TypeBBXXXXEBXXEXE :: TypeBBXXXXEBXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> * -> * -> * ) -> * . data TypeBBBXXEXXEXXXE x :: ((((* -> *) -> * -> *) -> * -> * -> *) -> *) TypeBBBXXEXXEXXXE :: TypeBBBXXEXXEXXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBBBXXEXXEBXXEXE x :: ((((* -> *) -> * -> *) -> (* -> *) -> *) -> *) TypeBBBXXEXXEBXXEXE :: TypeBBBXXEXXEBXXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> * -> * -> * ) -> * . data TypeBBXBXXEXEXXXE x :: (((* -> (* -> *) -> *) -> * -> * -> *) -> *) TypeBBXBXXEXEXXXE :: TypeBBXBXXEXEXXXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBBXBXXEXEBXXEXE x :: (((* -> (* -> *) -> *) -> (* -> *) -> *) -> *) TypeBBXBXXEXEBXXEXE :: TypeBBXBXXEXEBXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> * -> * -> * ) -> * . data TypeBBBXXXEXEXXXE x :: ((((* -> * -> *) -> *) -> * -> * -> *) -> *) TypeBBBXXXEXEXXXE :: TypeBBBXXXEXEXXXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * ) -> ( * -> * ) -> * ) -> * . data TypeBBBXXXEXEBXXEXE x :: ((((* -> * -> *) -> *) -> (* -> *) -> *) -> *) TypeBBBXXXEXEBXXEXE :: TypeBBBXXXEXEBXXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> * -> * -> * ) -> * . data TypeBBBBXXEXEXEXXXE x :: (((((* -> *) -> *) -> *) -> * -> * -> *) -> *) TypeBBBBXXEXEXEXXXE :: TypeBBBBXXEXEXEXXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * ) -> ( * -> * ) -> * ) -> * . data TypeBBBBXXEXEXEBXXEXE x :: (((((* -> *) -> *) -> *) -> (* -> *) -> *) -> *) TypeBBBBXXEXEXEBXXEXE :: TypeBBBBXXEXEXEBXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * -> * ) -> * -> * ) -> * . data TypeBXBXXXXEXXE x :: ((* -> (* -> * -> * -> *) -> * -> *) -> *) TypeBXBXXXXEXXE :: TypeBXBXXXXEXXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * -> * ) -> * -> * ) -> * . data TypeBXBBXXEXXEXXE x :: ((* -> ((* -> *) -> * -> *) -> * -> *) -> *) TypeBXBBXXEXXEXXE :: TypeBXBBXXEXXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBXBXBXXEXEXXE x :: ((* -> (* -> (* -> *) -> *) -> * -> *) -> *) TypeBXBXBXXEXEXXE :: TypeBXBXBXXEXEXXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBXBBXXXEXEXXE x :: ((* -> ((* -> * -> *) -> *) -> * -> *) -> *) TypeBXBBXXXEXEXXE :: TypeBXBBXXXEXEXXE -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * ) -- -> * ) -> * ) -> * -> * ) -> * . data TypeBXBBBXXEXEXEXXE x :: ((* -> (((* -> *) -> *) -> *) -> * -> *) -> *) TypeBXBBBXXEXEXEXXE :: TypeBXBBBXXEXEXEXXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- * -> * -> * ) -> * ) -> * . data TypeBXXBXXXXEXE x :: ((* -> * -> (* -> * -> * -> *) -> *) -> *) TypeBXXBXXXXEXE :: TypeBXXBXXXXEXE -- | An encapsulation of type with a kind ( * -> * -> ( ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBXXBBXXEXXEXE x :: ((* -> * -> ((* -> *) -> * -> *) -> *) -> *) TypeBXXBBXXEXXEXE :: TypeBXXBBXXEXXEXE -- | An encapsulation of type with a kind ( * -> * -> ( * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeBXXBXBXXEXEXE x :: ((* -> * -> (* -> (* -> *) -> *) -> *) -> *) TypeBXXBXBXXEXEXE :: TypeBXXBXBXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> ( ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBXXBBXXXEXEXE x :: ((* -> * -> ((* -> * -> *) -> *) -> *) -> *) TypeBXXBBXXXEXEXE :: TypeBXXBBXXXEXEXE -- | An encapsulation of type with a kind ( * -> * -> ( ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXXBBBXXEXEXEXE x :: ((* -> * -> (((* -> *) -> *) -> *) -> *) -> *) TypeBXXBBBXXEXEXEXE :: TypeBXXBBBXXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * -> * ) -> * -> * ) -> * . data TypeBBXXXXXEXXE x :: (((* -> * -> * -> * -> *) -> * -> *) -> *) TypeBBXXXXXEXXE :: TypeBBXXXXXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * -> * ) -> * -> * ) -> * . data TypeBBBXXEXXXEXXE x :: ((((* -> *) -> * -> * -> *) -> * -> *) -> *) TypeBBBXXEXXXEXXE :: TypeBBBXXEXXXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBBXXEBXXEXEXXE x :: ((((* -> *) -> (* -> *) -> *) -> * -> *) -> *) TypeBBBXXEBXXEXEXXE :: TypeBBBXXEBXXEXEXXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * -> * ) -> * -> * ) -> * . data TypeBBXBXXEXXEXXE x :: (((* -> (* -> *) -> * -> *) -> * -> *) -> *) TypeBBXBXXEXXEXXE :: TypeBBXBXXEXXEXXE -- | An encapsulation of type with a kind ( ( * -> * -> ( * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBXXBXXEXEXXE x :: (((* -> * -> (* -> *) -> *) -> * -> *) -> *) TypeBBXXBXXEXEXXE :: TypeBBXXBXXEXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * -> * ) -> * -> * ) -> * . data TypeBBBXXXEXXEXXE x :: ((((* -> * -> *) -> * -> *) -> * -> *) -> *) TypeBBBXXXEXXEXXE :: TypeBBBXXXEXXEXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * -> * ) -> * -> * ) -> * . data TypeBBBBXXEXEXXEXXE x :: (((((* -> *) -> *) -> * -> *) -> * -> *) -> *) TypeBBBBXXEXEXXEXXE :: TypeBBBBXXEXEXXEXXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBXBXXXEXEXXE x :: (((* -> (* -> * -> *) -> *) -> * -> *) -> *) TypeBBXBXXXEXEXXE :: TypeBBXBXXXEXEXXE -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * ) -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBXBBXXEXEXEXXE x :: (((* -> ((* -> *) -> *) -> *) -> * -> *) -> *) TypeBBXBBXXEXEXEXXE :: TypeBBXBBXXEXEXEXXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBBXXXXEXEXXE x :: ((((* -> * -> * -> *) -> *) -> * -> *) -> *) TypeBBBXXXXEXEXXE :: TypeBBBXXXXEXEXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBBBXXEXXEXEXXE x :: (((((* -> *) -> * -> *) -> *) -> * -> *) -> *) TypeBBBBXXEXXEXEXXE :: TypeBBBBXXEXXEXEXXE -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * ) -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBBXBXXEXEXEXXE x :: ((((* -> (* -> *) -> *) -> *) -> * -> *) -> *) TypeBBBXBXXEXEXEXXE :: TypeBBBXBXXEXEXEXXE -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * ) -- -> * ) -> * ) -> * -> * ) -> * . data TypeBBBBXXXEXEXEXXE x :: (((((* -> * -> *) -> *) -> *) -> * -> *) -> *) TypeBBBBXXXEXEXEXXE :: TypeBBBBXXXEXEXEXXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * ) -> * ) -> * ) -> * -> * ) -> * . data TypeBBBBBXXEXEXEXEXXE x :: ((((((* -> *) -> *) -> *) -> *) -> * -> *) -> *) TypeBBBBBXXEXEXEXEXXE :: TypeBBBBBXXEXEXEXEXXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- * -> * -> * ) -> * ) -> * . data TypeBXBXXXXXEXE x :: ((* -> (* -> * -> * -> * -> *) -> *) -> *) TypeBXBXXXXXEXE :: TypeBXBXXXXXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> * -> * -> * ) -> * ) -> * . data TypeBXBBXXEXXXEXE x :: ((* -> ((* -> *) -> * -> * -> *) -> *) -> *) TypeBXBBXXEXXXEXE :: TypeBXBBXXEXXXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * ) -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBXBBXXEBXXEXEXE x :: ((* -> ((* -> *) -> (* -> *) -> *) -> *) -> *) TypeBXBBXXEBXXEXEXE :: TypeBXBBXXEBXXEXEXE -- | An encapsulation of type with a kind ( * -> ( * -> ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBXBXBXXEXXEXE x :: ((* -> (* -> (* -> *) -> * -> *) -> *) -> *) TypeBXBXBXXEXXEXE :: TypeBXBXBXXEXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeBXBXXBXXEXEXE x :: ((* -> (* -> * -> (* -> *) -> *) -> *) -> *) TypeBXBXXBXXEXEXE :: TypeBXBXXBXXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBXBBXXXEXXEXE x :: ((* -> ((* -> * -> *) -> * -> *) -> *) -> *) TypeBXBBXXXEXXEXE :: TypeBXBBXXXEXXEXE -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * ) -- -> * ) -> * -> * ) -> * ) -> * . data TypeBXBBBXXEXEXXEXE x :: ((* -> (((* -> *) -> *) -> * -> *) -> *) -> *) TypeBXBBBXXEXEXXEXE :: TypeBXBBBXXEXEXXEXE -- | An encapsulation of type with a kind ( * -> ( * -> ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBXBXBXXXEXEXE x :: ((* -> (* -> (* -> * -> *) -> *) -> *) -> *) TypeBXBXBXXXEXEXE :: TypeBXBXBXXXEXEXE -- | An encapsulation of type with a kind ( * -> ( * -> ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXBXBBXXEXEXEXE x :: ((* -> (* -> ((* -> *) -> *) -> *) -> *) -> *) TypeBXBXBBXXEXEXEXE :: TypeBXBXBBXXEXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBXBBXXXXEXEXE x :: ((* -> ((* -> * -> * -> *) -> *) -> *) -> *) TypeBXBBXXXXEXEXE :: TypeBXBBXXXXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * ) -- -> * -> * ) -> * ) -> * ) -> * . data TypeBXBBBXXEXXEXEXE x :: ((* -> (((* -> *) -> * -> *) -> *) -> *) -> *) TypeBXBBBXXEXXEXEXE :: TypeBXBBBXXEXXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( * -> ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXBBXBXXEXEXEXE x :: ((* -> ((* -> (* -> *) -> *) -> *) -> *) -> *) TypeBXBBXBXXEXEXEXE :: TypeBXBBXBXXEXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( ( * -> * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXBBBXXXEXEXEXE x :: ((* -> (((* -> * -> *) -> *) -> *) -> *) -> *) TypeBXBBBXXXEXEXEXE :: TypeBXBBBXXXEXEXEXE -- | An encapsulation of type with a kind ( * -> ( ( ( ( * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBXBBBBXXEXEXEXEXE x :: ((* -> ((((* -> *) -> *) -> *) -> *) -> *) -> *) TypeBXBBBBXXEXEXEXEXE :: TypeBXBBBBXXEXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- * -> * -> * ) -> * ) -> * . data TypeBBXXXXXXEXE x :: (((* -> * -> * -> * -> * -> *) -> *) -> *) TypeBBXXXXXXEXE :: TypeBBXXXXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> * -> * -> * ) -> * ) -> * . data TypeBBBXXEXXXXEXE x :: ((((* -> *) -> * -> * -> * -> *) -> *) -> *) TypeBBBXXEXXXXEXE :: TypeBBBXXEXXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBBXXEBXXEXXEXE x :: ((((* -> *) -> (* -> *) -> * -> *) -> *) -> *) TypeBBBXXEBXXEXXEXE :: TypeBBBXXEBXXEXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> * -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBBBXXEXBXXEXEXE x :: ((((* -> *) -> * -> (* -> *) -> *) -> *) -> *) TypeBBBXXEXBXXEXEXE :: TypeBBBXXEXBXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBBXXEBXXXEXEXE x :: ((((* -> *) -> (* -> * -> *) -> *) -> *) -> *) TypeBBBXXEBXXXEXEXE :: TypeBBBXXEBXXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * ) -> ( ( -- * -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBXXEBBXXEXEXEXE x :: ((((* -> *) -> ((* -> *) -> *) -> *) -> *) -> *) TypeBBBXXEBBXXEXEXEXE :: TypeBBBXXEBBXXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> * -> * -> * ) -> * ) -> * . data TypeBBXBXXEXXXEXE x :: (((* -> (* -> *) -> * -> * -> *) -> *) -> *) TypeBBXBXXEXXXEXE :: TypeBBXBXXEXXXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * ) -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBBXBXXEBXXEXEXE x :: (((* -> (* -> *) -> (* -> *) -> *) -> *) -> *) TypeBBXBXXEBXXEXEXE :: TypeBBXBXXEBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> ( * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBXXBXXEXXEXE x :: (((* -> * -> (* -> *) -> * -> *) -> *) -> *) TypeBBXXBXXEXXEXE :: TypeBBXXBXXEXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> * -> -- ( * -> * ) -> * ) -> * ) -> * . data TypeBBXXXBXXEXEXE x :: (((* -> * -> * -> (* -> *) -> *) -> *) -> *) TypeBBXXXBXXEXEXE :: TypeBBXXXBXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> * -> * -> * ) -> * ) -> * . data TypeBBBXXXEXXXEXE x :: ((((* -> * -> *) -> * -> * -> *) -> *) -> *) TypeBBBXXXEXXXEXE :: TypeBBBXXXEXXXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * ) -- -> ( * -> * ) -> * ) -> * ) -> * . data TypeBBBXXXEBXXEXEXE x :: ((((* -> * -> *) -> (* -> *) -> *) -> *) -> *) TypeBBBXXXEBXXEXEXE :: TypeBBBXXXEBXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> * -> * -> * ) -> * ) -> * . data TypeBBBBXXEXEXXXEXE x :: (((((* -> *) -> *) -> * -> * -> *) -> *) -> *) TypeBBBBXXEXEXXXEXE :: TypeBBBBXXEXEXXXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- ) -> ( * -> * ) -> * ) -> * ) -> * . data TypeBBBBXXEXEBXXEXEXE x :: (((((* -> *) -> *) -> (* -> *) -> *) -> *) -> *) TypeBBBBXXEXEBXXEXEXE :: TypeBBBBXXEXEBXXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBXBXXXEXXEXE x :: (((* -> (* -> * -> *) -> * -> *) -> *) -> *) TypeBBXBXXXEXXEXE :: TypeBBXBXXXEXXEXE -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * ) -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBXBBXXEXEXXEXE x :: (((* -> ((* -> *) -> *) -> * -> *) -> *) -> *) TypeBBXBBXXEXEXXEXE :: TypeBBXBBXXEXEXXEXE -- | An encapsulation of type with a kind ( ( * -> * -> ( * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBXXBXXXEXEXE x :: (((* -> * -> (* -> * -> *) -> *) -> *) -> *) TypeBBXXBXXXEXEXE :: TypeBBXXBXXXEXEXE -- | An encapsulation of type with a kind ( ( * -> * -> ( ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBXXBBXXEXEXEXE x :: (((* -> * -> ((* -> *) -> *) -> *) -> *) -> *) TypeBBXXBBXXEXEXEXE :: TypeBBXXBBXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBBXXXXEXXEXE x :: ((((* -> * -> * -> *) -> * -> *) -> *) -> *) TypeBBBXXXXEXXEXE :: TypeBBBXXXXEXXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBBBXXEXXEXXEXE x :: (((((* -> *) -> * -> *) -> * -> *) -> *) -> *) TypeBBBBXXEXXEXXEXE :: TypeBBBBXXEXXEXXEXE -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * ) -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBBXBXXEXEXXEXE x :: ((((* -> (* -> *) -> *) -> * -> *) -> *) -> *) TypeBBBXBXXEXEXXEXE :: TypeBBBXBXXEXEXXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * ) -- -> * ) -> * -> * ) -> * ) -> * . data TypeBBBBXXXEXEXXEXE x :: (((((* -> * -> *) -> *) -> * -> *) -> *) -> *) TypeBBBBXXXEXEXXEXE :: TypeBBBBXXXEXEXXEXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * ) -> * ) -> * -> * ) -> * ) -> * . data TypeBBBBBXXEXEXEXXEXE x :: ((((((* -> *) -> *) -> *) -> * -> *) -> *) -> *) TypeBBBBBXXEXEXEXXEXE :: TypeBBBBBXXEXEXEXXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBXBXXXXEXEXE x :: (((* -> (* -> * -> * -> *) -> *) -> *) -> *) TypeBBXBXXXXEXEXE :: TypeBBXBXXXXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * ) -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBXBBXXEXXEXEXE x :: (((* -> ((* -> *) -> * -> *) -> *) -> *) -> *) TypeBBXBBXXEXXEXEXE :: TypeBBXBBXXEXXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( * -> ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBXBXBXXEXEXEXE x :: (((* -> (* -> (* -> *) -> *) -> *) -> *) -> *) TypeBBXBXBXXEXEXEXE :: TypeBBXBXBXXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( ( * -> * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBXBBXXXEXEXEXE x :: (((* -> ((* -> * -> *) -> *) -> *) -> *) -> *) TypeBBXBBXXXEXEXEXE :: TypeBBXBBXXXEXEXEXE -- | An encapsulation of type with a kind ( ( * -> ( ( ( * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBXBBBXXEXEXEXEXE x :: (((* -> (((* -> *) -> *) -> *) -> *) -> *) -> *) TypeBBXBBBXXEXEXEXEXE :: TypeBBXBBBXXEXEXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBBXXXXXEXEXE x :: ((((* -> * -> * -> * -> *) -> *) -> *) -> *) TypeBBBXXXXXEXEXE :: TypeBBBXXXXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> * -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBBBXXEXXXEXEXE x :: (((((* -> *) -> * -> * -> *) -> *) -> *) -> *) TypeBBBBXXEXXXEXEXE :: TypeBBBBXXEXXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * ) -> ( -- * -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBXXEBXXEXEXEXE x :: (((((* -> *) -> (* -> *) -> *) -> *) -> *) -> *) TypeBBBBXXEBXXEXEXEXE :: TypeBBBBXXEBXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * ) -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBBXBXXEXXEXEXE x :: ((((* -> (* -> *) -> * -> *) -> *) -> *) -> *) TypeBBBXBXXEXXEXEXE :: TypeBBBXBXXEXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> * -> ( * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBXXBXXEXEXEXE x :: ((((* -> * -> (* -> *) -> *) -> *) -> *) -> *) TypeBBBXXBXXEXEXEXE :: TypeBBBXXBXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * ) -- -> * -> * ) -> * ) -> * ) -> * . data TypeBBBBXXXEXXEXEXE x :: (((((* -> * -> *) -> * -> *) -> *) -> *) -> *) TypeBBBBXXXEXXEXEXE :: TypeBBBBXXXEXXEXEXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * ) -> * -> * ) -> * ) -> * ) -> * . data TypeBBBBBXXEXEXXEXEXE x :: ((((((* -> *) -> *) -> * -> *) -> *) -> *) -> *) TypeBBBBBXXEXEXXEXEXE :: TypeBBBBBXXEXEXXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> ( * -> * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBXBXXXEXEXEXE x :: ((((* -> (* -> * -> *) -> *) -> *) -> *) -> *) TypeBBBXBXXXEXEXEXE :: TypeBBBXBXXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( * -> ( ( * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBXBBXXEXEXEXEXE x :: ((((* -> ((* -> *) -> *) -> *) -> *) -> *) -> *) TypeBBBXBBXXEXEXEXEXE :: TypeBBBXBBXXEXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> * -> * -- -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBXXXXEXEXEXE x :: (((((* -> * -> * -> *) -> *) -> *) -> *) -> *) TypeBBBBXXXXEXEXEXE :: TypeBBBBXXXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * ) -> -- * -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBBXXEXXEXEXEXE x :: ((((((* -> *) -> * -> *) -> *) -> *) -> *) -> *) TypeBBBBBXXEXXEXEXEXE :: TypeBBBBBXXEXXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( * -> ( * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBXBXXEXEXEXEXE x :: (((((* -> (* -> *) -> *) -> *) -> *) -> *) -> *) TypeBBBBXBXXEXEXEXEXE :: TypeBBBBXBXXEXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( ( * -> * -> * -- ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBBXXXEXEXEXEXE x :: ((((((* -> * -> *) -> *) -> *) -> *) -> *) -> *) TypeBBBBBXXXEXEXEXEXE :: TypeBBBBBXXXEXEXEXEXE -- | An encapsulation of type with a kind ( ( ( ( ( ( * -> * ) -- -> * ) -> * ) -> * ) -> * ) -> * ) -> * . data TypeBBBBBBXXEXEXEXEXEXE x :: (((((((* -> *) -> *) -> *) -> *) -> *) -> *) -> *) TypeBBBBBBXXEXEXEXEXEXE :: TypeBBBBBBXXEXEXEXEXEXE cast :: (Typed (Type f), Typed (Type t)) => f -> Maybe t -- | Given a Kind return the template haskell Name for the -- appropriate type encapsulator. typeConstructorName :: Kind -> Name -- | Used to derive instances of typed. -- --
-- data T1 = T1 -- $(deriveTyped ''T1 "") ---- --
-- data T2 p0 = T2 -- $(deriveTyped ''T2 "X") ---- --
-- data T3 ( p0 :: * -> * ) = T3 -- $(deriveTyped ''T2 "BXXE") ---- --
-- data T4 p0 p1 = T4 -- $(deriveTyped ''T2 "XX") ---- --
-- data T5 ( p0 :: ((* -> *) -> *) -> * ) ( p1 :: * -> * ) = T5 -- $(deriveTyped ''T2 "BBBXXEXEXEBXXE") --deriveTyped :: Name -> String -> Q [Dec] -- | Same as deriveTyped but uses Kind. deriveTyped_ :: Name -> Kind -> Q [Dec] -- | Same as deriveTyped but package name and type wrapper name is -- given explicitly. deriveTyped__ :: String -> Name -> Name -> Q [Dec]