# HG changeset patch # User Yasutaka Higa # Date 1409477710 -32400 # Node ID 878d1e271709c3099f104da85be1f988107f6f30 # Parent 7a82a5e50499ac03424679f37e84098e43041736 Force Implement mu diff -r 7a82a5e50499 -r 878d1e271709 similer.hs --- a/similer.hs Sun Aug 31 16:48:45 2014 +0900 +++ b/similer.hs Sun Aug 31 18:35:10 2014 +0900 @@ -1,3 +1,4 @@ +{-# LANGUAGE FlexibleContexts #-} data Similer a f b = Similer a (a -> b) b instance Functor (Similer a f) where @@ -6,6 +7,6 @@ eta :: a -> Similer a (a -> a) a eta a = Similer a id a ---mu :: (Eq a, Eq b, Eq c) => Similer a (a -> b) (Similer b (b -> c) c) -> Similer b (b -> c) c ---mu (Similer a f (Similer b g c)) = if ((f a) == b) then Similer b g c else undefined ---mu (Similer a f (Similer b g c)) = if ((f a) == b) then Similer b g c else undefined +--mu :: (Eq (Similer b (b -> c) c)) => Similer a (a -> (Similer b (b -> c) c)) (Similer b (b -> c) c) -> Similer b (b -> c) c +mu :: (Eq (Similer b (b -> c) c)) => Similer a (a -> (Similer b (b -> c) c)) (Similer b (b -> c) c) -> Similer b (b -> c) c +mu (Similer a f b) = if ((f a) == b) then b else undefined