{-| Wrapper around 'Control.Monad.Logic'
-}

module Control.Monad.LogicState.Logic
  ( module Control.Monad.Logic
  , module Control.Monad.TransLogicState.Class
  )
  where

import           Control.Monad.Logic hiding (observeT, observeAllT, observeManyT, observe, observeAll, observeMany)
import qualified Control.Monad.Logic as CML

import           Control.Monad.TransLogicState.Class

instance TransLogicState () LogicT where
  observeT _ = CML.observeT
  observeAllT _ = CML.observeAllT
  observeManyT _ = CML.observeManyT
  liftWithState m = lift $ m () >>= (return . fst)