diff options
author | Yann Herklotz <git@ymhg.org> | 2019-04-14 20:24:00 +0100 |
---|---|---|
committer | Yann Herklotz <git@ymhg.org> | 2019-04-14 20:24:00 +0100 |
commit | 652818f5b23f8f47e6e19c3273b9588ae8f13c7e (patch) | |
tree | 7ffb6f02434001c41611d91f82401124748a874d /src/VeriFuzz | |
parent | 481f628464e55cb4a69a6de3db496b38264a4949 (diff) | |
download | verismith-652818f5b23f8f47e6e19c3273b9588ae8f13c7e.tar.gz verismith-652818f5b23f8f47e6e19c3273b9588ae8f13c7e.zip |
Some changes to recursion schemes
Diffstat (limited to 'src/VeriFuzz')
-rw-r--r-- | src/VeriFuzz/RecursionScheme.hs | 22 |
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 |