fn function_signature<M: Module>( emitter: &Emitter<M>, function: &FnDef, ) -> Signature
Nifty functions take the context, then each argument as a slot, then where to write their result, and return whether they succeeded.