type-0.2.0: Dynamic casting library with support for arbitrary rank type kinds.

Data.Type

Description

Collection of dynamic type meta data and casting utilities.

The template haskell funtions in this module expect to find symbols exported from this module under Data.Type. Thus change:

 import qualified Data.Type as T

Into:

 import qualified Data.Type
 import qualified Data.Type as T

It would be possible to drop this requirement, but currently not without bloating the library unnecessarily.

 import Data.Type

 newtype T m a = T (m a)
 deriveMeta ''T

 hello = cast . T $ print "Hello world" :: Meta a => Maybe a
 main = case hello of
   Just (T m) -> m
   _          -> print "Impossible!"

Will print Hello world.

Synopsis

Documentation

data TypeID Source

An unique identifier for types. The order given is arbitrary but stable during program execution.

Instances

makeTypeIDSource

Arguments

:: String

Name of the package where the type constructor resides.

-> String

Name of the module where the type constructor resides.

-> String

The type constructor name.

-> TypeID

The TypeID of the given type constructor.

Used internally when defining instances of the Meta classes.

applyTypeIDSource

Arguments

:: TypeID

The incomplete TypeID to which the type parameter is being applied to.

-> TypeID

The TypeID that is given as a parameter.

-> TypeID

Resulting type id.

Used internally when defining instances of the Meta classes.

mapTypeIDSource

Arguments

:: forall r .  
=> (String -> String -> String -> r)

Extract the data given to makeTypeID

-> (r -> r -> r)

Extract the data given to applyTypeID

-> TypeID

The TypeID from which the data needs to be extracted.

-> r

The extract.

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.

kindStarLimit :: IntSource

The maximum number of StarKs in Kinds this library was compiled to handle.

typeOf :: forall t. t -> Type tSource

cast :: forall f t. (Meta f, Meta t) => f -> Maybe tSource

coerce :: forall f t. (Meta f, Meta t) => f -> tSource

deriveMetaSource

Arguments

:: Name

The name of the type constructor.

-> Q [Dec] 

Used to derive instances of the Meta classes.

 data T ...
 deriveMeta ''T

declareMetaSource

Arguments

:: Kind

The kind of the type constructor.

-> Name

The name of the type constructor.

-> Q [Dec] 

Used internally to declare instances of the Meta classes for some primitives.

data TypeBBXXXXXXEXE t Source

Constructors

TypeBBXXXXXXEXE 

Instances

data TypeBXBXXXXXEXE t Source

Constructors

TypeBXBXXXXXEXE 

Instances

data TypeBBXXXXXEXXE t Source

Constructors

TypeBBXXXXXEXXE 

Instances

data TypeBXXBXXXXEXE t Source

Constructors

TypeBXXBXXXXEXE 

Instances

data TypeBXBXXXXEXXE t Source

Constructors

TypeBXBXXXXEXXE 

Instances

data TypeBBXXXXEXXXE t Source

Constructors

TypeBBXXXXEXXXE 

Instances

data TypeBXXXBXXXEXE t Source

Constructors

TypeBXXXBXXXEXE 

Instances

data TypeBXXBXXXEXXE t Source

Constructors

TypeBXXBXXXEXXE 

Instances

data TypeBXBXXXEXXXE t Source

Constructors

TypeBXBXXXEXXXE 

Instances

data TypeBBXXXEXXXXE t Source

Constructors

TypeBBXXXEXXXXE 

Instances

data TypeBXXXXBXXEXE t Source

Constructors

TypeBXXXXBXXEXE 

Instances

data TypeBXXXBXXEXXE t Source

Constructors

TypeBXXXBXXEXXE 

Instances

data TypeBXXBXXEXXXE t Source

Constructors

TypeBXXBXXEXXXE 

Instances

data TypeBXBXXEXXXXE t Source

Constructors

TypeBXBXXEXXXXE 

Instances

data TypeBBXXEXXXXXE t Source

Constructors

TypeBBXXEXXXXXE 

Instances

data TypeBXXXXXXXE t Source

Constructors

TypeBXXXXXXXE 

Instances

data TypeXBBXXXXXEXE t Source

Constructors

TypeXBBXXXXXEXE 

Instances

data TypeXBXBXXXXEXE t Source

Constructors

TypeXBXBXXXXEXE 

Instances

data TypeXBBXXXXEXXE t Source

Constructors

TypeXBBXXXXEXXE 

Instances

data TypeXBXXBXXXEXE t Source

Constructors

TypeXBXXBXXXEXE 

Instances

data TypeXBXBXXXEXXE t Source

Constructors

TypeXBXBXXXEXXE 

Instances

data TypeXBBXXXEXXXE t Source

Constructors

TypeXBBXXXEXXXE 

Instances

data TypeXBXXXBXXEXE t Source

Constructors

TypeXBXXXBXXEXE 

Instances

data TypeXBXXBXXEXXE t Source

Constructors

TypeXBXXBXXEXXE 

Instances

data TypeXBXBXXEXXXE t Source

Constructors

TypeXBXBXXEXXXE 

Instances

data TypeXBBXXEXXXXE t Source

Constructors

TypeXBBXXEXXXXE 

Instances

data TypeXBXXXXXXE t Source

Constructors

TypeXBXXXXXXE 

Instances

data TypeBBXXXXXEXEX t Source

Constructors

TypeBBXXXXXEXEX 

Instances

data TypeBXBXXXXEXEX t Source

Constructors

TypeBXBXXXXEXEX 

Instances

data TypeBBXXXXEXXEX t Source

Constructors

TypeBBXXXXEXXEX 

Instances

data TypeBXXBXXXEXEX t Source

Constructors

TypeBXXBXXXEXEX 

Instances

data TypeBXBXXXEXXEX t Source

Constructors

TypeBXBXXXEXXEX 

Instances

data TypeBBXXXEXXXEX t Source

Constructors

TypeBBXXXEXXXEX 

Instances

data TypeBXXXBXXEXEX t Source

Constructors

TypeBXXXBXXEXEX 

Instances

data TypeBXXBXXEXXEX t Source

Constructors

TypeBXXBXXEXXEX 

Instances

data TypeBXBXXEXXXEX t Source

Constructors

TypeBXBXXEXXXEX 

Instances

data TypeBBXXEXXXXEX t Source

Constructors

TypeBBXXEXXXXEX 

Instances

data TypeBXXXXXXEX t Source

Constructors

TypeBXXXXXXEX 

Instances

data TypeXXBBXXXXEXE t Source

Constructors

TypeXXBBXXXXEXE 

Instances

data TypeXXBXBXXXEXE t Source

Constructors

TypeXXBXBXXXEXE 

Instances

data TypeXXBBXXXEXXE t Source

Constructors

TypeXXBBXXXEXXE 

Instances

data TypeXXBXXBXXEXE t Source

Constructors

TypeXXBXXBXXEXE 

Instances

data TypeXXBXBXXEXXE t Source

Constructors

TypeXXBXBXXEXXE 

Instances

data TypeXXBBXXEXXXE t Source

Constructors

TypeXXBBXXEXXXE 

Instances

data TypeXXBXXXXXE t Source

Constructors

TypeXXBXXXXXE 

Instances

data TypeXBBXXXXEXEX t Source

Constructors

TypeXBBXXXXEXEX 

Instances

data TypeXBXBXXXEXEX t Source

Constructors

TypeXBXBXXXEXEX 

Instances

data TypeXBBXXXEXXEX t Source

Constructors

TypeXBBXXXEXXEX 

Instances

data TypeXBXXBXXEXEX t Source

Constructors

TypeXBXXBXXEXEX 

Instances

data TypeXBXBXXEXXEX t Source

Constructors

TypeXBXBXXEXXEX 

Instances

data TypeXBBXXEXXXEX t Source

Constructors

TypeXBBXXEXXXEX 

Instances

data TypeXBXXXXXEX t Source

Constructors

TypeXBXXXXXEX 

Instances

data TypeBBXXXXEXEXX t Source

Constructors

TypeBBXXXXEXEXX 

Instances

data TypeBXBXXXEXEXX t Source

Constructors

TypeBXBXXXEXEXX 

Instances

data TypeBBXXXEXXEXX t Source

Constructors

TypeBBXXXEXXEXX 

Instances

data TypeBXXBXXEXEXX t Source

Constructors

