Interface with user-defined match monad?
if there's a match
in scope, we use this as the match strategy, assuming it conforms to MatchStrategy as defined below:
(interface: StringAdd).self
(interface: StringFormat).self
(interface: ArrowAssoc[Interface]).x
(Since version 2.10.0) Use leftOfArrow
instead
(interface: Ensuring[Interface]).x
(Since version 2.10.0) Use resultOfEnsuring
instead