ajhc-0.8.0.5: Haskell compiler that produce binary through C language

Safe HaskellNone

FrontEnd.Tc.Type

Synopsis

Documentation

data MetaVar Source

metavars are used in type checking

Constructors

MetaVar 

data Pred Source

Constructors

IsIn Class Type 
IsEq Type Type 

type Preds = [Pred]Source

data Qual t Source

Constructors

[Pred] :=> t 

Instances

Eq t => Eq (Qual t) 
Ord t => Ord (Qual t) 
Show t => Show (Qual t) 
Binary t => Binary (Qual t) 
UnVar t => UnVar (Qual t) 

data Tycon Source

Constructors

Tycon 

Fields

tyconName :: Name
 
tyconKind :: Kind
 

data Type Source

Constructors

TVar 

Fields

typeVar :: !Tyvar
 
TCon 

Fields

typeCon :: !Tycon
 
TAp Type Type 
TArrow Type Type 
TForAll 

Fields

typeArgs :: [Tyvar]
 
typeBody :: Qual Type
 
TExists 

Fields

typeArgs :: [Tyvar]
 
typeBody :: Qual Type
 
TMetaVar 

Fields

metaVar :: MetaVar
 
TAssoc 

data Tyvar Source

Constructors

Tyvar 

Fields

tyvarName :: !Name
 
tyvarKind :: Kind
 

type Preds = [Pred]Source

newtype UnVarOpt Source

Constructors

UnVarOpt 

flattenType :: (MonadIO m, UnVar t) => t -> m tSource

class UnVar t whereSource

Methods

unVar' :: t -> IO tSource

Instances

UnVar Pred 
UnVar Type 
UnVar Type => UnVar CoerceTerm 
UnVar t => UnVar [t] 
UnVar t => UnVar (Qual t) 
(UnVar a, UnVar b) => UnVar (a, b) 

data Rule Source

Constructors

RuleSpec 
RuleUser 

Fields

ruleUniq :: (Module, Int)
 
ruleFreeTVars :: [(Name, Kind)]
 

ptrans :: Bool -> (a -> a) -> a -> aSource

Apply the function if the Bool is True.

tAp :: Type -> Type -> TypeSource

Type application, enforcing the invariant that there be no fully-applied tArrows

tArrow :: TypeSource

The (->) type constructor. Invariant: tArrow shall not be fully applied. To this end, see tAp.