What if there was no block header passed to the function generator? Could we somehow sniff the types and at compile time generate it? So for instance: ``` Function printBlockString = makeFunction( REN_STD_FUNCTION, [](Block const & blk, String const & str) -> Logic { print("blk is", blk); print("str is", str); return true; } ); ``` Can we somehow make that generate the block needed for the spec? Essentially, automatically build `Block {"arg1 [block!] arg2 [string!]"}`