moonlight-pale-0.1.0.0: src-ghc-surface/Moonlight/Pale/Ghc/Expr/Opaque.hs
module Moonlight.Pale.Ghc.Expr.Opaque
( HsOpaqueTag (..),
HsPatOpaqueTag (..),
hsOpaqueTagName,
hsPatOpaqueTagName,
)
where
import Data.Kind (Type)
type HsOpaqueTag :: Type
data HsOpaqueTag
= OpaqueOverLabel
| OpaqueIPVar
| OpaqueExplicitSum
| OpaqueOverloadedRecordUpdate
| OpaqueGetField
| OpaqueProjection
| OpaqueTypedBracket
| OpaqueUntypedBracket
| OpaqueTypedSplice
| OpaqueUntypedSplice
| OpaqueProc
| OpaqueStatic
| OpaquePragE
| OpaqueEmbTy
| OpaqueHole
| OpaqueForAll
| OpaqueQual
| OpaqueFunArr
| OpaqueCaseAlternative
| OpaqueEmptyLocalBinds
| OpaqueImplicitParameterBinds
| OpaquePatternSynonymBind
| OpaqueExtensionValBinds
| OpaqueParallelStatement
| OpaqueTransformStatement
| OpaqueRecursiveStatement
deriving stock (Eq, Ord, Show, Enum, Bounded)
type HsPatOpaqueTag :: Type
data HsPatOpaqueTag
= PatOpaqueOr
| PatOpaqueSum
| PatOpaqueView
| PatOpaqueSplice
| PatOpaqueNPlusK
| PatOpaqueSig
| PatOpaqueEmbTy
| PatOpaqueInvis
| PatOpaqueNegativeLit
| PatOpaqueExtension
deriving stock (Eq, Ord, Show, Enum, Bounded)
hsOpaqueTagName :: HsOpaqueTag -> String
hsOpaqueTagName =
show
hsPatOpaqueTagName :: HsPatOpaqueTag -> String
hsPatOpaqueTagName =
show