View Source Kinda.Declaration (kinda v0.11.0)
Canonical downstream entry point for Kinda's formalized declaration contract.
Consumer repos should prefer this module over reaching directly into
Kinda.CodeGen.* when they need to:
- load a generator's declaration source
- resolve generator output into declaration surfaces
- inspect generated NIF and type declarations
The underlying IR still lives in Kinda.CodeGen.DeclarationSurfaces, but
this facade is the intended stable binding/declaration surface for
downstreams.
That boundary is intentionally independent from downstream DSL naming.
Repos such as Beaver can rename or consolidate their public IR, dialect,
rewrite, and pass surfaces, including deleting old public shims outright,
without pulling declaration resolution back out of kinda.
Summary
Types
@type manifest() :: Kinda.CodeGen.DeclarationManifest.t()
@type nif_decl() :: Kinda.CodeGen.NIFDecl.t()
@type source() :: Kinda.CodeGen.DeclarationManifest.source()
@type surfaces() :: Kinda.CodeGen.DeclarationSurfaces.t()
@type type_decl() :: Kinda.CodeGen.TypeDecl.t()
Functions
See Kinda.CodeGen.DeclarationSurfaces.declaration_manifest/1.
@spec from_parts( Kinda.CodeGen.DeclarationSurfaces.source_declaration_manifest(), manifest() ) :: surfaces()
@spec load_source(module()) :: Kinda.CodeGen.DeclarationSurfaces.source_declaration_manifest()
@spec source_declaration_manifest(surfaces()) :: Kinda.CodeGen.DeclarationSurfaces.source_declaration_manifest()
See Kinda.CodeGen.DeclarationSurfaces.source_declaration_manifest/1.