From 178092043832f6a9edf2ed6eebaa365351ddfda7 Mon Sep 17 00:00:00 2001 From: Joeri Exelmans Date: Sat, 10 May 2025 09:19:40 +0200 Subject: [PATCH] (broken) use lowercase names for symbols --- lib/compare/dynamic.js | 24 ++++++------ lib/primitives/primitive_types.js | 50 ++++++++++++------------- lib/primitives/primitive_types.types.js | 26 ++++++------- lib/stdlib.js | 6 +-- lib/structures/sum.types.js | 6 +-- 5 files changed, 55 insertions(+), 57 deletions(-) diff --git a/lib/compare/dynamic.js b/lib/compare/dynamic.js index 72a18ba..35d6a96 100644 --- a/lib/compare/dynamic.js +++ b/lib/compare/dynamic.js @@ -1,5 +1,5 @@ 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 { symbolDictIterator } from "../structures/dict.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 typeSymbolToCmp = new Map([ - [SymbolInt , compareInts ], - [SymbolBool , compareBools ], - [SymbolDouble , compareDoubles ], - [SymbolByte , compareDoubles ], - [SymbolChar , compareStrings ], - [SymbolUnit , compareUnits ], - [SymbolBottom , _ => _ => { throw new Error("Bottom!"); }], - [SymbolUUID , compareSymbols ], + [symbolInt , compareInts ], + [symbolBool , compareBools ], + [symbolDouble , compareDoubles ], + [symbolByte , compareDoubles ], + [symbolChar , compareStrings ], + [symbolUnit , compareUnits ], + [symbolBottom , _ => _ => { throw new Error("Bottom!"); }], + [symbolUUID , compareSymbols ], // [SymbolGenericType, ?] TODO - [SymbolType , compareTypes ], - [SymbolDynamic , compareDynamic ], - [SymbolOrdering, compareOrderings], + [symbolType , compareTypes ], + [symbolDynamic , compareDynamic ], + [symbolOrdering, compareOrderings], // these functions take extra comparison callbacks: [symbolFunction , compareFunctions ], diff --git a/lib/primitives/primitive_types.js b/lib/primitives/primitive_types.js index c11f819..110f7ff 100644 --- a/lib/primitives/primitive_types.js +++ b/lib/primitives/primitive_types.js @@ -2,41 +2,39 @@ import { makeTypeConstructor } from "../meta/type_constructor.js"; -export const SymbolInt = "Int__02a884563f7d480bb14c09be640dfe7a"; -export const SymbolBool = "Bool__d64c4865bead40439dad62727aaaac2d"; -export const SymbolDouble = "Double__be70f3c8f53f4419a7866d106faae091"; -export const SymbolByte = "Byte__bf9e8453cd554e81971880ba33dc9f27"; -export const SymbolChar = "Char__e47159519d3345119336b751fc8da1de"; -export const SymbolUnit = "Unit__a70ca021c32a4036a594d332aedfb029"; -export const SymbolBottom = "⊥__95beece951bc457781be8c5481d35dcc"; -export const SymbolUUID = "UUID__f67c077430e04e4fa40ed2e2b2a3040d"; -export const SymbolType = "Type__fdbea309d66f49b483b0dd4ceb785f7d"; -export const SymbolTop = "⊤__38709c3c0039468782103256d4730d1f"; -export const SymbolDynamic = "Dynamic__3c16c415dba94228ada37dc9d446f54f"; +export const symbolInt = "Int__02a884563f7d480bb14c09be640dfe7a"; +export const symbolBool = "Bool__d64c4865bead40439dad62727aaaac2d"; +export const symbolDouble = "Double__be70f3c8f53f4419a7866d106faae091"; +export const symbolByte = "Byte__bf9e8453cd554e81971880ba33dc9f27"; +export const symbolChar = "Char__e47159519d3345119336b751fc8da1de"; +export const symbolUnit = "Unit__a70ca021c32a4036a594d332aedfb029"; +export const symbolBottom = "⊥__95beece951bc457781be8c5481d35dcc"; +export const symbolUUID = "UUID__f67c077430e04e4fa40ed2e2b2a3040d"; +export const symbolType = "Type__fdbea309d66f49b483b0dd4ceb785f7d"; +export const symbolTop = "⊤__38709c3c0039468782103256d4730d1f"; +export const symbolDynamic = "Dynamic__3c16c415dba94228ada37dc9d446f54f"; +export const symbolOrdering = "Ordering__a11578cc83352023f16ffa2d060c52c2"; - -export const SymbolOrdering = "Ordering__a11578cc83352023f16ffa2d060c52c2"; - -export const Int = makeTypeConstructor(SymbolInt)(0); -export const Bool = makeTypeConstructor(SymbolBool)(0); -export const Double = makeTypeConstructor(SymbolDouble)(0); -export const Byte = makeTypeConstructor(SymbolByte)(0); -export const Char = makeTypeConstructor(SymbolChar)(0); +export const Int = makeTypeConstructor(symbolInt)(0); +export const Bool = makeTypeConstructor(symbolBool)(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. -export const Unit = makeTypeConstructor(SymbolUnit)(0); +export const Unit = makeTypeConstructor(symbolUnit)(0); // 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 -export const Type = makeTypeConstructor(SymbolType)(0); +export const Type = makeTypeConstructor(symbolType)(0); // 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); diff --git a/lib/primitives/primitive_types.types.js b/lib/primitives/primitive_types.types.js index 3a570a0..b39407a 100644 --- a/lib/primitives/primitive_types.types.js +++ b/lib/primitives/primitive_types.types.js @@ -1,19 +1,19 @@ 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 = [ - ["SymbolInt" , newDynamic(SymbolInt )(UUID)], - ["SymbolBool" , newDynamic(SymbolBool )(UUID)], - ["SymbolDouble" , newDynamic(SymbolDouble )(UUID)], - ["SymbolByte" , newDynamic(SymbolByte )(UUID)], - ["SymbolChar" , newDynamic(SymbolChar )(UUID)], - ["SymbolUnit" , newDynamic(SymbolUnit )(UUID)], - ["SymbolBottom" , newDynamic(SymbolBottom )(UUID)], - ["SymbolUUID" , newDynamic(SymbolUUID )(UUID)], - ["SymbolType" , newDynamic(SymbolType )(UUID)], - ["SymbolTop" , newDynamic(SymbolTop )(UUID)], - ["SymbolDynamic" , newDynamic(SymbolDynamic )(UUID)], - ["SymbolOrdering", newDynamic(SymbolOrdering)(UUID)], + ["symbolInt" , newDynamic(symbolInt )(UUID)], + ["symbolBool" , newDynamic(symbolBool )(UUID)], + ["symbolDouble" , newDynamic(symbolDouble )(UUID)], + ["symbolByte" , newDynamic(symbolByte )(UUID)], + ["symbolChar" , newDynamic(symbolChar )(UUID)], + ["symbolUnit" , newDynamic(symbolUnit )(UUID)], + ["symbolBottom" , newDynamic(symbolBottom )(UUID)], + ["symbolUUID" , newDynamic(symbolUUID )(UUID)], + ["symbolType" , newDynamic(symbolType )(UUID)], + ["symbolTop" , newDynamic(symbolTop )(UUID)], + ["symbolDynamic" , newDynamic(symbolDynamic )(UUID)], + ["symbolOrdering", newDynamic(symbolOrdering)(UUID)], ]; export const ModulePrimitiveTypes = [ diff --git a/lib/stdlib.js b/lib/stdlib.js index 2ed9836..c1e7469 100644 --- a/lib/stdlib.js +++ b/lib/stdlib.js @@ -36,10 +36,10 @@ export const ModuleStd = [ ...ModuleUnit, // Operations on Structures - ...ModuleDict, - ...ModuleList, + ...ModuleDict.map(([name, dynamic]) => ["dict."+name, dynamic]), + ...ModuleList.map(([name, dynamic]) => ["list."+name, dynamic]), ...ModuleProduct, - ...ModuleSet, + ...ModuleSet.map(([name, dynamic]) => ["set."+name, dynamic]), ...ModuleSum, // Comparison diff --git a/lib/structures/sum.types.js b/lib/structures/sum.types.js index 64aaae2..1597fa1 100644 --- a/lib/structures/sum.types.js +++ b/lib/structures/sum.types.js @@ -5,7 +5,7 @@ import { match, newLeft, newRight } from "./sum.js"; const mkType = getDefaultTypeParser(); export const ModuleSum = [ - ["newLeft" , newDynamic(newLeft )(mkType("a -> (a + b)" ))], - ["newRight" , newDynamic(newRight )(mkType("b -> (a + b)" ))], - ["match" , newDynamic(match )(mkType("(a + b) -> (a -> c) -> (b -> c) -> c"))], + ["newLeft" , newDynamic(newLeft )(mkType("a -> (a + b)" ))], + ["newRight", newDynamic(newRight)(mkType("b -> (a + b)" ))], + ["match" , newDynamic(match )(mkType("(a + b) -> (a -> c) -> (b -> c) -> c"))], ];