Portability | portable (depends on ghc) |
---|---|
Stability | provisional |
Maintainer | bastiaan.heeren@ou.nl |
Safe Haskell | None |
This module defines transformations. Given a term, a transformation returns a list of results (often a singleton list or the empty list). A transformation can be parameterized with one or more Bindables. Transformations rules can be lifted to work on more complex domains with the LiftView type class.
Documentation
type ParamTrans a b = Trans (a, b) bSource
supplyParameters :: ParamTrans b a -> (a -> Maybe b) -> Transformation aSource
supplyContextParameters :: ParamTrans b a -> (a -> EnvMonad b) -> Transformation (Context a)Source
parameter1 :: (IsId n1, Reference a) => n1 -> (a -> Transformation b) -> ParamTrans a bSource
parameter2 :: (IsId n1, IsId n2, Reference a, Reference b) => n1 -> n2 -> (a -> b -> Transformation c) -> ParamTrans (a, b) cSource
parameter3 :: (IsId n1, IsId n2, IsId n3, Reference a, Reference b, Reference c) => n1 -> n2 -> n3 -> (a -> b -> c -> Transformation d) -> ParamTrans (a, b, c) dSource