diff options
Diffstat (limited to 'src/Haskell/Rewrite.hs')
-rw-r--r-- | src/Haskell/Rewrite.hs | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/Haskell/Rewrite.hs b/src/Haskell/Rewrite.hs index c33f62e..bcec6f7 100644 --- a/src/Haskell/Rewrite.hs +++ b/src/Haskell/Rewrite.hs @@ -3,14 +3,14 @@ module Haskell.Rewrite ,betared, etared, casered ,etacase, casecase ,autoSimp - ,normalise - ,fixpoint) where + ,normalise) where import Control.Monad import Data.List import Data.Maybe import qualified Data.Map.Strict as Map import Haskell.AST +import Util rewrite :: Name -> Expr -> Expr -> Expr @@ -105,9 +105,3 @@ recurse _ _ (Num k) = Num k recurse _ f (Tup es) = Tup (map f es) recurse _ f (Lam ns e) = Lam ns (f e) recurse fp f (Case e as) = Case (f e) (map (\(p, e') -> (fp p, f e')) as) - -fixpoint :: Eq a => (a -> a) -> a -> a -fixpoint f initVal = - let values = iterate f initVal - pairs = zip values (tail values) - in fst . head $ dropWhile (uncurry (/=)) pairs |