{-# OPTIONS_GHC -Wno-missing-export-lists #-}

module Language.Haskell.TH.Natural.Syntax.Expr.Simple.State where

import Control.Lens
import qualified Language.Haskell.TH as TH
import Language.Haskell.TH.Natural.Syntax.Expr.Internal

data SimpleExprBuilderState = MkEBS
    { SimpleExprBuilderState -> [Name]
_argNames :: [TH.Name]
    , SimpleExprBuilderState -> [Binding]
_lets :: [Binding]
    , SimpleExprBuilderState -> [Deconstruct]
_deconstructs :: [Deconstruct]
    , SimpleExprBuilderState -> Maybe Exp
_returnedExp :: Maybe TH.Exp
    }

makeLenses ''SimpleExprBuilderState