{-# 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)