{-# OPTIONS_GHC -fno-warn-orphans #-}
module Colog.Contra
       (
       ) where
import Data.Functor.Contravariant (Contravariant (..))
import Data.Functor.Contravariant.Divisible (Decidable (..), Divisible (..))
import Colog.Core.Action (LogAction)
import qualified Colog.Core.Action as LA
instance Contravariant (LogAction m) where
    contramap = LA.cmap
    (>$)      = (LA.>$)
instance (Applicative m) => Divisible (LogAction m) where
    divide  = LA.divide
    conquer = LA.conquer
instance (Applicative m) => Decidable (LogAction m) where
    lose   = LA.lose
    choose = LA.choose