sentence: support in programming languages programming languages that support general multimethods : common lisp ( via the common lisp object system ) haskell via multi-parameter type classes scala , also via multi-parameter type classes dylan nice cecil r julia groovy perl 6 seed7 clojure c # 4.0 fortress tads multimethods in other programming languages via extensions : scheme ( via e.g. ) python ( via , , , or ) perl ( via the module ) java ( using the extension ) ruby ( via the library and and ) .net ( via the library ) c# ( via the library ) c++ ( via the library ) factor ( via the standard ) also , multi-parameter type classes in haskell and scala can be used to emulate multiple dispatch .