11module Data.Identity where
22
3- import Prelude
4-
5- import Control.Comonad (Comonad )
6- import Control.Extend (Extend )
7- import Data.Foldable (Foldable )
8- import Data.Functor.Invariant (Invariant , imapF )
9- import Data.Monoid (Monoid , mempty )
10- import Data.Traversable (Traversable )
3+ import Control.Applicative (class Applicative )
4+ import Control.Apply (class Apply )
5+ import Control.Bind (class Bind )
6+ import Control.Comonad (class Comonad )
7+ import Control.Extend (class Extend )
8+ import Control.Monad (class Monad )
9+
10+ import Data.BooleanAlgebra (class BooleanAlgebra , not , (||), (&&))
11+ import Data.Bounded (class Bounded , bottom , top )
12+ import Data.BoundedOrd (class BoundedOrd )
13+ import Data.DivisionRing (class DivisionRing )
14+ import Data.Eq (class Eq , (==))
15+ import Data.Foldable (class Foldable )
16+ import Data.Functor (class Functor , (<$>))
17+ import Data.Functor.Invariant (class Invariant , imapF )
18+ import Data.ModuloSemiring (class ModuloSemiring , mod , (/))
19+ import Data.Monoid (class Monoid , mempty )
20+ import Data.Num (class Num )
21+ import Data.Ord (class Ord , compare )
22+ import Data.Ring (class Ring , (-))
23+ import Data.Semigroup (class Semigroup , (<>))
24+ import Data.Semiring (class Semiring , one , zero , (+), (*))
25+ import Data.Show (class Show , show )
26+ import Data.Traversable (class Traversable )
1127
1228newtype Identity a = Identity a
1329
@@ -27,8 +43,8 @@ instance boundedIdentity :: (Bounded a) => Bounded (Identity a) where
2743instance boundedOrdIdentity :: (BoundedOrd a ) => BoundedOrd (Identity a )
2844
2945instance booleanAlgebraIdentity :: (BooleanAlgebra a ) => BooleanAlgebra (Identity a ) where
30- conj (Identity x) (Identity y) = Identity (conj x y)
31- disj (Identity x) (Identity y) = Identity (disj x y)
46+ conj (Identity x) (Identity y) = Identity (x && y)
47+ disj (Identity x) (Identity y) = Identity (x || y)
3248 not (Identity x) = Identity (not x)
3349
3450instance semigroupIdenity :: (Semigroup a ) => Semigroup (Identity a ) where
@@ -55,7 +71,7 @@ instance divisionRingIdentity :: (DivisionRing a) => DivisionRing (Identity a)
5571instance numIdentity :: (Num a ) => Num (Identity a )
5672
5773instance showIdentity :: (Show a ) => Show (Identity a ) where
58- show (Identity x) = " Identity ( " ++ show x ++ " )"
74+ show (Identity x) = " ( Identity " <> show x <> " )"
5975
6076instance functorIdentity :: Functor Identity where
6177 map f (Identity x) = Identity (f x)
0 commit comments