|
Pointfree | Portability | portable | Stability | experimental | Maintainer | jproenca@di.uminho.pt |
|
|
|
|
|
Description |
A syntax of a general pointfree language.
|
|
Synopsis |
|
|
|
|
Data Type |
|
Represents a pointfree language where:
- products and sums are treated
- base types are obtained and decomposed by the use of the IN and
OUT constructors
- recursion can be expressed by the point-fix function or by a paramorphism
- free variables are called macros and represent known pointfree expressions
|
|
data PFTerm |
Constructors | BANG | Constant function that returns Unit | ID | Identity | APP | Apply | Curry PFTerm | Curry | (:.:) PFTerm PFTerm | Composition | (:\/:) PFTerm PFTerm | Either | (:/\:) PFTerm PFTerm | Split | FST | Point-free first | SND | Point-free second | INL | Point-free left injection | INR | Point-free right injection | IN HsExpP | Injection on a specified type | OUT HsExpP | Gets the functor | PARA HsExpP PFTerm | Paramorphism | FIX | Fixed point function | Macro String | Macros of frequently used pointfree terms |
| Instances | |
|
|
Conversion of a PFTerm to an haskell expression |
|
pf2Exp :: PFTerm -> HsExpI PNT |
Applies a tranformation from a PFTerm to an expression of programatica's
abstract tree. Note that the type information inside the IN, OUT and PARA
terms is represented as a programatica's expression L::type, where the type
is the real type information.
|
|
Produced by Haddock version 0.6 |