aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@ymhg.org>2019-04-14 20:24:00 +0100
committerYann Herklotz <git@ymhg.org>2019-04-14 20:24:00 +0100
commit652818f5b23f8f47e6e19c3273b9588ae8f13c7e (patch)
tree7ffb6f02434001c41611d91f82401124748a874d
parent481f628464e55cb4a69a6de3db496b38264a4949 (diff)
downloadverismith-652818f5b23f8f47e6e19c3273b9588ae8f13c7e.tar.gz
verismith-652818f5b23f8f47e6e19c3273b9588ae8f13c7e.zip
Some changes to recursion schemes
-rw-r--r--src/VeriFuzz/RecursionScheme.hs22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/VeriFuzz/RecursionScheme.hs b/src/VeriFuzz/RecursionScheme.hs
index 7d89498..e0807ad 100644
--- a/src/VeriFuzz/RecursionScheme.hs
+++ b/src/VeriFuzz/RecursionScheme.hs
@@ -55,30 +55,16 @@ cata :: Functor f => Algebra f a -> Term f -> a
cata fn = para' $ const fn
ana :: Functor f => Coalgebra f a -> a -> Term f
-ana fn =
- fn
- >>> fmap (ana fn)
- >>> In
+ana fn = fn >>> fmap (ana fn) >>> In
para :: Functor f => RAlgebra f a -> Term f -> a
-para ralg =
- out
- >>> fmap (id &&& para ralg)
- >>> ralg
+para ralg = out >>> fmap (id &&& para ralg) >>> ralg
para' :: Functor f => RAlgebra' f a -> Term f -> a
para' ralg t = out t & fmap (para' ralg) & ralg t
apo :: Functor f => RCoalgebra f a -> a -> Term f
-apo rcoalg =
- rcoalg
- >>> fmap (id ||| apo rcoalg)
- >>> In
+apo rcoalg = rcoalg >>> fmap (id ||| apo rcoalg) >>> In
histo :: Functor f => CVAlgebra f a -> Term f -> a
-histo cv =
- out
- >>> fmap worker
- >>> cv
- where
- worker t = undefined
+histo cv = out >>> fmap worker >>> cv where worker t = undefined