dope2/lib/stdlib.js

58 lines
2.1 KiB
JavaScript

import { ModuleDouble } from "./primitives/double.types.js";
import { ModuleDynamic } from "./primitives/dynamic.types.js";
import { ModuleInt } from "./primitives/int.types.js";
import { ModulePrimitiveSymbols, ModulePrimitiveTypes } from "./primitives/primitive_types.types.js";
import { ModuleSymbol } from "./primitives/symbol.types.js";
import { ModuleType } from "./primitives/type.types.js";
import { ModuleUnit } from "./primitives/unit.types.js";
import { ModuleDict } from "./structures/dict.types.js"
import { ModuleList } from "./structures/list.types.js"
import { ModuleProduct } from "./structures/product.types.js"
import { ModuleSet } from "./structures/set.types.js"
import { ModuleSum } from "./structures/sum.types.js"
import { ModuleStructuralSymbols, ModuleTypeConstructors } from "./structures/type_constructors.types.js";
import { ModuleCompareTypes } from "./compare/type.types.js";
import { ModuleComparePrimitives } from "./compare/primitives.types.js";
import { ModuleCompareStructures } from "./compare/structures.types.js";
import { ModuleCompareDynamic } from "./compare/dynamic.types.js";
import { ModuleVersioning } from "./versioning/value_slot.js";
import { ModuleMerge } from "./versioning/merge.js";
import { ModuleVersioningCompare } from "./versioning/compare.js";
export const ModuleStd = [
// Symbols (for nominal types)
...ModulePrimitiveSymbols,
...ModuleStructuralSymbols,
// Nominal types
...ModulePrimitiveTypes,
...ModuleTypeConstructors,
// Operations on Primitives
...ModuleDouble,
...ModuleDynamic,
...ModuleInt,
...ModuleSymbol,
...ModuleType,
...ModuleUnit,
// Operations on Structures
...ModuleDict.map(([name, dynamic]) => ["dict."+name, dynamic]),
...ModuleList.map(([name, dynamic]) => ["list."+name, dynamic]),
...ModuleProduct,
...ModuleSet.map(([name, dynamic]) => ["set."+name, dynamic]),
...ModuleSum,
// Comparison
...ModuleCompareTypes,
...ModuleComparePrimitives,
...ModuleCompareStructures,
...ModuleCompareDynamic,
// Versioning
...ModuleVersioning,
...ModuleMerge,
...ModuleVersioningCompare,
];