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 <+> idle ≡ x
> * Right absorption: idle <+> x ≡ x
-}

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