-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | An average (arithmetic mean) monoid. -- @package average @version 0.6.1 module Data.Monoid.Average -- | A monoid for Average values. -- -- This is actually just the free monoid with an extra function -- average for extracing the (arithmetic) mean. This function is -- used to implement Real, so you can use Average whenever -- a (Monoid, Real) is required. -- --
-- >>> toRational $ mconcat [1,2::Average Rational] -- 3 % 2 -- -- >>> toRational $ mconcat [1,2::Sum Rational] -- 3 % 1 -- -- >>> toRational $ mconcat [1,2::Product Rational] -- 2 % 1 --newtype Average a Average :: [a] -> Average a getAverage :: Average a -> [a] -- | Return the average of all monoidal components. If given mempty, -- return zero. average :: Fractional a => Average a -> a -- | Return the average of all monoidal components. If given mempty, -- return Nothing. maybeAverage :: Fractional a => Average a -> Maybe a instance Typeable Average instance Show a => Show (Average a) instance Semigroup (Average a) instance Monoid (Average a) instance Functor Average instance Applicative Average instance AffineSpace a => AffineSpace (Average a) instance VectorSpace a => VectorSpace (Average a) instance AdditiveGroup a => AdditiveGroup (Average a) instance Floating a => Floating (Average a) instance (Real a, Fractional a) => Real (Average a) instance (Fractional a, Num a) => Fractional (Average a) instance Num a => Num (Average a) instance (Fractional a, Ord a) => Ord (Average a) instance (Fractional a, Eq a) => Eq (Average a)