module Pandora.Pattern.Functor.Avoidable (Avoidable (..)) where

import Pandora.Pattern.Functor.Alternative (Alternative)

{- |
> When providing a new instance, you should ensure it satisfies the two laws:
> * Left absorption: x <+> empty ≡ x
> * Right absorption: empty <+> x ≡ x
-}

class Alternative t => Avoidable t where
        empty :: t a