Class of Abelian monoids that allow the least common multiple to be found for any two given values.
Operations must satisfy the following laws:
Reductivity
isJust (lcm a b </> a)
isJust (lcm a b </> b)
Uniqueness
all isJust
[ c </> a
, c </> b
, lcm a b </> c
]
==>
(lcm a b == c)
Idempotence
lcm a a == a
Identity
lcm mempty a == a
lcm a mempty == a
Commutativity
lcm a b == lcm b a
Associativity
lcm (lcm a b) c == lcm a (lcm b c)
Absorption
lcm a (gcd a b) == a
gcd a (lcm a b) == a
Methods
lcm :: m -> m -> m
Instances9LCMMonoid, …
LCMMonoid IntSetDefined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCMLCMMonoid ()Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCMOrd a => LCMMonoid (Set a)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCMLCMMonoid (Product Natural)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCMLCMMonoid (Sum Natural)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCMLCMMonoid a => LCMMonoid (Dual a)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCM(LCMMonoid a, LCMMonoid b) => LCMMonoid (a, b)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCM(LCMMonoid a, LCMMonoid b, LCMMonoid c) => LCMMonoid (a, b, c)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCM(LCMMonoid a, LCMMonoid b, LCMMonoid c, LCMMonoid d) => LCMMonoid (a, b, c, d)Defined in monoid-subclasses-1.2.5.1 · Data.Monoid.LCM