(broken) use lowercase names for symbols
This commit is contained in:
parent
639d70afa5
commit
1780920438
5 changed files with 55 additions and 57 deletions
|
|
@ -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 ],
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 = [
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue