@nharmann, I just had a look in their example and ...
# language-proposals
b
@nharmann, I just had a look in their example and its kinda scary to be honest (maybe because I don’t know nothing about multi-methods). After looking in their example, multimethods allow methods to be called as long as they implement a base class or interface. This allows for less clear code constructs. In their example (http://nice.sourceforge.net/visitor.html), operands, literals and expressions are all put under the same sack. In other words, an interface is used to identify types that have to be casted up to other different types. Because of it, Nice will have to check the instance type before it actually calls the expected method. Assuming their example , what happens when you have something like:
Copy code
class BigDec extends IntExp {}

prettyPrint(BigDec e) {
...
}
Will it call prettyPrint for BigDec or for IntExp?