Eu quero escrever uma função que funciona em qualquer tipo Scala com uma ordenação total (ou seja, eu posso usar '<' nele). O que é a sintaxe para isso? O melhor que eu vim acima com é
def lessThan[T <: Ordered[T]](x: T, Y: T) = x < y
Isso não funciona, no entanto, quando eu tento usá-lo a partir do REPL:
scala> lessThan(1, 2)
<console>:8: error: inferred type arguments [Int] do not conform to method lessThan's type parameter bounds [T <: Ordered[T]]
lessThan(1, 2)
^
scala> import runtime._
import runtime._
scala> lessThan(new RichInt(1), new RichInt(2))
<console>:8: error: inferred type arguments [scala.runtime.RichInt] do not conform to method lessThan's type parameter bounds [T <: Ordered[T]]
lessThan(new RichInt(1), new RichInt(2))
Essencialmente, eu acredito que eu quero o equivalente a este código Haskell:
lessThan :: (Ord a) => a -> a -> Bool
lessThan x y = x < y
Estou usando Scala 2.7.3 em um sistema Debian.
O que estou ausente, e onde?