TypeBXXBXXEXEXX 

Instances

data TypeBXBXXEXXEXX t Source

Constructors

TypeBXBXXEXXEXX 

Instances

data TypeBBXXEXXXEXX t Source

Constructors

TypeBBXXEXXXEXX 

Instances

data TypeBXXXXXEBXXE t Source

Constructors

TypeBXXXXXEBXXE 

Instances

data TypeBXXXXXEXX t Source

Constructors

TypeBXXXXXEXX 

Instances

data TypeXXXBBXXXEXE t Source

Constructors

TypeXXXBBXXXEXE 

Instances

data TypeXXXBXBXXEXE t Source

Constructors

TypeXXXBXBXXEXE 

Instances

data TypeXXXBBXXEXXE t Source

Constructors

TypeXXXBBXXEXXE 

Instances

data TypeXXXBXXXXE t Source

Constructors

TypeXXXBXXXXE 

Instances

data TypeXXBBXXXEXEX t Source

Constructors

TypeXXBBXXXEXEX 

Instances

data TypeXXBXBXXEXEX t Source

Constructors

TypeXXBXBXXEXEX 

Instances

data TypeXXBBXXEXXEX t Source

Constructors

TypeXXBBXXEXXEX 

Instances

data TypeXXBXXXXEX t Source

Constructors

TypeXXBXXXXEX 

Instances

data TypeXBBXXXEXEXX t Source

Constructors

TypeXBBXXXEXEXX 

Instances

data TypeXBXBXXEXEXX t Source

Constructors

TypeXBXBXXEXEXX 

Instances

data TypeXBBXXEXXEXX t Source

Constructors

TypeXBBXXEXXEXX 

Instances

data TypeXBXXXXEBXXE t Source

Constructors

TypeXBXXXXEBXXE 

Instances

data TypeXBXXXXEXX t Source

Constructors

TypeXBXXXXEXX 

Instances

data TypeBBXXXEXEXXX t Source

Constructors

TypeBBXXXEXEXXX 

Instances

data TypeBXBXXEXEXXX t Source

Constructors

TypeBXBXXEXEXXX 

Instances

data TypeBBXXEXXEXXX t Source

Constructors

TypeBBXXEXXEXXX 

Instances

data TypeBXXXXEBXXXE t Source

Constructors

TypeBXXXXEBXXXE 

Instances

data TypeBXXXXEXBXXE t Source

Constructors

TypeBXXXXEXBXXE 

Instances

data TypeBXXXXEBXXEX t Source

Constructors

TypeBXXXXEBXXEX 

Instances

data TypeBXXXXEXXX t Source

Constructors

TypeBXXXXEXXX 

Instances

data TypeXXXXBBXXEXE t Source

Constructors

TypeXXXXBBXXEXE 

Instances

data TypeXXXXBXXXE t Source

Constructors

TypeXXXXBXXXE 

Instances

data TypeXXXBBXXEXEX t Source

Constructors

TypeXXXBBXXEXEX 

Instances

data TypeXXXBXXXEX t Source

Constructors

TypeXXXBXXXEX 

Instances

data TypeXXBBXXEXEXX t Source

Constructors

TypeXXBBXXEXEXX 

Instances

data TypeXXBXXXEBXXE t Source

Constructors

TypeXXBXXXEBXXE 

Instances

data TypeXXBXXXEXX t Source

Constructors

TypeXXBXXXEXX 

Instances

data TypeXBBXXEXEXXX t Source

Constructors

TypeXBBXXEXEXXX 

Instances

data TypeXBXXXEBXXXE t Source

Constructors

TypeXBXXXEBXXXE 

Instances

data TypeXBXXXEXBXXE t Source

Constructors

TypeXBXXXEXBXXE 

Instances

data TypeXBXXXEBXXEX t Source

Constructors

TypeXBXXXEBXXEX 

Instances

data TypeXBXXXEXXX t Source

Constructors

TypeXBXXXEXXX 

Instances

data TypeBBXXEXEXXXX t Source

Constructors

TypeBBXXEXEXXXX 

Instances

data TypeBXXXEBXXXXE t Source

Constructors

TypeBXXXEBXXXXE 

Instances

data TypeBXXXEXBXXXE t Source

Constructors

TypeBXXXEXBXXXE 

Instances

data TypeBXXXEBXXXEX t Source

Constructors

TypeBXXXEBXXXEX 

Instances

data TypeBXXXEXXBXXE t Source

Constructors

TypeBXXXEXXBXXE 

Instances

data TypeBXXXEXBXXEX t Source

Constructors

TypeBXXXEXBXXEX 

Instances

data TypeBXXXEBXXEXX t Source

Constructors

TypeBXXXEBXXEXX 

Instances

data TypeBXXXEXXXX t Source

Constructors

TypeBXXXEXXXX 

Instances

data TypeXXXXXBXXE t Source

Constructors

TypeXXXXXBXXE 

Instances

data TypeXXXXBXXEX t Source

Constructors

TypeXXXXBXXEX 

Instances

data TypeXXXBXXEBXXE t Source

Constructors

TypeXXXBXXEBXXE 

Instances

data TypeXXXBXXEXX t Source

Constructors

TypeXXXBXXEXX 

Instances

data TypeXXBXXEBXXXE t Source

Constructors

TypeXXBXXEBXXXE 

Instances

data TypeXXBXXEXBXXE t Source

Constructors

TypeXXBXXEXBXXE 

Instances

data TypeXXBXXEBXXEX t Source

Constructors

TypeXXBXXEBXXEX 

Instances

data TypeXXBXXEXXX t Source

Constructors

TypeXXBXXEXXX 

Instances

data TypeXBXXEBXXXXE t Source

Constructors

TypeXBXXEBXXXXE 

Instances

data TypeXBXXEXBXXXE t Source

Constructors

TypeXBXXEXBXXXE 

Instances

data TypeXBXXEBXXXEX t Source

Constructors

TypeXBXXEBXXXEX 

Instances

data TypeXBXXEXXBXXE t Source

Constructors

TypeXBXXEXXBXXE 

Instances

data TypeXBXXEXBXXEX t Source

Constructors

TypeXBXXEXBXXEX 

Instances

data TypeXBXXEBXXEXX t Source

Constructors

TypeXBXXEBXXEXX 

Instances

data TypeXBXXEXXXX t Source

Constructors

TypeXBXXEXXXX 

Instances

data TypeBXXEBXXXXXE t Source

Constructors

TypeBXXEBXXXXXE 

Instances

data TypeBXXEXBXXXXE t Source

Constructors

TypeBXXEXBXXXXE 

Instances

data TypeBXXEBXXXXEX t Source

Constructors

TypeBXXEBXXXXEX 

Instances

data TypeBXXEXXBXXXE t Source

Constructors

TypeBXXEXXBXXXE 

Instances

data TypeBXXEXBXXXEX t Source

Constructors

TypeBXXEXBXXXEX 

Instances

data TypeBXXEBXXXEXX t Source

Constructors

TypeBXXEBXXXEXX 

Instances

data TypeBXXEXXXBXXE t Source

Constructors

TypeBXXEXXXBXXE 

Instances

data TypeBXXEXXBXXEX t Source

Constructors

TypeBXXEXXBXXEX 

Instances

data TypeBXXEXBXXEXX t Source

Constructors

TypeBXXEXBXXEXX 

Instances

data TypeBXXEBXXEXXX t Source

Constructors

TypeBXXEBXXEXXX 

Instances

data TypeBXXEXXXXX t Source

Constructors

TypeBXXEXXXXX 

Instances

data TypeXXXXXXX t Source

Constructors

TypeXXXXXXX 

Instances

data TypeBBXXXXXEXE t Source

Constructors

TypeBBXXXXXEXE 

Instances

data TypeBXBXXXXEXE t Source

Constructors

TypeBXBXXXXEXE 

Instances

data TypeBBXXXXEXXE t Source

Constructors

TypeBBXXXXEXXE 

Instances

data TypeBXXBXXXEXE t Source

Constructors

TypeBXXBXXXEXE 

Instances

data TypeBXBXXXEXXE t Source

Constructors

TypeBXBXXXEXXE 

Instances

data TypeBBXXXEXXXE t Source

Constructors

TypeBBXXXEXXXE 

Instances

data TypeBXXXBXXEXE t Source

