-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Extra classes/functions about monoids -- -- Extra classes/functions about monoids @package monoidplus @version 0.1 module Data.Monoid.Plus class Monoid t => MonoidPlus t mpempty :: MonoidPlus t => t mpappend :: MonoidPlus t => t -> t -> t mpconcat :: MonoidPlus t => [t] -> t class Monoid t => Group t minverse :: Group t => t -> t class MonoidPlus t => MonoidMinus t mpinverse :: MonoidMinus t => t -> t class Monoid t => MonoidNorm t mnormfunc :: MonoidNorm t => [t] -> t -> t mnormalize :: MonoidNorm t => [t] -> [t] class MonoidPlus t => MonoidPlusNorm t mpnormfunc :: MonoidPlusNorm t => [t] -> t -> t mpnormalize :: MonoidPlusNorm t => [t] -> [t] class MonoidPlus t => Semiring t class (Semiring t, MonoidMinus t) => Ring t (|*|) :: Monoid t => t -> t -> t (|/|) :: Group t => t -> t -> t (|+|) :: MonoidPlus t => t -> t -> t (|-|) :: MonoidMinus t => t -> t -> t data BoundFrac t fromBoundFrac :: BoundFrac t -> t toBoundFrac :: (Num t, Ord t) => t -> BoundFrac t newtype WrapMonoidPlus t WrapMonoidPlus :: t -> WrapMonoidPlus t newtype CatEndo c t CatEndo :: c t t -> CatEndo c t runCatEndo :: CatEndo c t -> c t t newtype Possibilistic t Possibilistic :: BoundFrac t -> Possibilistic t getPossibilistic :: Possibilistic t -> BoundFrac t newtype Lukasiewicz t Lukasiewicz :: BoundFrac t -> Lukasiewicz t getLukasiewicz :: Lukasiewicz t -> BoundFrac t monoidicMap :: Functor m => (x -> y) -> WriterT x m a -> WriterT y m a mpure :: Applicative f => w -> t -> WriterT w f t type Prob a b = WriterT a [] b pChoose :: Ring p => p -> t -> t -> Prob p t pChoice :: Ring p => p -> Prob p t -> Prob p t -> Prob p t probNorm :: (Semiring p, MonoidPlusNorm p, Eq p, Ord t) => Prob p t -> Prob p t uniform :: (Semiring p, MonoidPlusNorm p) => [t] -> Prob p t probOf :: (Semiring p, MonoidPlusNorm p, Eq p) => (t -> Bool) -> Prob p t -> p instance Eq t => Eq (BoundFrac t) instance Ord t => Ord (BoundFrac t) instance Eq t => Eq (WrapMonoidPlus t) instance Ord t => Ord (WrapMonoidPlus t) instance Show t => Show (WrapMonoidPlus t) instance Eq t => Eq (Possibilistic t) instance Ord t => Ord (Possibilistic t) instance Show t => Show (Possibilistic t) instance Eq t => Eq (Lukasiewicz t) instance Ord t => Ord (Lukasiewicz t) instance Show t => Show (Lukasiewicz t) instance Monoid t => Monad ((,) t) instance (Group a, Group b, Group c) => Group (a, b, c) instance (Group a, Group b) => Group (a, b) instance Eq t => Group (Equivalence t) instance Eq t => Monoid (Equivalence t) instance Ring (Predicate t) instance Semiring (Predicate t) instance MonoidMinus (Predicate t) instance MonoidPlus (Predicate t) instance Monoid (Predicate t) instance Num t => Ring (Product t) instance Num t => Semiring (Product t) instance Num t => MonoidMinus (Product t) instance Fractional t => MonoidPlusNorm (Product t) instance Fractional t => MonoidNorm (Sum t) instance (Ord t, Bounded t) => MonoidPlus (Max t) instance (Ord t, Bounded t) => MonoidPlus (Min t) instance Num t => Group (Sum t) instance Semiring Any instance Semiring All instance MonoidPlus Any instance MonoidPlus All instance Num t => MonoidPlus (Product t) instance Ring () instance Semiring () instance MonoidPlusNorm () instance MonoidNorm () instance MonoidMinus () instance Group () instance MonoidPlus () instance (Num t, Ord t) => MonoidPlus (Lukasiewicz t) instance (Num t, Ord t) => Monoid (Lukasiewicz t) instance (Fractional t, Ord t) => MonoidPlusNorm (Possibilistic t) instance (Num t, Ord t) => Semiring (Possibilistic t) instance (Num t, Ord t) => MonoidPlus (Possibilistic t) instance (Num t, Ord t) => Monoid (Possibilistic t) instance Category c => Monoid (CatEndo c t) instance MonoidPlus t => Monoid (WrapMonoidPlus t) instance (Real t, Fractional t) => RealFrac (BoundFrac t) instance Real t => Real (BoundFrac t) instance (Fractional t, Ord t) => Fractional (BoundFrac t) instance (Num t, Ord t) => Num (BoundFrac t) instance (Enum t, Fractional t, Ord t) => Bounded (BoundFrac t) instance (Enum t, Fractional t, Ord t) => Enum (BoundFrac t) instance Show t => Show (BoundFrac t)