Multimethods

Statically resolved multimethods. **Lacks support for polymorphic datastructure**