numhask-0.0.3: src/NumHask/Algebra/Distribution.hs
{-# OPTIONS_GHC -Wall #-}
-- | Distribution, avoiding name clashes with 'Data.Distributive'
module NumHask.Algebra.Distribution (
-- * Distribution
Distribution
) where
import Protolude (Double, Float, Int, Integer,Bool(..))
import NumHask.Algebra.Additive
import NumHask.Algebra.Multiplicative
import Data.Complex (Complex(..))
-- | Distribution
--
-- > a * (b + c) == a * b + a * c
--
-- > (a + b) * c == a * c + b * c
--
class (
Additive a
, MultiplicativeMagma a
) => Distribution a
instance Distribution Double
instance Distribution Float
instance Distribution Int
instance Distribution Integer
instance Distribution Bool
instance {-# Overlapping #-} (AdditiveGroup a, Distribution a) =>
Distribution (Complex a)