Constructors

TypeBXXXBXXEXE 

Instances

data TypeBXXBXXEXXE t Source

Constructors

TypeBXXBXXEXXE 

Instances

data TypeBXBXXEXXXE t Source

Constructors

TypeBXBXXEXXXE 

Instances

data TypeBBXXEXXXXE t Source

Constructors

TypeBBXXEXXXXE 

Instances

data TypeBXXXXXXE t Source

Constructors

TypeBXXXXXXE 

Instances

data TypeXBBXXXXEXE t Source

Constructors

TypeXBBXXXXEXE 

Instances

data TypeXBXBXXXEXE t Source

Constructors

TypeXBXBXXXEXE 

Instances

data TypeXBBXXXEXXE t Source

Constructors

TypeXBBXXXEXXE 

Instances

data TypeXBXXBXXEXE t Source

Constructors

TypeXBXXBXXEXE 

Instances

data TypeXBXBXXEXXE t Source

Constructors

TypeXBXBXXEXXE 

Instances

data TypeXBBXXEXXXE t Source

Constructors

TypeXBBXXEXXXE 

Instances

data TypeXBXXXXXE t Source

Constructors

TypeXBXXXXXE 

Instances

data TypeBBXXXXEXEX t Source

Constructors

TypeBBXXXXEXEX 

Instances

data TypeBXBXXXEXEX t Source

Constructors

TypeBXBXXXEXEX 

Instances

data TypeBBXXXEXXEX t Source

Constructors

TypeBBXXXEXXEX 

Instances

data TypeBXXBXXEXEX t Source

Constructors

TypeBXXBXXEXEX 

Instances

data TypeBXBXXEXXEX t Source

Constructors

TypeBXBXXEXXEX 

Instances

data TypeBBXXEXXXEX t Source

Constructors

TypeBBXXEXXXEX 

Instances

data TypeBXXXXXEX t Source

Constructors

TypeBXXXXXEX 

Instances

data TypeXXBBXXXEXE t Source

Constructors

TypeXXBBXXXEXE 

Instances

data TypeXXBXBXXEXE t Source

Constructors

TypeXXBXBXXEXE 

Instances

data TypeXXBBXXEXXE t Source

Constructors

TypeXXBBXXEXXE 

Instances

data TypeXXBXXXXE t Source

Constructors

TypeXXBXXXXE 

Instances

data TypeXBBXXXEXEX t Source

Constructors

TypeXBBXXXEXEX 

Instances

data TypeXBXBXXEXEX t Source

Constructors

TypeXBXBXXEXEX 

Instances

data TypeXBBXXEXXEX t Source

Constructors

TypeXBBXXEXXEX 

Instances

data TypeXBXXXXEX t Source

Constructors

TypeXBXXXXEX 

Instances

data TypeBBXXXEXEXX t Source

Constructors

TypeBBXXXEXEXX 

Instances

data TypeBXBXXEXEXX t Source

Constructors

TypeBXBXXEXEXX 

Instances

data TypeBBXXEXXEXX t Source

Constructors

TypeBBXXEXXEXX 

Instances

data TypeBXXXXEBXXE t Source

Constructors

TypeBXXXXEBXXE 

Instances

data TypeBXXXXEXX t Source

Constructors

TypeBXXXXEXX 

Instances

data TypeXXXBBXXEXE t Source

Constructors

TypeXXXBBXXEXE 

Instances

data TypeXXXBXXXE t Source

Constructors

TypeXXXBXXXE 

Instances

data TypeXXBBXXEXEX t Source

Constructors

TypeXXBBXXEXEX 

Instances

data TypeXXBXXXEX t Source

Constructors

TypeXXBXXXEX 

Instances

data TypeXBBXXEXEXX t Source

Constructors

TypeXBBXXEXEXX 

Instances

data TypeXBXXXEBXXE t Source

Constructors

TypeXBXXXEBXXE 

Instances

data TypeXBXXXEXX t Source

Constructors

TypeXBXXXEXX 

Instances

data TypeBBXXEXEXXX t Source

Constructors

TypeBBXXEXEXXX 

Instances

data TypeBXXXEBXXXE t Source

Constructors

TypeBXXXEBXXXE 

Instances

data TypeBXXXEXBXXE t Source

Constructors

TypeBXXXEXBXXE 

Instances

data TypeBXXXEBXXEX t Source

Constructors

TypeBXXXEBXXEX 

Instances

data TypeBXXXEXXX t Source

Constructors

TypeBXXXEXXX 

Instances

data TypeXXXXBXXE t Source

Constructors

TypeXXXXBXXE 

Instances

data TypeXXXBXXEX t Source

Constructors

TypeXXXBXXEX 

Instances

data TypeXXBXXEBXXE t Source

Constructors

TypeXXBXXEBXXE 

Instances

data TypeXXBXXEXX t Source

Constructors

TypeXXBXXEXX 

Instances

data TypeXBXXEBXXXE t Source

Constructors

TypeXBXXEBXXXE 

Instances

data TypeXBXXEXBXXE t Source

Constructors

TypeXBXXEXBXXE 

Instances

data TypeXBXXEBXXEX t Source

Constructors

TypeXBXXEBXXEX 

Instances

data TypeXBXXEXXX t Source

Constructors

TypeXBXXEXXX 

Instances

data TypeBXXEBXXXXE t Source

Constructors

TypeBXXEBXXXXE 

Instances

data TypeBXXEXBXXXE t Source

Constructors

TypeBXXEXBXXXE 

Instances

data TypeBXXEBXXXEX t Source

Constructors

TypeBXXEBXXXEX 

Instances

data TypeBXXEXXBXXE t Source

Constructors

TypeBXXEXXBXXE 

Instances

data TypeBXXEXBXXEX t Source

Constructors

TypeBXXEXBXXEX 

Instances

data TypeBXXEBXXEXX t Source

Constructors

TypeBXXEBXXEXX 

Instances

data TypeBXXEXXXX t Source

Constructors

TypeBXXEXXXX 

Instances

data TypeXXXXXX t Source

Constructors

TypeXXXXXX 

Instances

data TypeBBBXXXEXEXE t Source

Constructors

TypeBBBXXXEXEXE 

Instances

data TypeBBXBXXEXEXE t Source

Constructors

TypeBBXBXXEXEXE 

Instances

data TypeBBBXXEXXEXE t Source

Constructors

TypeBBBXXEXXEXE 

Instances

data TypeBBXXXXEXE t Source

Constructors

TypeBBXXXXEXE 

Instances

data TypeBXBBXXEXEXE t Source

Constructors

TypeBXBBXXEXEXE 

Instances

data TypeBXBXXXEXE t Source

Constructors

TypeBXBXXXEXE 

Instances

data TypeBBBXXEXEXXE t Source

Constructors

TypeBBBXXEXEXXE 

Instances

data TypeBBXXXEXXE t Source

Constructors

TypeBBXXXEXXE 

Instances

data TypeBXXBXXEXE t Source

Constructors

TypeBXXBXXEXE 

Instances

data TypeBXBXXEXXE t Source

Constructors

TypeBXBXXEXXE 

Instances

data TypeBBXXEBXXEXE t Source

Constructors

TypeBBXXEBXXEXE 

Instances

data TypeBBXXEXXXE t Source

Constructors

TypeBBXXEXXXE 

Instances

data TypeBXXXXXE t Source

Constructors

TypeBXXXXXE 

Instances

data TypeXBBBXXEXEXE t Source

Constructors

TypeXBBBXXEXEXE 

Instances

data TypeXBBXXXEXE t Source

Constructors

TypeXBBXXXEXE 

Instances

data TypeXBXBXXEXE t Source

Constructors

TypeXBXBXXEXE 

Instances

data TypeXBBXXEXXE t Source

Constructors

TypeXBBXXEXXE 

Instances

data TypeXBXXXXE t Source

Constructors

TypeXBXXXXE 

Instances

data TypeBBBXXEXEXEX t Source

Constructors

TypeBBBXXEXEXEX 

Instances

data TypeBBXXXEXEX t Source

Constructors

TypeBBXXXEXEX 

Instances

data TypeBXBXXEXEX t Source

Constructors

TypeBXBXXEXEX 

Instances

data TypeBBXXEXXEX t Source

Constructors

TypeBBXXEXXEX 

