{-# OPTIONS_GHC -Wno-missing-export-lists #-} module Language.Haskell.TH.Natural.Syntax.Expr.Do.State where import Control.Lens import qualified Language.Haskell.TH as TH import Language.Haskell.TH.Natural.Syntax.Expr.Internal data DoExprStep = Bind Binding | Stmt TH.Exp | Let Binding | Decons Deconstruct newtype DoExprBuilderState = -- | Works as a stack: the last step is the first in the list MkDoEBS {DoExprBuilderState -> [DoExprStep] _steps :: [DoExprStep]} makeLenses ''DoExprBuilderState