On Wed, Aug 12, 2020 at 8:12 AM Tobias Boege <[email protected]> wrote:
> [...]
> > Would a custom version of the trait_mod:<is> routine do the trick?
>
> Yes:
>
> multi trait_mod:<is> (Routine $r, :$equivalence!) {
> trait_mod:<is>($r, :equiv(&infix:<==>));
> trait_mod:<is>($r, :assoc<chain>);
> }
As a supplementary question: is it possible to build up trait
modifications from simpler ones? Something like:
multi trait_mod:<is> (Routine \routine, :$equality!) {
trait_mod:<is>(routine, :equiv(&infix:<==>));
}
multi trait_mod:<is> (Routine \routine, :$chainable!) {
trait_mod:<is>(routine, :assoc<chain>);
}
multi trait_mod:<is> (Routine \routine, :$equivalence!) {
{magic to ensure routine is equality and routine is chainable}
}
Although I'm not yet sure that's a good idea.
Thanks,
Stu