i had added recursion support for functions but then decided to remove it again and keep nudl stackless. you also can't forward declare functions.
this is mostly so (a) we keep parity with what shaders support (which are stackless) (b) users don't try to solve problems with functions that tables and cases are better suited for, and then run into stack overflows and parallelization issues later.