Instances

data TypeBXXXXEX t Source

Constructors

TypeBXXXXEX 

Instances

data TypeXXBBXXEXE t Source

Constructors

TypeXXBBXXEXE 

Instances

data TypeXXBXXXE t Source

Constructors

TypeXXBXXXE 

Instances

data TypeXBBXXEXEX t Source

Constructors

TypeXBBXXEXEX 

Instances

data TypeXBXXXEX t Source

Constructors

TypeXBXXXEX 

Instances

data TypeBBXXEXEBXXE t Source

Constructors

TypeBBXXEXEBXXE 

Instances

data TypeBBXXEXEXX t Source

Constructors

TypeBBXXEXEXX 

Instances

data TypeBXXXEBXXE t Source

Constructors

TypeBXXXEBXXE 

Instances

data TypeBXXXEXX t Source

Constructors

TypeBXXXEXX 

Instances

data TypeXXXBXXE t Source

Constructors

TypeXXXBXXE 

Instances

data TypeXXBXXEX t Source

Constructors

TypeXXBXXEX 

Instances

data TypeXBXXEBXXE t Source

Constructors

TypeXBXXEBXXE 

Instances

data TypeXBXXEXX t Source

Constructors

TypeXBXXEXX 

Instances

data TypeBXXEBBXXEXE t Source

Constructors

TypeBXXEBBXXEXE 

Instances

data TypeBXXEBXXXE t Source

Constructors

TypeBXXEBXXXE 

Instances

data TypeBXXEXBXXE t Source

Constructors

TypeBXXEXBXXE 

Instances

data TypeBXXEBXXEX t Source

Constructors

TypeBXXEBXXEX 

Instances

data TypeBXXEXXX t Source

Constructors

TypeBXXEXXX 

Instances

data TypeXXXXX t Source

Constructors

TypeXXXXX 

Instances

data TypeBBBXXEXEXE t Source

Constructors

TypeBBBXXEXEXE 

Instances

data TypeBBXXXEXE t Source

Constructors

TypeBBXXXEXE 

Instances

data TypeBXBXXEXE t Source

Constructors

TypeBXBXXEXE 

Instances

data TypeBBXXEXXE t Source

Constructors

TypeBBXXEXXE 

Instances

data TypeBXXXXE t Source

Constructors

TypeBXXXXE 

Instances

data TypeXBBXXEXE t Source

Constructors

TypeXBBXXEXE 

Instances

data TypeXBXXXE t Source

Constructors

TypeXBXXXE 

Instances

data TypeBBXXEXEX t Source

Constructors

TypeBBXXEXEX 

Instances

data TypeBXXXEX t Source

Constructors

TypeBXXXEX 

Instances

data TypeXXBXXE t Source

Constructors

TypeXXBXXE 

Instances

data TypeXBXXEX t Source

Constructors

TypeXBXXEX 

Instances

data TypeBXXEBXXE t Source

Constructors

TypeBXXEBXXE 

Instances

data TypeBXXEXX t Source

Constructors

TypeBXXEXX 

Instances

data TypeXXXX t Source

Constructors

TypeXXXX 

Instances

data TypeBBXXEXE t Source

Constructors

TypeBBXXEXE 

Instances

data TypeBXXXE t Source

Constructors

TypeBXXXE 

Instances

data TypeXBXXE t Source

Constructors

TypeXBXXE 

Instances

data TypeBXXEX t Source

Constructors

TypeBXXEX 

Instances

data TypeXXX t Source

Constructors

TypeXXX 

Instances

data TypeBXXE t Source

Constructors

TypeBXXE 

Instances

data TypeXX t Source

Constructors

TypeXX 

Instances

Show (TypeXX t) 

data TypeX t Source

Constructors

TypeX 

Instances

Show (TypeX t) 

data Type t Source

Constructors

Type 

Instances

Show (Type t) 

class MetaBXXXXXXE t whereSource

Instances

(MetaXBXXXXXXE f, Meta p) => MetaBXXXXXXE (f p) 

class MetaXBXXXXXE t whereSource

Instances

(MetaXXBXXXXXE f, Meta p) => MetaXBXXXXXE (f p) 

class MetaBXXXXXEX t whereSource

Instances

(MetaXBXXXXXEX f, Meta p) => MetaBXXXXXEX (f p) 

class MetaXXBXXXXE t whereSource

Instances

(MetaXXXBXXXXE f, Meta p) => MetaXXBXXXXE (f p) 

class MetaXBXXXXEX t whereSource

Instances

(MetaXXBXXXXEX f, Meta p) => MetaXBXXXXEX (f p) 

class MetaBXXXXEXX t whereSource

Instances

(MetaXBXXXXEXX f, Meta p) => MetaBXXXXEXX (f p) 

class MetaXXXBXXXE t whereSource

Instances

(MetaXXXXBXXXE f, Meta p) => MetaXXXBXXXE (f p) 

class MetaXXBXXXEX t whereSource

Instances

(MetaXXXBXXXEX f, Meta p) => MetaXXBXXXEX (f p) 

class MetaXBXXXEXX t whereSource

Instances

(MetaXXBXXXEXX f, Meta p) => MetaXBXXXEXX (f p) 

class MetaBXXXEXXX t whereSource

Instances

(MetaXBXXXEXXX f, Meta p) => MetaBXXXEXXX (f p) 

class MetaXXXXBXXE t whereSource

Instances

(MetaXXXXXBXXE f, Meta p) => MetaXXXXBXXE (f p) 

class MetaXXXBXXEX t whereSource

Instances

(MetaXXXXBXXEX f, Meta p) => MetaXXXBXXEX (f p) 

class MetaXXBXXEXX t whereSource

Instances

(MetaXXXBXXEXX f, Meta p) => MetaXXBXXEXX (f p) 

class MetaXBXXEXXX t whereSource

Instances

(MetaXXBXXEXXX f, Meta p) => MetaXBXXEXXX (f p) 

class MetaBXXEXXXX t whereSource

Instances

(MetaXBXXEXXXX f, Meta p) => MetaBXXEXXXX (f p) 

class MetaXXXXXX t whereSource

Instances

class MetaBXXXXXE t whereSource

Instances

(MetaBXXEBXXXXXE f, MetaX p) => MetaBXXXXXE (f p) 
(MetaXBXXXXXE f, Meta p) => MetaBXXXXXE (f p) 

class MetaXBXXXXE t whereSource

Instances

(MetaBXXEXBXXXXE f, MetaX p) => MetaXBXXXXE (f p) 
(MetaXXBXXXXE f, Meta p) => MetaXBXXXXE (f p) 

class MetaBXXXXEX t whereSource

Instances

(MetaBXXEBXXXXEX f, MetaX p) => MetaBXXXXEX (f p) 
(MetaXBXXXXEX f, Meta p) => MetaBXXXXEX (f p) 

class MetaXXBXXXE t whereSource

Instances

(MetaBXXEXXBXXXE f, MetaX p) => MetaXXBXXXE (f p) 
(MetaXXXBXXXE f, Meta p) => MetaXXBXXXE (f p) 

class MetaXBXXXEX t whereSource

Instances

(MetaBXXEXBXXXEX f, MetaX p) => MetaXBXXXEX (f p) 
(MetaXXBXXXEX f, Meta p) => MetaXBXXXEX (f p) 

class MetaBXXXEXX t whereSource

Instances

(MetaBXXEBXXXEXX f, MetaX p) => MetaBXXXEXX (f p) 
(MetaXBXXXEXX f, Meta p) => MetaBXXXEXX (f p) 

class MetaXXXBXXE t whereSource

Instances

(MetaBXXEXXXBXXE f, MetaX p) => MetaXXXBXXE (f p) 
(MetaXXXXBXXE f, Meta p) => MetaXXXBXXE (f p) 

class MetaXXBXXEX t whereSource

Instances

(MetaBXXEXXBXXEX f, MetaX p) => MetaXXBXXEX (f p) 
(MetaXXXBXXEX f, Meta p) => MetaXXBXXEX (f p) 

class MetaXBXXEXX t whereSource

Instances

(MetaBXXEXBXXEXX f, MetaX p) => MetaXBXXEXX (f p) 
(MetaXXBXXEXX f, Meta p) => MetaXBXXEXX (f p) 

class MetaBXXEXXX t whereSource

