Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Language.REST.OCAlgebra
Documentation
The "Ordering Constraint Algebra", as described in section 4.2 of the paper.
OCAlgebra c a m
is an OCA with language of constraints c
, applied to terms
of type a
. m
is the computation context for isSat
.
Constructors
OCAlgebra | |
Fields
|
fuelOC :: Monad m => Int -> OCAlgebra Int a m Source #
fuelOC n
is an OCA that permits n
rewrite steps
contramap :: forall c a b m. (b -> a) -> OCAlgebra c a m -> OCAlgebra c b m Source #
contramap f oca
transforms an OCA of terms of type a
terms of type b
,
by using f
to convert terms of b
to equivalent ones of a
bimapConstraints :: forall c d a m. (c -> d) -> (d -> c) -> OCAlgebra c a m -> OCAlgebra d a m Source #
bimapConstraints to from oca
yields an oca using d
to track constraints; to
and from
should
define an isomorphism between c and d