{-# OPTIONS_HADDOCK hide #-}

{-# LANGUAGE TemplateHaskell #-}

module Cubix.Language.Lua.Parametric.Full.Exclusions (
    luaExcludedNames
  , excludedNamesSet
  ) where

import Data.Set ( Set )
import qualified Data.Set as Set

import Data.Comp.Trans ( standardExcludedNames )

import qualified Language.Haskell.TH.Syntax as TH
import Language.Lua.Annotated.Syntax

-- | We handle FunDef specially because it can have two annotations
luaExcludedNames :: [TH.Name]
luaExcludedNames :: [Name]
luaExcludedNames = [''FunBody]

excludedNamesSet :: Set TH.Name
excludedNamesSet :: Set Name
excludedNamesSet = Set Name -> Set Name -> Set Name
forall a. Ord a => Set a -> Set a -> Set a
Set.union Set Name
standardExcludedNames (Set Name -> Set Name) -> Set Name -> Set Name
forall a b. (a -> b) -> a -> b
$ [Name] -> Set Name
forall a. Ord a => [a] -> Set a
Set.fromList [Name]
luaExcludedNames