hs-bindgen-1.0.0.0: src-internal/HsBindgen/Frontend/Pass/ReparseMacroExpansions/IsPass.hs
module HsBindgen.Frontend.Pass.ReparseMacroExpansions.IsPass (
ReparseMacroExpansions
) where
import HsBindgen.Frontend.Pass.PrepareReparse.IsPass (PrepareReparse)
import HsBindgen.Frontend.Pass.ReparseMacroExpansions.LanC (LanC)
import HsBindgen.Frontend.Pass.TypecheckMacros.IsPass
import HsBindgen.Imports
import HsBindgen.IR.C qualified as C
import HsBindgen.IR.Pass
{-------------------------------------------------------------------------------
Definition
-------------------------------------------------------------------------------}
type ReparseMacroExpansions :: Pass
data ReparseMacroExpansions a
-- We do not need the @ReparseInfo@ anymore, so we drop it from the annotations.
type family AnnReparseMacroExpansions (ix :: Symbol) :: Star where
AnnReparseMacroExpansions _ = NoAnn
instance IsPass ReparseMacroExpansions
instance PassId ReparseMacroExpansions
instance PassTypes ReparseMacroExpansions
instance PassScopedName ReparseMacroExpansions
instance PassMacro ReparseMacroExpansions where
type MacroId ReparseMacroExpansions = Id ReparseMacroExpansions
type MacroBody ReparseMacroExpansions = TypecheckedMacro ReparseMacroExpansions
type MacroUnderlying ReparseMacroExpansions = C.Type ReparseMacroExpansions
macroIdId _ = id
instance PassExtBinding ReparseMacroExpansions
instance PassCommentDecl ReparseMacroExpansions where
type CommentDecl ReparseMacroExpansions = Maybe (C.Comment ReparseMacroExpansions)
instance PassAnn ReparseMacroExpansions where
type Ann ix ReparseMacroExpansions = AnnReparseMacroExpansions ix
instance PassMsg ReparseMacroExpansions
{-------------------------------------------------------------------------------
CoercePass: PrepareReparse → ReparseMacroExpansions
-------------------------------------------------------------------------------}
instance CoercePassId PrepareReparse ReparseMacroExpansions
instance CoercePassMacroId PrepareReparse ReparseMacroExpansions
instance CoercePassTypes PrepareReparse ReparseMacroExpansions
instance CoercePassAnn "TypeFunArg" PrepareReparse ReparseMacroExpansions
instance CoercePassCommentDecl PrepareReparse ReparseMacroExpansions where
coercePassCommentDecl _ = fmap coercePass
instance CoercePassMacroBody PrepareReparse ReparseMacroExpansions where
coercePassMacroBody _ = coercePassParam
instance CoercePassMacroUnderlying PrepareReparse ReparseMacroExpansions where
coercePassMacroUnderlying _ = absurd
{-------------------------------------------------------------------------------
CoercePass: LanC → ReparseMacroExpansions
-------------------------------------------------------------------------------}
instance CoercePassId LanC ReparseMacroExpansions
instance CoercePassMacroId LanC ReparseMacroExpansions
instance CoercePassAnn "TypeFunArg" LanC ReparseMacroExpansions
instance CoercePassCommentDecl LanC ReparseMacroExpansions where
coercePassCommentDecl _ = fmap coercePass
instance CoercePassMacroBody LanC ReparseMacroExpansions where
coercePassMacroBody _ = coercePassParam