import { fnType } from "../type_registry.js"; import {Type, Function} from "../metacircular.js"; import {Bool, Int} from "./symbols.js"; export const addInt = x => y => x + y; export const mulInt = x => y => x * y; export const eqInt = x => y => x === y; const Int_to_Int = fnType({in: Int, out: Int }); const Int_to_Bool = fnType({in: Int, out: Bool}); export const Int_to_Int_to_Int = fnType({in: Int, out: Int_to_Int}); export const Int_to_Int_to_Bool = fnType({in: Int, out: Int_to_Bool}); export const ModuleInt = [ {i: Int , t: Type }, {i: Int_to_Int_to_Int , t: Function }, {i: Int_to_Int_to_Bool , t: Function }, {i: Int_to_Int , t: Function }, {i: Int_to_Bool , t: Function }, {i: addInt , t: Int_to_Int_to_Int }, {i: mulInt , t: Int_to_Int_to_Int }, {i: eqInt , t: Int_to_Int_to_Bool }, ];