They must complain about generics and members' declarations with or without implementation.
Examples:
traitMonad[U]:// generic type U
map(U=>?V):Monand[V] // generic type V
flatMap(U=>Monad[?V]):Monand[V]
flatMap(u: U=>Monad[?V]):Monand[V] = u(???) // ??? equals to unimplementedtraitMonad[U]:// generic type U
map(U=>?V):Monand[V] // generic type V equals to == map[V](U => V): Monand[V]
flatMap(U=>Monad[?V]):Monand[V]
flatMap(u: U=>Monad[?V]):Monand[V] =
u(???) // ??? equals to unimplemented
They must complain about generics and members' declarations with or without implementation.
Examples: