packages feed

pattern-arrows 0.0.1 → 0.0.2

raw patch · 2 files changed

+6/−2 lines, 2 files

Files

pattern-arrows.cabal view
@@ -1,5 +1,5 @@ name: pattern-arrows-version: 0.0.1+version: 0.0.2 cabal-version: >=1.4 build-type: Simple license: MIT
src/Control/PatternArrows.hs view
@@ -29,7 +29,11 @@ -- -- A pattern is a Kleisli arrow for the @StateT Maybe@ monad. That is, patterns can fail, and can carry user-defined state. ---newtype Pattern u a b = Pattern { runPattern :: A.Kleisli (StateT u Maybe) a b } deriving (C.Category, A.Arrow, A.ArrowZero, A.ArrowPlus)+newtype Pattern u a b = Pattern { runPattern :: A.Kleisli (StateT u Maybe) a b } deriving (A.Arrow, A.ArrowZero, A.ArrowPlus)++instance C.Category (Pattern u) where+    id = Pattern (C.id)+    Pattern p1 . Pattern p2 = Pattern (p1 C.. p2)  instance Functor (Pattern u a) where   fmap f (Pattern p) = Pattern $ A.Kleisli $ fmap f . A.runKleisli p