patch 7.4.2137
Problem:    Using function() with a name will find another function when it is
            redefined.
Solution:   Add funcref().  Refer to lambda using a partial.  Fix several
            reference counting issues.
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index daec6b0..7a462ad 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -3134,7 +3134,7 @@
 	    /* FIXME: func_ref() and func_unref() are needed. */
 	    /* TODO: Support pt_dict and pt_argv. */
 	    funcname = scheme_make_byte_string(
-		    (char *)vim_value->vval.v_partial->pt_name);
+			      (char *)partial_name(vim_value->vval.v_partial));
 	    MZ_GC_CHECK();
 	    result = scheme_make_closed_prim_w_arity(vim_funcref, funcname,
 		    (const char *)BYTE_STRING_VALUE(funcname), 0, -1);