content: {-|
  Module      : Parsley.Internal.Frontend.Analysis
  Description : Exposes various analysis passes.
  License     : BSD-3-Clause
  Maintainer  : Jamie Willis
  Stability   : experimental
  
  Exposes the analysis passes defined within the analysis submodules via `analyse`.
  
  @since 1.5.0.0
  -}
  module Parsley.Internal.Frontend.Analysis (
      analyse, dependencyAnalysis, inliner,
      module Flags
    ) where
  
  import Parsley.Internal.Common.Indexed                 (Fix)
  import Parsley.Internal.Core.CombinatorAST             (Combinator)
  import Parsley.Internal.Frontend.Analysis.Cut          (cutAnalysis)
  import Parsley.Internal.Frontend.Analysis.Dependencies (dependencyAnalysis)
  import Parsley.Internal.Frontend.Analysis.Inliner      (inliner)
  
  import Parsley.Internal.Frontend.Analysis.Flags as Flags (emptyFlags, AnalysisFlags)
  
  {-|
  Performs Cut-Analysis on the combinator tree (See "Parsley.Internal.Frontend.Analysis.Cut")
  
  @since 1.5.0.0
  -}
  analyse :: AnalysisFlags -> Fix Combinator a -> Fix Combinator a
  analyse _ = cutAnalysis
  