#!/usr/bin/5D let (rem) := lazy\a lazy\b b in rem "make sure NOT to use complicated operators here. The operator precedence lists have to be able to require this module without circular dependencies." $ import [(if) (else) (:) nil (,)] from Builtins in let raiseMissingSymbolError2 := \mod \key if(Builtins.symbolsEqual? key 'exports) [] else [mod "missing symbol" key] in let raiseMissingSymbolError := raiseMissingSymbolError2 "" in let (|) := \a \b b a in let ($) := \a \b a b in let compose := \f \g \x f (g x) in let flip := \f \a \b f b a in let id := \f f in let Yrec := \f (\x f (x x)) (\x f (x x)) in let Zrec := \f (\x f (\v x x v)) (\x f (\v x x v)) in let (rec) := Zrec in let (export) := id in let makeModuleBox := Builtins.makeModuleBox in let dispatch := Builtins.dispatchModule in let dispatch1 := \table dispatch table raiseMissingSymbolError in let withInterface1 := \filename \table dispatch table (raiseMissingSymbolError filename) in dispatch (#exports[(|) ($) compose flip id (rec) (rem) (export) dispatch raiseMissingSymbolError raiseMissingSymbolError2 dispatch1 withInterface1]) (raiseMissingSymbolError2 filename)