Instances

(MetaBXXEBXXEXXX f, MetaX p) => MetaBXXEXXX (f p) 
(MetaXBXXEXXX f, Meta p) => MetaBXXEXXX (f p) 

class MetaXXXXX t whereSource

Instances

class MetaBXXXXE t whereSource

Instances

(MetaBBXXEXEBXXXXE f, MetaBXXE p) => MetaBXXXXE (f p) 
(MetaBXXXEBXXXXE f, MetaXX p) => MetaBXXXXE (f p) 
(MetaBXXEBXXXXE f, MetaX p) => MetaBXXXXE (f p) 
(MetaXBXXXXE f, Meta p) => MetaBXXXXE (f p) 

class MetaXBXXXE t whereSource

Instances

(MetaBBXXEXEXBXXXE f, MetaBXXE p) => MetaXBXXXE (f p) 
(MetaBXXXEXBXXXE f, MetaXX p) => MetaXBXXXE (f p) 
(MetaBXXEXBXXXE f, MetaX p) => MetaXBXXXE (f p) 
(MetaXXBXXXE f, Meta p) => MetaXBXXXE (f p) 

class MetaBXXXEX t whereSource

Instances

(MetaBBXXEXEBXXXEX f, MetaBXXE p) => MetaBXXXEX (f p) 
(MetaBXXXEBXXXEX f, MetaXX p) => MetaBXXXEX (f p) 
(MetaBXXEBXXXEX f, MetaX p) => MetaBXXXEX (f p) 
(MetaXBXXXEX f, Meta p) => MetaBXXXEX (f p) 

class MetaXXBXXE t whereSource

Instances

(MetaBBXXEXEXXBXXE f, MetaBXXE p) => MetaXXBXXE (f p) 
(MetaBXXXEXXBXXE f, MetaXX p) => MetaXXBXXE (f p) 
(MetaBXXEXXBXXE f, MetaX p) => MetaXXBXXE (f p) 
(MetaXXXBXXE f, Meta p) => MetaXXBXXE (f p) 

class MetaXBXXEX t whereSource

Instances

(MetaBBXXEXEXBXXEX f, MetaBXXE p) => MetaXBXXEX (f p) 
(MetaBXXXEXBXXEX f, MetaXX p) => MetaXBXXEX (f p) 
(MetaBXXEXBXXEX f, MetaX p) => MetaXBXXEX (f p) 
(MetaXXBXXEX f, Meta p) => MetaXBXXEX (f p) 

class MetaBXXEXX t whereSource

Instances

(MetaBBXXEXEBXXEXX f, MetaBXXE p) => MetaBXXEXX (f p) 
(MetaBXXXEBXXEXX f, MetaXX p) => MetaBXXEXX (f p) 
(MetaBXXEBXXEXX f, MetaX p) => MetaBXXEXX (f p) 
(MetaXBXXEXX f, Meta p) => MetaBXXEXX (f p) 

class MetaXXXX t whereSource

Instances

MetaXXXX (,,,) 
(MetaBBXXEXEXXXX f, MetaBXXE p) => MetaXXXX (f p) 
(MetaBXXXEXXXX f, MetaXX p) => MetaXXXX (f p) 
(MetaBXXEXXXX f, MetaX p) => MetaXXXX (f p) 
(MetaXXXXX f, Meta p) => MetaXXXX (f p) 

class MetaXXX t whereSource

Instances

MetaXXX (,,) 
(MetaBBBXXEXEXEXXX f, MetaBBXXEXE p) => MetaXXX (f p) 
(MetaBBXXXEXEXXX f, MetaBXXXE p) => MetaXXX (f p) 
(MetaBXBXXEXEXXX f, MetaXBXXE p) => MetaXXX (f p) 
(MetaBBXXEXXEXXX f, MetaBXXEX p) => MetaXXX (f p) 
(MetaBXXXXEXXX f, MetaXXX p) => MetaXXX (f p) 
(MetaBBXXEXEXXX f, MetaBXXE p) => MetaXXX (f p) 
(MetaBXXXEXXX f, MetaXX p) => MetaXXX (f p) 
(MetaBXXEXXX f, MetaX p) => MetaXXX (f p) 
(MetaXXXX f, Meta p) => MetaXXX (f p) 

class MetaXX t whereSource

class MetaX t whereSource

Methods

typeIDX :: TypeX t -> TypeIDSource

Instances

MetaX [] 
MetaX Ratio 
MetaX IO 
MetaX Complex 
MetaX IORef 
MetaX MVar 
MetaX Maybe 
MetaX Tree 
MetaX IntMap 
MetaX Set 
(MetaBBBBBXXEXEXEXEXEX f, MetaBBBBXXEXEXEXE p) => MetaX (f p) 
(MetaBBBBXXXEXEXEXEX f, MetaBBBXXXEXEXE p) => MetaX (f p) 
(MetaBBBXBXXEXEXEXEX f, MetaBBXBXXEXEXE p) => MetaX (f p) 
(MetaBBBBXXEXXEXEXEX f, MetaBBBXXEXXEXE p) => MetaX (f p) 
(MetaBBBXXXXEXEXEX f, MetaBBXXXXEXE p) => MetaX (f p) 
(MetaBBXBBXXEXEXEXEX f, MetaBXBBXXEXEXE p) => MetaX (f p) 
(MetaBBXBXXXEXEXEX f, MetaBXBXXXEXE p) => MetaX (f p) 
(MetaBBBBXXEXEXXEXEX f, MetaBBBXXEXEXXE p) => MetaX (f p) 
(MetaBBBXXXEXXEXEX f, MetaBBXXXEXXE p) => MetaX (f p) 
(MetaBBXXBXXEXEXEX f, MetaBXXBXXEXE p) => MetaX (f p) 
(MetaBBXBXXEXXEXEX f, MetaBXBXXEXXE p) => MetaX (f p) 
(MetaBBBXXEBXXEXEXEX f, MetaBBXXEBXXEXE p) => MetaX (f p) 
(MetaBBBXXEXXXEXEX f, MetaBBXXEXXXE p) => MetaX (f p) 
(MetaBBXXXXXEXEX f, MetaBXXXXXE p) => MetaX (f p) 
(MetaBXBBBXXEXEXEXEX f, MetaXBBBXXEXEXE p) => MetaX (f p) 
(MetaBXBBXXXEXEXEX f, MetaXBBXXXEXE p) => MetaX (f p) 
(MetaBXBXBXXEXEXEX f, MetaXBXBXXEXE p) => MetaX (f p) 
(MetaBXBBXXEXXEXEX f, MetaXBBXXEXXE p) => MetaX (f p) 
(MetaBXBXXXXEXEX f, MetaXBXXXXE p) => MetaX (f p) 
(MetaBBBBXXEXEXEXXEX f, MetaBBBXXEXEXEX p) => MetaX (f p) 
(MetaBBBXXXEXEXXEX f, MetaBBXXXEXEX p) => MetaX (f p) 
(MetaBBXBXXEXEXXEX f, MetaBXBXXEXEX p) => MetaX (f p) 
(MetaBBBXXEXXEXXEX f, MetaBBXXEXXEX p) => MetaX (f p) 
(MetaBBXXXXEXXEX f, MetaBXXXXEX p) => MetaX (f p) 
(MetaBXXBBXXEXEXEX f, MetaXXBBXXEXE p) => MetaX (f p) 
(MetaBXXBXXXEXEX f, MetaXXBXXXE p) => MetaX (f p) 
(MetaBXBBXXEXEXXEX f, MetaXBBXXEXEX p) => MetaX (f p) 
(MetaBXBXXXEXXEX f, MetaXBXXXEX p) => MetaX (f p) 
(MetaBBBXXEXEBXXEXEX f, MetaBBXXEXEBXXE p) => MetaX (f p) 
(MetaBBBXXEXEXXXEX f, MetaBBXXEXEXX p) => MetaX (f p) 
(MetaBBXXXEBXXEXEX f, MetaBXXXEBXXE p) => MetaX (f p) 
(MetaBBXXXEXXXEX f, MetaBXXXEXX p) => MetaX (f p) 
(MetaBXXXBXXEXEX f, MetaXXXBXXE p) => MetaX (f p) 
(MetaBXXBXXEXXEX f, MetaXXBXXEX p) => MetaX (f p) 
(MetaBXBXXEBXXEXEX f, MetaXBXXEBXXE p) => MetaX (f p) 
(MetaBXBXXEXXXEX f, MetaXBXXEXX p) => MetaX (f p) 
(MetaBBXXEBBXXEXEXEX f, MetaBXXEBBXXEXE p) => MetaX (f p) 
(MetaBBXXEBXXXEXEX f, MetaBXXEBXXXE p) => MetaX (f p) 
(MetaBBXXEXBXXEXEX f, MetaBXXEXBXXE p) => MetaX (f p) 
(MetaBBXXEBXXEXXEX f, MetaBXXEBXXEX p) => MetaX (f p) 
(MetaBBXXEXXXXEX f, MetaBXXEXXX p) => MetaX (f p) 
(MetaBXXXXXXEX f, MetaXXXXX p) => MetaX (f p) 
(MetaBBBBXXEXEXEXEX f, MetaBBBXXEXEXE p) => MetaX (f p) 
(MetaBBBXXXEXEXEX f, MetaBBXXXEXE p) => MetaX (f p) 
(MetaBBXBXXEXEXEX f, MetaBXBXXEXE p) => MetaX (f p) 
(MetaBBBXXEXXEXEX f, MetaBBXXEXXE p) => MetaX (f p) 
(MetaBBXXXXEXEX f, MetaBXXXXE p) => MetaX (f p) 
(MetaBXBBXXEXEXEX f, MetaXBBXXEXE p) => MetaX (f p) 
(MetaBXBXXXEXEX f, MetaXBXXXE p) => MetaX (f p) 
(MetaBBBXXEXEXXEX f, MetaBBXXEXEX p) => MetaX (f p) 
(MetaBBXXXEXXEX f, MetaBXXXEX p) => MetaX (f p) 
(MetaBXXBXXEXEX f, MetaXXBXXE p) => MetaX (f p) 
(MetaBXBXXEXXEX f, MetaXBXXEX p) => MetaX (f p) 
(MetaBBXXEBXXEXEX f, MetaBXXEBXXE p) => MetaX (f p) 
(MetaBBXXEXXXEX f, MetaBXXEXX p) => MetaX (f p) 
(MetaBXXXXXEX f, MetaXXXX p) => MetaX (f p) 
(MetaBBBXXEXEXEX f, MetaBBXXEXE p) => MetaX (f p) 
(MetaBBXXXEXEX f, MetaBXXXE p) => MetaX (f p) 
(MetaBXBXXEXEX f, MetaXBXXE p) => MetaX (f p) 
(MetaBBXXEXXEX f, MetaBXXEX p) => MetaX (f p) 
(MetaBXXXXEX f, MetaXXX p) => MetaX (f p) 
(MetaBBXXEXEX f, MetaBXXE p) => MetaX (f p) 
(MetaBXXXEX f, MetaXX p) => MetaX (f p) 
(MetaBXXEX f, MetaX p) => MetaX (f p) 
(MetaXX f, Meta p) => MetaX (f p) 

