Imaginantia

思ったことを書きます

モノイド的構造

Monoid

  • Ordering (文字列順序)
  • () (自明)
  • Any (or)
  • All (and)
  • Semigroupの一点モノイド化 (e*s = s = s*e)
  • Last (Maybe a)
  • First (Maybe a)
  • Product
  • Sum
  • Endo
  • Max (Ord, Bounded)
  • Min (Ord, Bounded)

Semigroup

  • Void
  • NonEmpty
  • Last (a)
  • First (a)
  • Max (Ord)
  • Min (Ord)
  • Either (Alt Maybeと同様、先頭を取る)

Alternative, MonadPlus (Alt)

  • []
  • Maybe
  • IO (例外で連結)
  • Parser

Applicative

  • Monoid m => Const * m

Apply (Semigroup)

  • IntMap
  • Map k
  • HashMap k

その他

  • (Monoid a, Applicative f) => Monoid (f a)
  • Monoid m => Monoid (Dual m) (左右交換)