import { $, Term, _, _l, g, n, _r as ref } from './core'; n('ord'); export const enum NOrd { LT, EQ, GT, }; export const LT = g('LT', _l(lt => _l(_ => _l(_ => lt)))); export const EQ = g('EQ', _l(_ => _l(eq => _l(_ => eq)))); export const GT = g('GT', _l(_ => _l(_ => _l(gt => gt)))); export const eq = g('eq', _l(l => _l(r => l ._(r._(ref('bool', 'True'))._(ref('bool', 'False'))._(ref('bool', 'False'))) ._(r._(ref('bool', 'False'))._(ref('bool', 'True'))._(ref('bool', 'False'))) ._(r._(ref('bool', 'False'))._(ref('bool', 'False'))._(ref('bool', 'True')))))); export const fromNOrd: (o: NOrd) => Term = o => o === NOrd.LT ? LT : o === NOrd.EQ ? EQ : GT; export const toNOrd: (o: Term) => NOrd = o => $(o._(_(NOrd.LT))._(_(NOrd.EQ))._(_(NOrd.GT)).reduce());