content: {-# LANGUAGE Safe #-}
  {-# LANGUAGE ExplicitNamespaces #-}
  
  -- | A monadic library for implementing effectful computation in a modular way.
  --
  -- This module provides the @Eff@ monad - the base type for all effectful
  -- computation.
  -- The @Member@ typeclass is the main interface for describing which effects
  -- are necessary for a given function.
  --
  -- Consult the @Control.Eff.QuickStart@ module and the readme for gentle
  -- introductions.
  --
  -- To use extensible effects effectively some language extensions are
  -- necessary/recommended.
  --
  -- @
  -- {-\# LANGUAGE ScopedTypeVariables \#-}
  -- {-\# LANGUAGE FlexibleContexts \#-}
  -- {-\# LANGUAGE MonoLocalBinds \#-}
  -- @
  --
  
  module Control.Eff
    ( -- * Effect type
      Internal.run
    , Internal.Eff
      -- * Lift IO computations
    , Internal.lift, Internal.runLift
    , Internal.catchDynE
    , Internal.HandlerDynE(..), Internal.catchesDynE
    , Internal.Lift(..), Internal.Lifted, Internal.LiftedBase
      -- * Effect list
    , OpenUnion.Member
    , OpenUnion.SetMember
    , type(<::)
    ) where
  
  import Control.Eff.Internal as Internal
  import Data.OpenUnion as OpenUnion
  