{-# OPTIONS_HADDOCK hide #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}
module Cubix.Language.Lua.Parametric.Full.Types where
import Data.Comp.Multi ( Term, AnnTerm )
import qualified Language.Haskell.TH as TH
import qualified Language.Lua.Annotated as Lua
import Data.Comp.Trans ( runCompTrans, deriveMultiComp, makeSumType, withAnnotationProp, defaultUnpropAnn, withSubstitutions, withExcludedNames )
import Cubix.Language.Info
import Cubix.Language.Lua.Parametric.Full.Exclusions
import Cubix.Language.Lua.Parametric.Full.Names
import Cubix.Language.Parametric.Derive
data FunBodyL
do substs <- makeSubsts
runCompTrans $ withAnnotationProp annType isAnn propAnn defaultUnpropAnn $ withSubstitutions substs $ withExcludedNames excludedNamesSet $ deriveMultiComp ''Lua.Block