Allow input & output variables to share the same name.
Allow custom variable name for 'length' variables.
Move FFI wrap/unwrap logic.