Sorry. Typo. def midarrow (expr p, t) = drawarrow subpath(0,t*length(p)) of p; draw subpath(t*length(p),length(p)) of p; enddef; Troy