ContentsIndex
Pointfree
Portability portable
Stability experimental
Maintainer jproenca@di.uminho.pt
Contents
Data Type
Conversion of a PFTerm to an haskell expression
Description
A syntax of a general pointfree language.
Synopsis
data PFTerm
= BANG
| ID
| APP
| Curry PFTerm
| (:.:) PFTerm PFTerm
| (:\/:) PFTerm PFTerm
| (:/\:) PFTerm PFTerm
| FST
| SND
| INL
| INR
| IN HsExpP
| OUT HsExpP
| PARA HsExpP PFTerm
| FIX
| Macro String
pf2Exp :: PFTerm -> HsExpI PNT
Data Type

Represents a pointfree language where:

  1. products and sums are treated
  2. base types are obtained and decomposed by the use of the IN and OUT constructors
  3. recursion can be expressed by the point-fix function or by a paramorphism
  4. free variables are called macros and represent known pointfree expressions
data PFTerm
Constructors
BANGConstant function that returns Unit
IDIdentity
APPApply
Curry PFTermCurry
(:.:) PFTerm PFTermComposition
(:\/:) PFTerm PFTermEither
(:/\:) PFTerm PFTermSplit
FSTPoint-free first
SNDPoint-free second
INLPoint-free left injection
INRPoint-free right injection
IN HsExpPInjection on a specified type
OUT HsExpPGets the functor
PARA HsExpP PFTermParamorphism
FIXFixed point function
Macro StringMacros of frequently used pointfree terms
Instances
Show PFTerm
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