import { typedFnType } from "../structures/types.js"; import { Any, Type } from "./types.js"; import { makeTypeConstructor } from "../type_constructor.js"; // A type-link, connecting a value to its Type. export const symbolDynamic = Symbol('Dynamic'); export const Dynamic = makeTypeConstructor(symbolDynamic)(0); export const getInst = lnk => lnk.i; export const getType = lnk => lnk.t; export const ModuleDynamic = {l:[ {i: Dynamic, t: Type}, {i: Any , t: Type}, ...typedFnType(getInst, fnType => fnType(Dynamic)(Any)), ...typedFnType(getType, fnType => fnType(Dynamic)(Any)), ]};