ExternalCore

ghc-7.8.2: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell98

ExternalCore

# Documentation

data Module Source

Constructors

Module Mname [Tdef] [Vdefg] |

Instances

Show Module |

data Tdef Source

Constructors

Data (Qual Tcon) [Tbind] [Cdef] |
Newtype (Qual Tcon) (Qual Tcon) [Tbind] Ty |

Instances

Show Tdef |

data Cdef Source

Constructors

Constr (Qual Dcon) [Tbind] [Ty] |
GadtConstr (Qual Dcon) Ty |

Instances

Show Cdef |

data Vdefg Source

Constructors

Rec [Vdef] |
Nonrec Vdef |

Instances

Show Vdefg |

type Vdef = (Bool, Qual Var, Ty, Exp) Source

data Exp Source

Constructors

Var (Qual Var) |
Dcon (Qual Dcon) |
Lit Lit |
App Exp Exp |
Appt Exp Ty |
Lam Bind Exp |
Let Vdefg Exp |
Case Exp Vbind Ty [Alt] |
Cast Exp Coercion |
Tick String Exp |
External String String Ty |
DynExternal String Ty |
Label String |

Instances

Show Exp |

data Bind Source

Constructors

Vb Vbind |
Tb Tbind |

data Alt Source

Constructors

Acon (Qual Dcon) [Tbind] [Vbind] Exp |
Alit Lit Exp |
Adefault Exp |

Instances

Show Alt |

type Vbind = (Var, Ty) Source

type Tbind = (Tvar, Kind) Source

data Ty Source

Constructors

Tvar Tvar |
Tcon (Qual Tcon) |
Tapp Ty Ty |
Tforall Tbind Ty |

Instances

Show Ty |

data Coercion Source

Constructors

ReflCoercion Role Ty |
SymCoercion Coercion |
TransCoercion Coercion Coercion |
TyConAppCoercion Role (Qual Tcon) [Coercion] |
AppCoercion Coercion Coercion |
ForAllCoercion Tbind Coercion |
CoVarCoercion Var |
UnivCoercion Role Ty Ty |
InstCoercion Coercion Ty |
NthCoercion Int Coercion |
AxiomCoercion (Qual Tcon) Int [Coercion] |
LRCoercion LeftOrRight Coercion |
SubCoercion Coercion |

data Role Source

Constructors

Nominal |
Representational |
Phantom |

data LeftOrRight Source

Constructors

CLeft |
CRight |

data Kind Source

Constructors

Klifted |
Kunlifted |
Kunboxed |
Kopen |
Karrow Kind Kind |

Instances

Show Kind |

data Lit Source

Constructors

Lint Integer Ty |
Lrational Rational Ty |
Lchar Char Ty |
Lstring [Word8] Ty |

Instances

Show Lit |

type Mname = Id Source

type Var = Id Source

type Tvar = Id Source

type Tcon = Id Source

type Dcon = Id Source

type Qual t = (Mname, t) Source

type Id = String Source

primMname :: Mname Source

tcArrow :: Qual Tcon Source