| 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] | |