|
|
|
|
|
by creichert
4031 days ago
|
|
OCaml modules have many similar characteristics to Haskell type class[0]. One of the primary differences being that the Haskell type classes handle dictionary passing automatically and support ad-hoc polymorphism. This can be achieved with ML modules but requires bit more labor. Haskell type classes can make it a bit easier to encode (and infer) interfaces but assume a single implementation per data type. ML modules do not make this assumption and support a higher degree of modularity as a result. Robert Harper has some extremely good writing out there on this topic (and many more):
https://existentialtype.wordpress.com/2011/04/16/modules-mat... [0] - http://www.mpi-sws.org/~dreyer/papers/mtc/main-long.pdf |
|