diff delta.hs @ 101:29c54b0197fb

Fix bind definition on DeltaM. use mu.
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Sun, 25 Jan 2015 12:15:19 +0900
parents 0580e1642477
children f2187ad63791
line wrap: on
line diff
--- a/delta.hs	Fri Jan 23 17:44:53 2015 +0900
+++ b/delta.hs	Sun Jan 25 12:15:19 2015 +0900
@@ -125,8 +125,8 @@
 
 
 mu' :: (Functor m, Monad m) => DeltaM m (DeltaM m a) -> DeltaM m a
-mu' (DeltaM (Mono x))    = DeltaM $ Mono $ x >>= headDeltaM
-mu' (DeltaM (Delta x d)) = appendDeltaM (DeltaM $ Mono $ x >>= headDeltaM)
+mu' (DeltaM (Mono x))    = DeltaM $ Mono $ (>>= id) $ fmap headDeltaM x
+mu' (DeltaM (Delta x d)) = appendDeltaM (mu' $ DeltaM $ Mono x)
                                         (mu' $ fmap tailDeltaM $ DeltaM d )
 
 instance (Functor m, Monad m) => Monad (DeltaM m) where