I have refactored my code to use withtransparency and separate parameters for colors, sizes, transparency, etc. But I’m running into a problem. The fillTransparency parameter is a pair primary (as can be seen from the show command)

Here is a pretty minimum example (in reality there are multiple colors and transparencies passed on):

\starttext
\startMPpage[instance=doublefun]

vardef Foo( expr w, h, fillColor, fillTransparency) =
  show "FOO:", w, h, fillColor, fillTransparency;
  save pic; picture pic;
  save circ; path circ;
  circ := (fullcircle xyscaled (h,h));
  pic := image (
    fill (circ shifted (w-h/2,-h/2)) withcolor fillColor withtransparency fillTransparency;
  );
  pic
enddef;

pic := Foo( 150, 50, (0.686,1.000,1.000), (1,1.000));
draw pic;
\stopMPpage
\stoptext

and the result is:

metapost log    > >> "FOO:"
metapost log    > >> 150
metapost log    > >> 50
metapost log    > >> (0.68600000000000005,1,1)
metapost log    > >> (1,1)
metapost log    > ! Missing argument to withtransparency.
metapost log    > <to be read again> 
metapost log    >                    ((1,1))
metapost log    > <argument> ...0000005,1,1))withtransparency((1,1))
metapost log    >                                                   ;
metapost log    > image->...ture;currentpicture:=nullpicture;(TEXT3)
metapost log    >                                                   ;currentpicture.if.str(SUF...
metapost log    > 
metapost log    > Foo->...)withcolor(EXPR4)withtransparency(EXPR5);)
metapost log    >                                                   ;pic.endgroup
metapost log    > <*> ...o( 150, 50, (0.686,1.000,1.000), (1,1.000))
metapost log    >                                                   ; draw pic; ;

What am I doing wrong here?

Thanks,

G

PS. Given the complaint about asking both here and on tex.stackexchange, which of the two is the best place?