content: {-# LANGUAGE ExplicitNamespaces #-}
  
  module OpenGames.Engine.Engine
    ( decision,
      decisionNoObs,
      forwardFunction,
      backwardFunction,
      nature,
      natureDraw,
      liftStochasticForward,
      StochasticStatefulBayesianOpenGame (..),
      Agent (..),
      Payoff (..),
      dependentDecision,
      dependentEpsilonDecision,
      fromFunctions,
      fromLens,
      uniformDist,
      distFromList,
      pureAction,
      playDeterministically,
      discount,
      DiagnosticInfoBayesian (..),
      generateOutput,
      generateIsEq,
      OpenGame (..),
      lift,
      reindex,
      (>>>),
      (&&&),
      Stochastic (..),
      Vector (..),
      StochasticStatefulOptic (..),
      StochasticStatefulContext (..),
      StochasticOptic (..),
      StochasticContext (..),
      MonadOptic (..),
      MonadContext (..),
      Optic (..),
      Precontext (..),
      Context (..),
      ContextAdd (..),
      identity,
      List (..),
      Apply (..),
      Unappend (..),
      MapL (..),
      FoldrL (..),
      ConstMap (..),
      SequenceList (..),
      IndexList (..),
      type (+:+),
      (+:+),
      Kleisli (..),
    )
  where
  
  -- \| File organizes the imports of the engine to streamline the import of relevant functionality
  
  import Control.Arrow (Kleisli (..))
  import OpenGames.Engine.AtomicGames
  import OpenGames.Engine.BayesianGames hiding (liftStochastic)
  import OpenGames.Engine.Diagnostics
  import OpenGames.Engine.OpenGames
  import OpenGames.Engine.OpticClass
  import OpenGames.Engine.TLL
  