Apply the body of this function to the argument.
Apply the body of this function to the argument.
the result of function application.
Composes two instances of Function1 in a new Function1, with this function applied first.
Composes two instances of Function1 in a new Function1, with this function applied first.
the result type of function g
a function R => A
a new function f
such that f(x) == g(apply(x))
Composes two instances of Function1 in a new Function1, with this function applied last.
Composes two instances of Function1 in a new Function1, with this function applied last.
the type to which function g
can be applied
a function A => T1
a new function f
such that f(x) == apply(g(x))
An instance of
A <:< B
witnesses thatA
is a subtype ofB
. Requiring an implicit argument of the typeA <:< B
encodes the generalized constraintA <: B
.we need a new type constructor
<:<
and evidenceconforms
, as reusingFunction1
andidentity
leads to ambiguities in case of type errors (any2stringadd
is inferred) To constrain any abstract type T that's in scope in a method's argument list (not just the method's own type parameters) simply add an implicit argument of typeT <:< U
, whereU
is the required upper bound; or for lower-bounds, use:L <:< T
, whereL
is the required lower bound. In part contributed by Jason Zaugg.