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 |
DRS lambda calculus; alpha conversion, beta reduction, and function composition
Synopsis
- class DRSAtom a
- class AbstractDRS a
- drsAlphaConvert :: DRS -> [(DRSRef, DRSRef)] -> DRS
- renameVar :: Eq a => a -> [(a, a)] -> a
- drsBetaReduce :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a
- (<<@>>) :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a
- drsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c
- (<<.>>) :: (b -> c) -> (a -> b) -> a -> c
- drsPurify :: DRS -> DRS
Exported
Type classes
Instances
DRSAtom DRS # | |
Defined in Data.DRS.LambdaCalculus | |
DRSAtom DRSRef # | |
Defined in Data.DRS.LambdaCalculus |
class AbstractDRS a #
Type class for an AbstractDRS
, which is either a resolved DRS
, or
an 'unresolved DRS' that takes a DRSAtom
and yields an AbstractDRS
.
Instances
AbstractDRS DRS # | |
Defined in Data.DRS.LambdaCalculus | |
(DRSAtom a, AbstractDRS b) => AbstractDRS (a -> b) # | |
Defined in Data.DRS.LambdaCalculus |
Alpha Conversion
renameVar :: Eq a => a -> [(a, a)] -> a #
Renames a variable v
, iff v
occurs in a variable conversion list.
Otherwise, v
is returned unmodified
Beta Reduction
drsBetaReduce :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a #
Apply beta reduction on an AbstractDRS
with a DRSAtom
.
(<<@>>) :: (AbstractDRS a, DRSAtom b) => (b -> a) -> b -> a #
Infix notation for drsBetaReduce
Function Composition
drsFunctionCompose :: (b -> c) -> (a -> b) -> a -> c #
Apply function composition to two 'unresolved DRS's, yielding a new 'unresolved DRS'
(<<.>>) :: (b -> c) -> (a -> b) -> a -> c #
Infix notation for drsFunctionCompose