17 lines
829 B
JavaScript
17 lines
829 B
JavaScript
// to break up dependency cycles, primitive types are defined in their own JS module
|
|
|
|
import { makeTypeConstructor } from "../type_constructor.js";
|
|
import { constructSymbol } from "./symbol.js";
|
|
|
|
export const Int = makeTypeConstructor(constructSymbol('Int'), 0);
|
|
export const Bool = makeTypeConstructor(constructSymbol('Bool'), 0);
|
|
export const Double = makeTypeConstructor(constructSymbol('Double'), 0);
|
|
export const Byte = makeTypeConstructor(constructSymbol('Byte'), 0);
|
|
export const Char = makeTypeConstructor(constructSymbol('Char'), 0);
|
|
|
|
// Unit type has only 1 instance, the empty tuple.
|
|
export const Unit = makeTypeConstructor(constructSymbol('Unit'), 0);
|
|
|
|
export const SymbolT = makeTypeConstructor(constructSymbol('Symbol'), 0);
|
|
|
|
export const Type = makeTypeConstructor(constructSymbol('Type'), 0);
|