max is an interesting example because it only works if the type supports a total ordering, so it's not "completely polymorphic" in the sense that, say, reversing a list, can be.
You need the notion of a type hierarchy or type class, subtypes, e.g., 'int' is a subclass of 'totally ordered type".
For a functional programming example, (say, Standard ML) we can write fun max(a, b) = if a < b then b else a; and that looks polymorphic, but in fact, if declared at the top-level, SML will give it the int type, because "<" is not polymorphic, it is a built-in 'overloaded' operator. *However*, if the surrounding context of the definition showed that a, b or both would be a string type, then it would be typed string * string -> bool.
The interesting question here for Rune is - what is the type of '>='? does Rune support type classes?
Cheers
Andrew