{-|
    This module provides the class of semigroups.

    A semigroup has a single binary operation which is associative.
-}
module Data.Semigroup (

    Semigroup (append)

) where

    -- |The class of semigroups.
    class Semigroup semigroup where

        -- |An associative operation.
        append :: semigroup -> semigroup -> semigroup