||| Ported from Haskell: ||| https://hackage.haskell.org/package/base-4.9.0.0/docs/src/Data.Monoid.html module Data.Monoid %access public export %default total -- TODO: These instances exist, but can't be named the same. -- Decide on names for these -- [all] Semigroup Bool where -- a <+> b = a && b -- -- [all] Monoid Bool where -- neutral = True -- -- [any] Semigroup Bool where -- a <+> b = a || b -- -- [any] Monoid Bool where -- neutral = False Semigroup () where (<+>) _ _ = () Monoid () where neutral = () (Semigroup m, Semigroup n) => Semigroup (m, n) where (a, b) <+> (c, d) = (a <+> c, b <+> d) (Monoid m, Monoid n) => Monoid (m, n) where neutral = (neutral, neutral)