dope2/lib/symbol.js

22 lines
560 B
JavaScript

import { constructSymbol, eqSymbol, getName } from "../primitives/symbol.js";
import { Bool, SymbolT, Type } from "../primitives/types.js";
import { String } from "../structures/list.js";
import { typedFnType } from "../structures/types.js";
export const ModuleSymbol = {l:[
{i: SymbolT, t: Type},
...typedFnType(constructSymbol, fnType =>
fnType
(String)
(SymbolT)
),
...typedFnType(getName, fnType =>
fnType
(SymbolT)
(String)
),
...typedFnType(eqSymbol, fnType => fnType(SymbolT, fnType(SymbolT, Bool))),
]};