#!/usr/bin/5D let (rem) := \a \b b in let ($) := (\a \b a 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 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) := Yrec 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)