BinOp
@implicitNotFound(msg = "No BinOp ${O} instance available to operate on values of type ${X} and ${Y}")
Concrete implementations of BinOp provide primitive-specialized support for performing binary operations on elements of the following objects, as well as the objects themselves:
Appropriate BinOp instances have to be made available in an implicit context in order for the org.saddle.ops.NumericOps methods inherited by the structures above to operate in a seamless fashion.
For example:
Vec(1,2,3) * Vec(4,5,6) == Vec(4,10,18)
The multiplication above relies on two BinOp implementations: the first is BinOp[Multiply, Vec, Vec, Vec], whose implementation in turn relies on BinOp[Multiply, Int, Int, Int].
class Object
trait Matchable
class Any