Type Alias TypirServices<Specifics>

TypirServices: {
    Assignability: TypeAssignability;
    caching: {
        LanguageNodeInference: LanguageNodeInferenceCaching;
        TypeRelationships: TypeRelationshipCaching;
    };
    Conversion: TypeConversion;
    Equality: TypeEquality;
    factory: {
        Bottom: BottomFactoryService<Specifics>;
        Classes: ClassFactoryService<Specifics>;
        Functions: FunctionFactoryService<Specifics>;
        Operators: OperatorFactoryService<Specifics>;
        Primitives: PrimitiveFactoryService<Specifics>;
        Top: TopFactoryService<Specifics>;
    };
    Inference: TypeInferenceCollector<Specifics>;
    infrastructure: {
        Graph: TypeGraph;
        GraphAlgorithms: GraphAlgorithms;
        Kinds: KindRegistry<Specifics>;
        TypeResolver: TypeResolvingService<Specifics>;
    };
    Language: LanguageService<Specifics>;
    Printer: ProblemPrinter<Specifics>;
    Subtype: SubType;
    validation: {
        Collector: ValidationCollector<Specifics>;
        Constraints: ValidationConstraints<Specifics>;
    };
}

Some open design questions for future releases TODO

  • How to bundle Typir configurations for reuse ("presets")?

Type Parameters

Type declaration