(broken) use lowercase names for symbols

This commit is contained in:
Joeri Exelmans 2025-05-10 09:19:40 +02:00
parent 639d70afa5
commit 1780920438
5 changed files with 55 additions and 57 deletions

View file

@ -1,5 +1,5 @@
import { getInst, getType } from "../primitives/dynamic.js"; import { getInst, getType } from "../primitives/dynamic.js";
import { SymbolBool, SymbolBottom, SymbolByte, SymbolChar, SymbolDouble, SymbolDynamic, SymbolInt, SymbolUUID, SymbolType, SymbolUnit, SymbolOrdering } from "../primitives/primitive_types.js"; import { symbolBool, symbolBottom, symbolByte, symbolChar, symbolDouble, symbolDynamic, symbolInt, symbolUUID, symbolType, symbolUnit, symbolOrdering } from "../primitives/primitive_types.js";
import { UNBOUND_SYMBOLS } from "../primitives/typevars.js"; import { UNBOUND_SYMBOLS } from "../primitives/typevars.js";
import { symbolDictIterator } from "../structures/dict.types.js"; import { symbolDictIterator } from "../structures/dict.types.js";
import { symbolSetIterator } from "../structures/set.types.js"; import { symbolSetIterator } from "../structures/set.types.js";
@ -16,18 +16,18 @@ export const compareDynamic = x => y =>
const cannotCompareTypeVarInstances = _ => _ => { throw new Error("Cannot compare instance of type variables"); } const cannotCompareTypeVarInstances = _ => _ => { throw new Error("Cannot compare instance of type variables"); }
const typeSymbolToCmp = new Map([ const typeSymbolToCmp = new Map([
[SymbolInt , compareInts ], [symbolInt , compareInts ],
[SymbolBool , compareBools ], [symbolBool , compareBools ],
[SymbolDouble , compareDoubles ], [symbolDouble , compareDoubles ],
[SymbolByte , compareDoubles ], [symbolByte , compareDoubles ],
[SymbolChar , compareStrings ], [symbolChar , compareStrings ],
[SymbolUnit , compareUnits ], [symbolUnit , compareUnits ],
[SymbolBottom , _ => _ => { throw new Error("Bottom!"); }], [symbolBottom , _ => _ => { throw new Error("Bottom!"); }],
[SymbolUUID , compareSymbols ], [symbolUUID , compareSymbols ],
// [SymbolGenericType, ?] TODO // [SymbolGenericType, ?] TODO
[SymbolType , compareTypes ], [symbolType , compareTypes ],
[SymbolDynamic , compareDynamic ], [symbolDynamic , compareDynamic ],
[SymbolOrdering, compareOrderings], [symbolOrdering, compareOrderings],
// these functions take extra comparison callbacks: // these functions take extra comparison callbacks:
[symbolFunction , compareFunctions ], [symbolFunction , compareFunctions ],

View file

@ -2,41 +2,39 @@
import { makeTypeConstructor } from "../meta/type_constructor.js"; import { makeTypeConstructor } from "../meta/type_constructor.js";
export const SymbolInt = "Int__02a884563f7d480bb14c09be640dfe7a"; export const symbolInt = "Int__02a884563f7d480bb14c09be640dfe7a";
export const SymbolBool = "Bool__d64c4865bead40439dad62727aaaac2d"; export const symbolBool = "Bool__d64c4865bead40439dad62727aaaac2d";
export const SymbolDouble = "Double__be70f3c8f53f4419a7866d106faae091"; export const symbolDouble = "Double__be70f3c8f53f4419a7866d106faae091";
export const SymbolByte = "Byte__bf9e8453cd554e81971880ba33dc9f27"; export const symbolByte = "Byte__bf9e8453cd554e81971880ba33dc9f27";
export const SymbolChar = "Char__e47159519d3345119336b751fc8da1de"; export const symbolChar = "Char__e47159519d3345119336b751fc8da1de";
export const SymbolUnit = "Unit__a70ca021c32a4036a594d332aedfb029"; export const symbolUnit = "Unit__a70ca021c32a4036a594d332aedfb029";
export const SymbolBottom = "⊥__95beece951bc457781be8c5481d35dcc"; export const symbolBottom = "⊥__95beece951bc457781be8c5481d35dcc";
export const SymbolUUID = "UUID__f67c077430e04e4fa40ed2e2b2a3040d"; export const symbolUUID = "UUID__f67c077430e04e4fa40ed2e2b2a3040d";
export const SymbolType = "Type__fdbea309d66f49b483b0dd4ceb785f7d"; export const symbolType = "Type__fdbea309d66f49b483b0dd4ceb785f7d";
export const SymbolTop = "__38709c3c0039468782103256d4730d1f"; export const symbolTop = "__38709c3c0039468782103256d4730d1f";
export const SymbolDynamic = "Dynamic__3c16c415dba94228ada37dc9d446f54f"; export const symbolDynamic = "Dynamic__3c16c415dba94228ada37dc9d446f54f";
export const symbolOrdering = "Ordering__a11578cc83352023f16ffa2d060c52c2";
export const Int = makeTypeConstructor(symbolInt)(0);
export const SymbolOrdering = "Ordering__a11578cc83352023f16ffa2d060c52c2"; export const Bool = makeTypeConstructor(symbolBool)(0);
export const Double = makeTypeConstructor(symbolDouble)(0);
export const Int = makeTypeConstructor(SymbolInt)(0); export const Byte = makeTypeConstructor(symbolByte)(0);
export const Bool = makeTypeConstructor(SymbolBool)(0); export const Char = makeTypeConstructor(symbolChar)(0);
export const Double = makeTypeConstructor(SymbolDouble)(0);
export const Byte = makeTypeConstructor(SymbolByte)(0);
export const Char = makeTypeConstructor(SymbolChar)(0);
// Unit type has only 1 instance, the empty tuple. // Unit type has only 1 instance, the empty tuple.
export const Unit = makeTypeConstructor(SymbolUnit)(0); export const Unit = makeTypeConstructor(symbolUnit)(0);
// Bottom type has no instances. // Bottom type has no instances.
export const Bottom = makeTypeConstructor(SymbolBottom)(0); export const Bottom = makeTypeConstructor(symbolBottom)(0);
export const UUID = makeTypeConstructor(SymbolUUID)(0); export const UUID = makeTypeConstructor(symbolUUID)(0);
// Types are typed by Top // Types are typed by Top
export const Type = makeTypeConstructor(SymbolType)(0); export const Type = makeTypeConstructor(symbolType)(0);
// Everything is typed by Top // Everything is typed by Top
export const Top = makeTypeConstructor(SymbolTop)(0);// A type-link, connecting a value to its Type. export const Top = makeTypeConstructor(symbolTop)(0);// A type-link, connecting a value to its Type.
export const Dynamic = makeTypeConstructor(SymbolDynamic)(0); export const Dynamic = makeTypeConstructor(symbolDynamic)(0);
export const Ordering = makeTypeConstructor(SymbolOrdering)(0); export const Ordering = makeTypeConstructor(symbolOrdering)(0);

View file

@ -1,19 +1,19 @@
import { newDynamic } from "./dynamic.js"; import { newDynamic } from "./dynamic.js";
import { SymbolInt, UUID, SymbolBool, SymbolDouble, SymbolByte, SymbolChar, SymbolUnit, SymbolBottom, SymbolUUID, SymbolType, SymbolTop, Type, Int, Bool, Double, Byte, Char, Unit, Bottom, Top, SymbolDynamic, Dynamic, SymbolOrdering, Ordering } from "./primitive_types.js"; import { symbolInt, UUID, symbolBool, symbolDouble, symbolByte, symbolChar, symbolUnit, symbolBottom, symbolUUID, symbolType, symbolTop, Type, Int, Bool, Double, Byte, Char, Unit, Bottom, Top, symbolDynamic, Dynamic, symbolOrdering, Ordering } from "./primitive_types.js";
export const ModulePrimitiveSymbols = [ export const ModulePrimitiveSymbols = [
["SymbolInt" , newDynamic(SymbolInt )(UUID)], ["symbolInt" , newDynamic(symbolInt )(UUID)],
["SymbolBool" , newDynamic(SymbolBool )(UUID)], ["symbolBool" , newDynamic(symbolBool )(UUID)],
["SymbolDouble" , newDynamic(SymbolDouble )(UUID)], ["symbolDouble" , newDynamic(symbolDouble )(UUID)],
["SymbolByte" , newDynamic(SymbolByte )(UUID)], ["symbolByte" , newDynamic(symbolByte )(UUID)],
["SymbolChar" , newDynamic(SymbolChar )(UUID)], ["symbolChar" , newDynamic(symbolChar )(UUID)],
["SymbolUnit" , newDynamic(SymbolUnit )(UUID)], ["symbolUnit" , newDynamic(symbolUnit )(UUID)],
["SymbolBottom" , newDynamic(SymbolBottom )(UUID)], ["symbolBottom" , newDynamic(symbolBottom )(UUID)],
["SymbolUUID" , newDynamic(SymbolUUID )(UUID)], ["symbolUUID" , newDynamic(symbolUUID )(UUID)],
["SymbolType" , newDynamic(SymbolType )(UUID)], ["symbolType" , newDynamic(symbolType )(UUID)],
["SymbolTop" , newDynamic(SymbolTop )(UUID)], ["symbolTop" , newDynamic(symbolTop )(UUID)],
["SymbolDynamic" , newDynamic(SymbolDynamic )(UUID)], ["symbolDynamic" , newDynamic(symbolDynamic )(UUID)],
["SymbolOrdering", newDynamic(SymbolOrdering)(UUID)], ["symbolOrdering", newDynamic(symbolOrdering)(UUID)],
]; ];
export const ModulePrimitiveTypes = [ export const ModulePrimitiveTypes = [

View file

@ -36,10 +36,10 @@ export const ModuleStd = [
...ModuleUnit, ...ModuleUnit,
// Operations on Structures // Operations on Structures
...ModuleDict, ...ModuleDict.map(([name, dynamic]) => ["dict."+name, dynamic]),
...ModuleList, ...ModuleList.map(([name, dynamic]) => ["list."+name, dynamic]),
...ModuleProduct, ...ModuleProduct,
...ModuleSet, ...ModuleSet.map(([name, dynamic]) => ["set."+name, dynamic]),
...ModuleSum, ...ModuleSum,
// Comparison // Comparison