geam 0.1.1

Experimental Rust-embedded execution runtime for typed Gleam programs
pub mod execution;
mod host;
pub mod module;
mod source;
mod value_shape;
mod value_type;

pub use host::{
    HostFunctionTemplate, HostedFunctionTemplate, HostedModulePlan, HostedPlannedModule,
};
pub(crate) use host::{HostImplementationBinding, HostedModulePlanParts, HostedPlannedModuleParts};
pub(crate) use module::ExternalValueShape;
pub(crate) use module::{
    AssertBinding, AssertPattern, AssertSubject, BitArrayBindingPattern, BitArrayBitsSize,
    BitArrayEvaluatedSize, BitArrayExprKind, BitArrayFunctionExprKind, BitArrayFunctionReference,
    BitArrayFunctionReturn, BitArrayPattern, BitArrayPatternSegment, BitArrayPatternSize,
    BitArrayPatternSizeExpr, BitArrayPatternValue, BitArrayReturn, BitArraySegment,
    BitArrayStringPattern, BoolCaseBranches, BoolExprKind, BoolFunctionExprKind,
    BoolFunctionReference, BoolFunctionReturn, BoolListCaseBranches, BoolReturn, CaptureArg,
    CapturePosition, ConstantBitArrayFunctionInstantiation, ConstantBitArrayListInstantiation,
    ConstantBitArrayReference, ConstantBitArraySegment, ConstantBitArrayValue,
    ConstantBoolFunctionInstantiation, ConstantBoolListInstantiation, ConstantBoolReference,
    ConstantCustomFunctionInstantiation, ConstantCustomListInstantiation, ConstantCustomReference,
    ConstantExternalFunctionInstantiation, ConstantExternalListInstantiation,
    ConstantFloatFunctionInstantiation, ConstantFloatListInstantiation, ConstantFloatReference,
    ConstantFloatValue, ConstantFunctionFunctionInstantiation, ConstantFunctionInstantiation,
    ConstantFunctionListInstantiation, ConstantGenericFunctionInstantiation,
    ConstantGenericListInstantiation, ConstantInstantiation, ConstantIntFunctionInstantiation,
    ConstantIntListInstantiation, ConstantIntReference, ConstantIntValue,
    ConstantListConstructionError, ConstantListFunctionInstantiation, ConstantListInstantiation,
    ConstantListListInstantiation, ConstantNilFunctionInstantiation, ConstantNilListInstantiation,
    ConstantNilReference, ConstantParameterListListInstantiation,
    ConstantStringFunctionInstantiation, ConstantStringListInstantiation, ConstantStringReference,
    ConstantStringValue, ConstantTemplateSignature, ConstantTemplates,
    ConstantTupleFunctionInstantiation, ConstantTupleListInstantiation, ConstantTupleReference,
    ConstantUtfCodepointFunctionInstantiation, ConstantUtfCodepointListInstantiation,
    ConstantValue, CustomBindingPattern, CustomBoolCaseBranches, CustomCaseBranches,
    CustomConstruction, CustomConstructor, CustomConstructorField, CustomFieldAccess,
    CustomFunctionLocal, CustomFunctionReference, CustomFunctionReturn, CustomLocal,
    CustomLocalExpr, CustomPattern, CustomReturn, EchoSubject, Endianness, ExprKind,
    ExternalFunctionLocal, ExternalFunctionReference, ExternalFunctionReturn, ExternalLocal,
    ExternalReturn, FloatBitSize, FloatCaseBranches, FloatExprKind, FloatFunctionExprKind,
    FloatFunctionReference, FloatFunctionReturn, FloatReturn, FunctionExprKind,
    FunctionFunctionCallMismatch, FunctionFunctionLocal, FunctionFunctionReference,
    FunctionFunctionReturn, FunctionInstantiation, FunctionListExpr, FunctionReference,
    FunctionTemplateSignature, GenericExpr, GenericExprKind, GenericFunctionExpr,
    GenericFunctionExprKind, GenericFunctionLocal, GenericFunctionReference, GenericFunctionReturn,
    GenericReturn, IntCaseBranches, IntExprKind, IntFunctionExprKind, IntFunctionReference,
    IntFunctionReturn, IntReturn, ListAssertPattern, ListAssertTail, ListCaseBranches,
    ListElements, ListExpr, ListFunctionExprKind, ListFunctionReference, ListFunctionReturn,
    ListItem, ListLocalExpr, ListSpreadConstructionError, ListSpreadElements, NilExprKind,
    NilFunctionExprKind, NilFunctionReference, NilFunctionReturn, NilReturn, PanicExpr, ParamLocal,
    ParamSlot, ParameterListListExpr, ParameterListListItem, PatternBinding, ReturnBody,
    Signedness, StringAssertBinding, StringCaseBranches, StringEncoding, StringExprKind,
    StringFunctionExprKind, StringFunctionReference, StringFunctionReturn, StringReturn,
    TotalBindingPattern, TupleExprKind, TupleFunctionExprKind, TupleFunctionReference,
    TupleFunctionReturn, TupleReturn, TypeSubstitution, TypedFunctionExprKind, TypedListExpr,
    TypedListReturnKind, UtfCodepointExprKind, UtfCodepointFunctionExprKind,
    UtfCodepointFunctionReference, UtfCodepointFunctionReturn, UtfCodepointReturn,
};
pub use module::{
    BitArrayExpr, BitArrayFunctionExpr, BitArrayFunctionLocalId, BitArrayListFunctionLocalId,
    BitArrayListLocalId, BitArrayLocalId, BoolExpr, BoolFunctionExpr, BoolFunctionLocalId,
    BoolListFunctionLocalId, BoolListLocalId, BoolLocalId, CallArg, ConstantTemplate,
    ConstantTemplateId, CustomConstructorDefinition, CustomExpr, CustomFieldDefinition,
    CustomFunctionExpr, CustomFunctionLocalId, CustomListFunctionLocalId, CustomListLocalId,
    CustomLocalId, CustomTypeDefinition, CustomTypeParameterId, CustomTypePublicity,
    CustomTypeTemplate, Expr, ExternalExpr, ExternalFunctionExpr, ExternalFunctionLocalId,
    ExternalListFunctionLocalId, ExternalListLocalId, ExternalLocalId, ExternalType,
    ExternalTypeDefinition, ExternalTypeName, FloatExpr, FloatFunctionExpr, FloatFunctionLocalId,
    FloatListFunctionLocalId, FloatListLocalId, FloatLocalId, FunctionExpr, FunctionFunctionExpr,
    FunctionFunctionLocalId, FunctionListFunctionLocalId, FunctionListLocalId,
    FunctionReturnFamily, FunctionTemplate, FunctionTemplateId, GenericFunctionLocalId,
    GenericListFunctionLocalId, GenericListLocalId, GenericLocal, GenericLocalId, IntExpr,
    IntFunctionExpr, IntFunctionLocalId, IntListFunctionLocalId, IntListLocalId, IntLocalId,
    ListFunctionExpr, ListFunctionLocal, ListListFunctionLocalId, ListListLocalId, ListLocal,
    LocalId, ModuleId, ModulePlan, NilExpr, NilFunctionExpr, NilFunctionLocalId,
    NilListFunctionLocalId, NilListLocalId, NilLocalId, Param, ParamBinding, PlannedModule,
    ReturnExpr, Step, StringExpr, StringFunctionExpr, StringFunctionLocalId,
    StringListFunctionLocalId, StringListLocalId, StringLocalId, TupleExpr, TupleFunctionExpr,
    TupleFunctionLocalId, TupleListFunctionLocalId, TupleListLocalId, TupleLocalId, TypeScheme,
    UtfCodepointExpr, UtfCodepointFunctionExpr, UtfCodepointFunctionLocalId,
    UtfCodepointListFunctionLocalId, UtfCodepointListLocalId, UtfCodepointLocalId,
};
#[cfg(test)]
pub(crate) use module::{
    BitArrayFunctionFunctionId, BitArrayFunctionId, BoolFunctionFunctionId, BoolFunctionId,
    CustomFunctionFunctionId, CustomFunctionId, FloatFunctionFunctionId, FloatFunctionId,
    FunctionFunctionFunctionId, FunctionFunctionId, IntFunctionFunctionId, IntFunctionId,
    ListFunctionFunctionId, ListFunctionId, ListReturn, NilFunctionFunctionId, NilFunctionId,
    RuntimeFunctionId, StringFunctionFunctionId, StringFunctionId, TupleFunctionFunctionId,
    TupleFunctionId, UtfCodepointFunctionFunctionId, UtfCodepointFunctionId,
};
#[cfg(test)]
pub(crate) use module::{
    BitArrayListExpr, BitArrayListItem, BitArrayListReturn, BoolListExpr, BoolListItem,
    BoolListReturn, FloatListExpr, FloatListItem, FloatListReturn, FunctionListItem,
    FunctionListReturn, IntListExpr, IntListItem, IntListReturn, ListListExpr, ListListItem,
    ListListReturn, NilListExpr, NilListItem, NilListReturn, StringListExpr, StringListItem,
    StringListReturn, TupleListExpr, TupleListItem, TupleListReturn, UtfCodepointListExpr,
    UtfCodepointListItem, UtfCodepointListReturn, monomorphic_function_instantiation,
};
#[cfg(test)]
pub(crate) use module::{StepKind, StoredListExpr};
pub(crate) use source::FunctionCallTarget;
pub use source::{EchoSite, HostCallSite, PanicSite, SourceContext, SourceSpan};
pub(crate) use value_shape::{
    CustomConstructorRefinement, CustomValueShape, FunctionShape, ValueRepresentation, ValueShape,
    ValueStorageShape,
};
pub(crate) use value_type::{
    CustomFunctionType, ExternalFunctionType, FunctionFunctionType, GenericFunctionType,
};
pub use value_type::{CustomType, CustomTypeName, FunctionType, TypeParameterId, ValueType};