This sparks an idea for new syntax for me. How about: find/::case/::skip a b size
That way you can pick and choose which refinements will be propagated and which are hard-coded. eg: find/::case/skip a b size This means: /case is propagated if case is true /skip is always specified Anton. > But now I have another proposal, with less problems (I hope): > > a: "abcd" > b: "c" > case: true > skip: true > size: 2 > do-alt find/case/skip a b size > > the interpreter fetch the path (find/case/skip) and checks every > word in it: > > 'case > if none/false => refinement /case is false > else => refinement /case is true > > 'skip > if none/false => refinement /skip is false (size argument > will be ignored) > else => refinement /skip is true => size argument required > > My doubt is about the size argument when the refinement is none: must be > omitted or it will be ignored (not evalutaed but skipped)? > > In the latter case we can write: > > my-func: func [a b /case /skip size ][ > do-alt find/case/skip a b size > ] > > also if /skip is none, else we must manually check the skip value > in my-func > before calling find. > > I already have working mezzanine versions using a block, but i > should like to > have a do-alt native. > > --- > Ciao > Romano -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.