[Haskell-cafe] Strong duck typing / structural subtyping / type class aliases / ??? in Haskell

Casey Hawthorne caseyh at istar.ca
Fri Sep 25 18:55:11 EDT 2009

On Fri, 25 Sep 2009 23:25:21 +0200, you wrote:

>On Fri, Sep 25, 2009 at 8:14 PM, Job Vranish <jvranish at gmail.com> wrote:
>> Supposedly OCaml has an OO feature that does this but I haven't tried it
>> out.
>Indeed, OCaml has stuctural polymorphism, it's a wonderful feature.
>*# let f myobj = myobj#foo "Hi !";;
>val f : < foo : string -> 'a; .. > -> 'a = <fun>*
>IIRC, there has been work on Template Haskell for structural polymorphism.

Structural subtyping/polymorphism:

- an object can be coerced to any compatible type, the types do not
have to be specified ahead of time, that is at compile time.

- may be overly permissive; some coercions might not make sense

I wonder how Haskell will minimize the cons, since it is strongly

I forgot to add: that even if strong typing could be measured on "sum"
numerical scale, I don't know whether Haskell has a higher
"measure/metric" than OCaml, in the strong typing area.


More information about the Haskell-Cafe mailing list