allow recursive toplevel defs