[documentation
ekmett@gmail.com**20090326234749] {
hunk ./dist/doc/html/monoids/Data-Monoid-Categorical.html 88
+>
|
|
|
runMon :: Mon m m m -> m |
|
|
|
|
runMon :: Mon m m m -> m | Source | Mon | 1 (Type/Class) | Data.Monoid.Categorical | 2 (Data Constructor) | Data.Monoid.Categorical | |
runMon | Data.Monoid.Categorical | ) where
-
-import Prelude hiding ((.),id)
-import Data.Monoid (Monoid, mempty, mappend)
-import Control.Category
-
-
-data Endo (~>) a = Endo { getEndo :: a ~> a }
-
-instance Category (~>) => Monoid (Endo (~>) a) where
- mempty = Endo id
- Endo f `mappend` Endo g = Endo (f . g)
-
-
-
-data Mon m a b where
- Mon :: Monoid m => m -> Mon m a a
-
-instance Monoid m => Category (Mon m) where
- id = Mon mempty
- Mon a . Mon b = Mon (a `mappend` b)
+ , Mon(Mon)
+ , runMon
+ ) where
+
+import Prelude hiding ((.),id)
+import Data.Monoid (Monoid, mempty, mappend)
+import Control.Category
+
+
+data Endo (~>) a = Endo { getEndo :: a ~> a }
+
+instance Category (~>) => Monoid (Endo (~>) a) where
+ mempty = Endo id
+ Endo f `mappend` Endo g = Endo (f . g)
+
+
+data Mon m n o where
+ Mon :: Monoid m => m -> Mon m a a
+
+runMon :: Mon m m m -> m
+runMon (Mon m) = m
+
+instance Monoid m => Category (Mon m) where
+ id = Mon mempty
+ Mon a . Mon b = Mon (a `mappend` b)
}
|