PModule | |
|
ProgMod | |
|
Body | |
imports :: Exp t | | content :: Block t | | extraContent :: Block t | The body of the module
|
|
PModuleDecl | |
moduleKeyword :: PAtom t | | name :: PAtom t | | exports :: Exp t | | whereKeyword :: Exp t | |
|
PImport | |
importKeyword :: PAtom t | | qual :: Exp t | | name' :: PAtom t | | as :: Exp t | | specification :: Exp t | |
|
TS t [Exp t] | Type signature
|
PType | Type declaration
|
typeKeyword :: PAtom t | | typeCons :: Exp t | | equal :: PAtom t | | btype :: Exp t | |
|
PData | Data declaration
|
dataKeyword :: PAtom t | | dtypeCons :: Exp t | | dEqual :: Exp t | | dataRhs :: Exp t | |
|
PData' | |
dEqual :: PAtom t | | dataCons :: Exp t | Data declaration RHS
|
|
PClass | |
cKeyword :: PAtom t | | cHead :: Exp t | | cwhere :: Exp t | Class declaration
|
|
Paren (PAtom t) [Exp t] (PAtom t) | A parenthesized, bracked or braced
|
Block [Exp t] | A block of things separated by layout
|
PAtom t [t] | An atom is a token followed by many comments
|
Expr [Exp t] | |
PWhere (PAtom t) (Exp t) (Exp t) | Where clause
|
Bin (Exp t) (Exp t) | |
PError | |
errorTok :: t | | marker :: t | | commentList :: [t] | An wrapper for errors
|
|
RHS (PAtom t) (Exp t) | Righthandside of functions with =
|
Opt (Maybe (Exp t)) | An optional
|
Modid t [t] | Module identifier
|
Context (Exp t) (Exp t) (PAtom t) | |
PGuard [PGuard t] | Righthandside of functions with |
the PAtom in PGuard' does not contain any comments
|
PGuard' (PAtom t) (Exp t) (PAtom t) | |
TC (Exp t) | Type constructor
data constructor same as with the TC constructor
|
DC (Exp t) | Data constructor
|
PLet (PAtom t) (Exp t) (Exp t) | let expression
|
PIn t [Exp t] | |