class Meta t whereSource

Methods

typeID :: Type t -> TypeIDSource

Instances

Meta Bool 
Meta Char 
Meta Double 
Meta Float 
Meta Int 
Meta Int8 
Meta Int16 
Meta Int32 
Meta Int64 
Meta Integer 
Meta Word 
Meta Word8 
Meta Word16 
Meta Word32 
Meta Word64 
Meta () 
Meta IntSet 
(MetaBBBBBBXXEXEXEXEXEXE f, MetaBBBBBXXEXEXEXEXE p) => Meta (f p) 
(MetaBBBBBXXXEXEXEXEXE f, MetaBBBBXXXEXEXEXE p) => Meta (f p) 
(MetaBBBBXBXXEXEXEXEXE f, MetaBBBXBXXEXEXEXE p) => Meta (f p) 
(MetaBBBBBXXEXXEXEXEXE f, MetaBBBBXXEXXEXEXE p) => Meta (f p) 
(MetaBBBBXXXXEXEXEXE f, MetaBBBXXXXEXEXE p) => Meta (f p) 
(MetaBBBXBBXXEXEXEXEXE f, MetaBBXBBXXEXEXEXE p) => Meta (f p) 
(MetaBBBXBXXXEXEXEXE f, MetaBBXBXXXEXEXE p) => Meta (f p) 
(MetaBBBBBXXEXEXXEXEXE f, MetaBBBBXXEXEXXEXE p) => Meta (f p) 
(MetaBBBBXXXEXXEXEXE f, MetaBBBXXXEXXEXE p) => Meta (f p) 
(MetaBBBXXBXXEXEXEXE f, MetaBBXXBXXEXEXE p) => Meta (f p) 
(MetaBBBXBXXEXXEXEXE f, MetaBBXBXXEXXEXE p) => Meta (f p) 
(MetaBBBBXXEBXXEXEXEXE f, MetaBBBXXEBXXEXEXE p) => Meta (f p) 
(MetaBBBBXXEXXXEXEXE f, MetaBBBXXEXXXEXE p) => Meta (f p) 
(MetaBBBXXXXXEXEXE f, MetaBBXXXXXEXE p) => Meta (f p) 
(MetaBBXBBBXXEXEXEXEXE f, MetaBXBBBXXEXEXEXE p) => Meta (f p) 
(MetaBBXBBXXXEXEXEXE f, MetaBXBBXXXEXEXE p) => Meta (f p) 
(MetaBBXBXBXXEXEXEXE f, MetaBXBXBXXEXEXE p) => Meta (f p) 
(MetaBBXBBXXEXXEXEXE f, MetaBXBBXXEXXEXE p) => Meta (f p) 
(MetaBBXBXXXXEXEXE f, MetaBXBXXXXEXE p) => Meta (f p) 
(MetaBBBBBXXEXEXEXXEXE f, MetaBBBBXXEXEXEXXE p) => Meta (f p) 
(MetaBBBBXXXEXEXXEXE f, MetaBBBXXXEXEXXE p) => Meta (f p) 
(MetaBBBXBXXEXEXXEXE f, MetaBBXBXXEXEXXE p) => Meta (f p) 
(MetaBBBBXXEXXEXXEXE f, MetaBBBXXEXXEXXE p) => Meta (f p) 
(MetaBBBXXXXEXXEXE f, MetaBBXXXXEXXE p) => Meta (f p) 
(MetaBBXXBBXXEXEXEXE f, MetaBXXBBXXEXEXE p) => Meta (f p) 
(MetaBBXXBXXXEXEXE f, MetaBXXBXXXEXE p) => Meta (f p) 
(MetaBBXBBXXEXEXXEXE f, MetaBXBBXXEXEXXE p) => Meta (f p) 
(MetaBBXBXXXEXXEXE f, MetaBXBXXXEXXE p) => Meta (f p) 
(MetaBBBBXXEXEBXXEXEXE f, MetaBBBXXEXEBXXEXE p) => Meta (f p) 
(MetaBBBBXXEXEXXXEXE f, MetaBBBXXEXEXXXE p) => Meta (f p) 
(MetaBBBXXXEBXXEXEXE f, MetaBBXXXEBXXEXE p) => Meta (f p) 
(MetaBBBXXXEXXXEXE f, MetaBBXXXEXXXE p) => Meta (f p) 
(MetaBBXXXBXXEXEXE f, MetaBXXXBXXEXE p) => Meta (f p) 
(MetaBBXXBXXEXXEXE f, MetaBXXBXXEXXE p) => Meta (f p) 
(MetaBBXBXXEBXXEXEXE f, MetaBXBXXEBXXEXE p) => Meta (f p) 
(MetaBBXBXXEXXXEXE f, MetaBXBXXEXXXE p) => Meta (f p) 
(MetaBBBXXEBBXXEXEXEXE f, MetaBBXXEBBXXEXEXE p) => Meta (f p) 
(MetaBBBXXEBXXXEXEXE f, MetaBBXXEBXXXEXE p) => Meta (f p) 
(MetaBBBXXEXBXXEXEXE f, MetaBBXXEXBXXEXE p) => Meta (f p) 
(MetaBBBXXEBXXEXXEXE f, MetaBBXXEBXXEXXE p) => Meta (f p) 
(MetaBBBXXEXXXXEXE f, MetaBBXXEXXXXE p) => Meta (f p) 
(MetaBBXXXXXXEXE f, MetaBXXXXXXE p) => Meta (f p) 
(MetaBXBBBBXXEXEXEXEXE f, MetaXBBBBXXEXEXEXE p) => Meta (f p) 
(MetaBXBBBXXXEXEXEXE f, MetaXBBBXXXEXEXE p) => Meta (f p) 
(MetaBXBBXBXXEXEXEXE f, MetaXBBXBXXEXEXE p) => Meta (f p) 
(MetaBXBBBXXEXXEXEXE f, MetaXBBBXXEXXEXE p) => Meta (f p) 
(MetaBXBBXXXXEXEXE f, MetaXBBXXXXEXE p) => Meta (f p) 
(MetaBXBXBBXXEXEXEXE f, MetaXBXBBXXEXEXE p) => Meta (f p) 
(MetaBXBXBXXXEXEXE f, MetaXBXBXXXEXE p) => Meta (f p) 
(MetaBXBBBXXEXEXXEXE f, MetaXBBBXXEXEXXE p) => Meta (f p) 
(MetaBXBBXXXEXXEXE f, MetaXBBXXXEXXE p) => Meta (f p) 
(MetaBXBXXBXXEXEXE f, MetaXBXXBXXEXE p) => Meta (f p) 
(MetaBXBXBXXEXXEXE f, MetaXBXBXXEXXE p) => Meta (f p) 
(MetaBXBBXXEBXXEXEXE f, MetaXBBXXEBXXEXE p) => Meta (f p) 
(MetaBXBBXXEXXXEXE f, MetaXBBXXEXXXE p) => Meta (f p) 
(MetaBXBXXXXXEXE f, MetaXBXXXXXE p) => Meta (f p) 
(MetaBBBBBXXEXEXEXEXXE f, MetaBBBBXXEXEXEXEX p) => Meta (f p) 
(MetaBBBBXXXEXEXEXXE f, MetaBBBXXXEXEXEX p) => Meta (f p) 
(MetaBBBXBXXEXEXEXXE f, MetaBBXBXXEXEXEX p) => Meta (f p) 
(MetaBBBBXXEXXEXEXXE f, MetaBBBXXEXXEXEX p) => Meta (f p) 
(MetaBBBXXXXEXEXXE f, MetaBBXXXXEXEX p) => Meta (f p) 
(MetaBBXBBXXEXEXEXXE f, MetaBXBBXXEXEXEX p) => Meta (f p) 
(MetaBBXBXXXEXEXXE f, MetaBXBXXXEXEX p) => Meta (f p) 
(MetaBBBBXXEXEXXEXXE f, MetaBBBXXEXEXXEX p) => Meta (f p) 
(MetaBBBXXXEXXEXXE f, MetaBBXXXEXXEX p) => Meta (f p) 
(MetaBBXXBXXEXEXXE f, MetaBXXBXXEXEX p) => Meta (f p) 
(MetaBBXBXXEXXEXXE f, MetaBXBXXEXXEX p) => Meta (f p) 
(MetaBBBXXEBXXEXEXXE f, MetaBBXXEBXXEXEX p) => Meta (f p) 
(MetaBBBXXEXXXEXXE f, MetaBBXXEXXXEX p) => Meta (f p) 
(MetaBBXXXXXEXXE f, MetaBXXXXXEX p) => Meta (f p) 
(MetaBXXBBBXXEXEXEXE f, MetaXXBBBXXEXEXE p) => Meta (f p) 
(MetaBXXBBXXXEXEXE f, MetaXXBBXXXEXE p) => Meta (f p) 
(MetaBXXBXBXXEXEXE f, MetaXXBXBXXEXE p) => Meta (f p) 
(MetaBXXBBXXEXXEXE f, MetaXXBBXXEXXE p) => Meta (f p) 
(MetaBXXBXXXXEXE f, MetaXXBXXXXE p) => Meta (f p) 
(MetaBXBBBXXEXEXEXXE f, MetaXBBBXXEXEXEX p) => Meta (f p) 
(MetaBXBBXXXEXEXXE f, MetaXBBXXXEXEX p) => Meta (f p) 
(MetaBXBXBXXEXEXXE f, MetaXBXBXXEXEX p) => Meta (f p) 
(MetaBXBBXXEXXEXXE f, MetaXBBXXEXXEX p) => Meta (f p) 
(MetaBXBXXXXEXXE f, MetaXBXXXXEX p) => Meta (f p) 
(MetaBBBBXXEXEXEBXXEXE f, MetaBBBXXEXEXEBXXE p) => Meta (f p) 
(MetaBBBBXXEXEXEXXXE f, MetaBBBXXEXEXEXX p) => Meta (f p) 
(MetaBBBXXXEXEBXXEXE f, MetaBBXXXEXEBXXE p) => Meta (f p) 
(MetaBBBXXXEXEXXXE f, MetaBBXXXEXEXX p) => Meta (f p) 
(MetaBBXBXXEXEBXXEXE f, MetaBXBXXEXEBXXE p) => Meta (f p) 
(MetaBBXBXXEXEXXXE f, MetaBXBXXEXEXX p) => Meta (f p) 
(MetaBBBXXEXXEBXXEXE f, MetaBBXXEXXEBXXE p) => Meta (f p) 
(MetaBBBXXEXXEXXXE f, MetaBBXXEXXEXX p) => Meta (f p) 
(MetaBBXXXXEBXXEXE f, MetaBXXXXEBXXE p) => Meta (f p) 
(MetaBBXXXXEXXXE f, MetaBXXXXEXX p) => Meta (f p) 
(MetaBXXXBBXXEXEXE f, MetaXXXBBXXEXE p) => Meta (f p) 
(MetaBXXXBXXXEXE f, MetaXXXBXXXE p) => Meta (f p) 
(MetaBXXBBXXEXEXXE f, MetaXXBBXXEXEX p) => Meta (f p) 
(MetaBXXBXXXEXXE f, MetaXXBXXXEX p) => Meta (f p) 
(MetaBXBBXXEXEBXXEXE f, MetaXBBXXEXEBXXE p) => Meta (f p) 
(MetaBXBBXXEXEXXXE f, MetaXBBXXEXEXX p) => Meta (f p) 
(MetaBXBXXXEBXXEXE f, MetaXBXXXEBXXE p) => Meta (f p) 
(MetaBXBXXXEXXXE f, MetaXBXXXEXX p) => Meta (f p) 
(MetaBBBXXEXEBBXXEXEXE f, MetaBBXXEXEBBXXEXE p) => Meta (f p) 
(MetaBBBXXEXEBXXXEXE f, MetaBBXXEXEBXXXE p) => Meta (f p) 
(MetaBBBXXEXEXBXXEXE f, MetaBBXXEXEXBXXE p) => Meta (f p) 
(MetaBBBXXEXEBXXEXXE f, MetaBBXXEXEBXXEX p) => Meta (f p) 
(MetaBBBXXEXEXXXXE f, MetaBBXXEXEXXX p) => Meta (f p) 
(MetaBBXXXEBBXXEXEXE f, MetaBXXXEBBXXEXE p) => Meta (f p) 
(MetaBBXXXEBXXXEXE f, MetaBXXXEBXXXE p) => Meta (f p) 
(MetaBBXXXEXBXXEXE f, MetaBXXXEXBXXE p) => Meta (f p) 
(MetaBBXXXEBXXEXXE f, MetaBXXXEBXXEX p) => Meta (f p) 
(MetaBBXXXEXXXXE f, MetaBXXXEXXX p) => Meta (f p) 
(MetaBXXXXBXXEXE f, MetaXXXXBXXE p) => Meta (f p) 
(MetaBXXXBXXEXXE f, MetaXXXBXXEX p) => Meta (f p) 
(MetaBXXBXXEBXXEXE f, MetaXXBXXEBXXE p) => Meta (f p) 
(MetaBXXBXXEXXXE f, MetaXXBXXEXX p) => Meta (f p) 
(MetaBXBXXEBBXXEXEXE f, MetaXBXXEBBXXEXE p) => Meta (f p) 
(MetaBXBXXEBXXXEXE f, MetaXBXXEBXXXE p) => Meta (f p) 
(MetaBXBXXEXBXXEXE f, MetaXBXXEXBXXE p) => Meta (f p) 
(MetaBXBXXEBXXEXXE f, MetaXBXXEBXXEX p) => Meta (f p) 
(MetaBXBXXEXXXXE f, MetaXBXXEXXX p) => Meta (f p) 
(MetaBBXXEBBBXXEXEXEXE f, MetaBXXEBBBXXEXEXE p) => Meta (f p) 
(MetaBBXXEBBXXXEXEXE f, MetaBXXEBBXXXEXE p) => Meta (f p) 
(MetaBBXXEBXBXXEXEXE f, MetaBXXEBXBXXEXE p) => Meta (f p) 
(MetaBBXXEBBXXEXXEXE f, MetaBXXEBBXXEXXE p) => Meta (f p) 
(MetaBBXXEBXXXXEXE f, MetaBXXEBXXXXE p) => Meta (f p) 
(MetaBBXXEXBBXXEXEXE f, MetaBXXEXBBXXEXE p) => Meta (f p) 
(MetaBBXXEXBXXXEXE f, MetaBXXEXBXXXE p) => Meta (f p) 
(MetaBBXXEBBXXEXEXXE f, MetaBXXEBBXXEXEX p) => Meta (f p) 
(MetaBBXXEBXXXEXXE f, MetaBXXEBXXXEX p) => Meta (f p) 
(MetaBBXXEXXBXXEXE f, MetaBXXEXXBXXE p) => Meta (f p) 
(MetaBBXXEXBXXEXXE f, MetaBXXEXBXXEX p) => Meta (f p) 
(MetaBBXXEBXXEBXXEXE f, MetaBXXEBXXEBXXE p) => Meta (f p) 
(MetaBBXXEBXXEXXXE f, MetaBXXEBXXEXX p) => Meta (f p) 
(MetaBBXXEXXXXXE f, MetaBXXEXXXX p) => Meta (f p) 
(MetaBXXXXXXXE f, MetaXXXXXX p) => Meta (f p) 
(MetaBBBBBXXEXEXEXEXE f, MetaBBBBXXEXEXEXE p) => Meta (f p) 
(MetaBBBBXXXEXEXEXE f, MetaBBBXXXEXEXE p) => Meta (f p) 
(MetaBBBXBXXEXEXEXE f, MetaBBXBXXEXEXE p) => Meta (f p) 
(MetaBBBBXXEXXEXEXE f, MetaBBBXXEXXEXE p) => Meta (f p) 
(MetaBBBXXXXEXEXE f, MetaBBXXXXEXE p) => Meta (f p) 
(MetaBBXBBXXEXEXEXE f, MetaBXBBXXEXEXE p) => Meta (f p) 
(MetaBBXBXXXEXEXE f, MetaBXBXXXEXE p) => Meta (f p) 
(MetaBBBBXXEXEXXEXE f, MetaBBBXXEXEXXE p) => Meta (f p) 
(MetaBBBXXXEXXEXE f, MetaBBXXXEXXE p) => Meta (f p) 
(MetaBBXXBXXEXEXE f, MetaBXXBXXEXE p) => Meta (f p) 
(MetaBBXBXXEXXEXE f, MetaBXBXXEXXE p) => Meta (f p) 
(MetaBBBXXEBXXEXEXE f, MetaBBXXEBXXEXE p) => Meta (f p) 
(MetaBBBXXEXXXEXE f, MetaBBXXEXXXE p) => Meta (f p) 
(MetaBBXXXXXEXE f, MetaBXXXXXE p) => Meta (f p) 
(MetaBXBBBXXEXEXEXE f, MetaXBBBXXEXEXE p) => Meta (f p) 
(MetaBXBBXXXEXEXE f, MetaXBBXXXEXE p) => Meta (f p) 
(MetaBXBXBXXEXEXE f, MetaXBXBXXEXE p) => Meta (f p) 
(MetaBXBBXXEXXEXE f, MetaXBBXXEXXE p) => Meta (f p) 
(MetaBXBXXXXEXE f, MetaXBXXXXE p) => Meta (f p) 
(MetaBBBBXXEXEXEXXE f, MetaBBBXXEXEXEX p) => Meta (f p) 
(MetaBBBXXXEXEXXE f, MetaBBXXXEXEX p) => Meta (f p) 
(MetaBBXBXXEXEXXE f, MetaBXBXXEXEX p) => Meta (f p) 
(MetaBBBXXEXXEXXE f, MetaBBXXEXXEX p) => Meta (f p) 
(MetaBBXXXXEXXE f, MetaBXXXXEX p) => Meta (f p) 
(MetaBXXBBXXEXEXE f, MetaXXBBXXEXE p) => Meta (f p) 
(MetaBXXBXXXEXE f, MetaXXBXXXE p) => Meta (f p) 
(MetaBXBBXXEXEXXE f, MetaXBBXXEXEX p) => Meta (f p) 
(MetaBXBXXXEXXE f, MetaXBXXXEX p) => Meta (f p) 
(MetaBBBXXEXEBXXEXE f, MetaBBXXEXEBXXE p) => Meta (f p) 
(MetaBBBXXEXEXXXE f, MetaBBXXEXEXX p) => Meta (f p) 
(MetaBBXXXEBXXEXE f, MetaBXXXEBXXE p) => Meta (f p) 
(MetaBBXXXEXXXE f, MetaBXXXEXX p) => Meta (f p) 
(MetaBXXXBXXEXE f, MetaXXXBXXE p) => Meta (f p) 
(MetaBXXBXXEXXE f, MetaXXBXXEX p) => Meta (f p) 
(MetaBXBXXEBXXEXE f, MetaXBXXEBXXE p) => Meta (f p) 
(MetaBXBXXEXXXE f, MetaXBXXEXX p) => Meta (f p) 
(MetaBBXXEBBXXEXEXE f, MetaBXXEBBXXEXE p) => Meta (f p) 
(MetaBBXXEBXXXEXE f, MetaBXXEBXXXE p) => Meta (f p) 
(MetaBBXXEXBXXEXE f, MetaBXXEXBXXE p) => Meta (f p) 
(MetaBBXXEBXXEXXE f, MetaBXXEBXXEX p) => Meta (f p) 
(MetaBBXXEXXXXE f, MetaBXXEXXX p) => Meta (f p) 
(MetaBXXXXXXE f, MetaXXXXX p) => Meta (f p) 
(MetaBBBBXXEXEXEXE f, MetaBBBXXEXEXE p) => Meta (f p) 
(MetaBBBXXXEXEXE f, MetaBBXXXEXE p) => Meta (f p) 
(MetaBBXBXXEXEXE f, MetaBXBXXEXE p) => Meta (f p) 
(MetaBBBXXEXXEXE f, MetaBBXXEXXE p) => Meta (f p) 
(MetaBBXXXXEXE f, MetaBXXXXE p) => Meta (f p) 
(MetaBXBBXXEXEXE f, MetaXBBXXEXE p) => Meta (f p) 
(MetaBXBXXXEXE f, MetaXBXXXE p) => Meta (f p) 
(MetaBBBXXEXEXXE f, MetaBBXXEXEX p) => Meta (f p) 
(MetaBBXXXEXXE f, MetaBXXXEX p) => Meta (f p) 
(MetaBXXBXXEXE f, MetaXXBXXE p) => Meta (f p) 
(MetaBXBXXEXXE f, MetaXBXXEX p) => Meta (f p) 
(MetaBBXXEBXXEXE f, MetaBXXEBXXE p) => Meta (f p) 
(MetaBBXXEXXXE f, MetaBXXEXX p) => Meta (f p) 
(MetaBXXXXXE f, MetaXXXX p) => Meta (f p) 
(MetaBBBXXEXEXE f, MetaBBXXEXE p) => Meta (f p) 
(MetaBBXXXEXE f, MetaBXXXE p) => Meta (f p) 
(MetaBXBXXEXE f, MetaXBXXE p) => Meta (f p) 
(MetaBBXXEXXE f, MetaBXXEX p) => Meta (f p) 
(MetaBXXXXE f, MetaXXX p) => Meta (f p) 
(MetaBBXXEXE f, MetaBXXE p) => Meta (f p) 
(MetaBXXXE f, MetaXX p) => Meta (f p) 
(MetaBXXE f, MetaX p) => Meta (f p) 
(MetaX f, Meta p) => Meta (f p)