Copyright | (c) Harm Brouwer and Noortje Venhuizen |
---|---|
License | Apache-2.0 |
Maintainer | me@hbrouwer.eu, n.j.venhuizen@rug.nl |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
PDRS lambda calculus; alpha conversion, beta reduction, function composition, and `PDRS purification'
Synopsis
- class PDRSAtom a
- class AbstractPDRS a
- pdrsAlphaConvert :: PDRS -> [(PVar, PVar)] -> [(PDRSRef, PDRSRef)] -> PDRS
- pdrsBetaReduce :: (AbstractPDRS a, PDRSAtom b) => (b -> a) -> b -> a
- (<<@>>) :: (AbstractPDRS a, PDRSAtom b) => (b -> a) -> b -> a
- pdrsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c
- (<<.>>) :: (b -> c) -> (a -> b) -> a -> c
- pdrsPurify :: PDRS -> PDRS
Exported
Type classes
Instances
PDRSAtom PDRS # | |
Defined in Data.PDRS.LambdaCalculus | |
PDRSAtom PDRSRef # | |
Defined in Data.PDRS.LambdaCalculus |
class AbstractPDRS a #
Type class for an AbstractPDRS
, which is either a resolved PDRS
,
or an unresolved PDRS
that takes a PDRSAtom
and yields an
AbstractPDRS
.
Instances
AbstractPDRS PDRS # | |
Defined in Data.PDRS.LambdaCalculus | |
(PDRSAtom a, AbstractPDRS b) => AbstractPDRS (a -> b) # | |
Defined in Data.PDRS.LambdaCalculus |
Alpha Conversion
Beta Reduction
pdrsBetaReduce :: (AbstractPDRS a, PDRSAtom b) => (b -> a) -> b -> a #
Apply beta reduction on an AbstractPDRS
with a PDRSAtom
.
(<<@>>) :: (AbstractPDRS a, PDRSAtom b) => (b -> a) -> b -> a #
Infix notation for pdrsBetaReduce
.
Function Composition
pdrsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c #
Apply function composition to two 'unresolved PDRS's, yielding a new 'unresolved PDRS'.
(<<.>>) :: (b -> c) -> (a -> b) -> a -> c #
Infix notation for pdrsFunctionCompose
.
PDRS Purification
pdrsPurify :: PDRS -> PDRS #