Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- class Commute p where
- commuteFL :: Commute p => (p :> FL p) wX wY -> Maybe ((FL p :> p) wX wY)
- commuteFLorComplain :: Commute p => (p :> FL p) wX wY -> Either (Sealed2 p) ((FL p :> p) wX wY)
- commuteRL :: Commute p => (RL p :> p) wX wY -> Maybe ((p :> RL p) wX wY)
- commuteRLFL :: Commute p => (RL p :> FL p) wX wY -> Maybe ((FL p :> RL p) wX wY)
- selfCommuter :: Commute p => CommuteFn p p
Documentation
class Commute p where Source #
Commute represents things that can be (possibly) commuted.
Instances
commuteFL :: Commute p => (p :> FL p) wX wY -> Maybe ((FL p :> p) wX wY) Source #
commuteFL
commutes a single element past a FL.
commuteFLorComplain :: Commute p => (p :> FL p) wX wY -> Either (Sealed2 p) ((FL p :> p) wX wY) Source #
commuteFLorComplain
attempts to commute a single element past a FL. If
any individual commute fails, then we return the patch that first patch that
cannot be commuted past.
commuteRL :: Commute p => (RL p :> p) wX wY -> Maybe ((p :> RL p) wX wY) Source #
commuteRL
commutes a RL past a single element.
commuteRLFL :: Commute p => (RL p :> FL p) wX wY -> Maybe ((FL p :> RL p) wX wY) Source #
commuteRLFL
commutes an RL
past an FL
.
selfCommuter :: Commute p => CommuteFn p p Source #
Build a commuter between a patch and itself using the operation from the type class.