Takové nešťastně řečené. Haskell má třídy (říká jim typy) a interface (říká jim třídy). A je to dost důležitý a užívaný koncept. Snad ten nejdůležitější v Haskellu, který jej odlišuje od ostatních FP jazyků. Ne nadarmo se používá úslový: "následuj typy".
Mas celkem pravdu. Ale i Java ma typy.. nepotrebujes navic pojem trida. Typova kontrola v Haskellu je fajn, ale vsechno by slo napsat uplne stejne i bez ni (proste bychom presli od typoveho lambda kalkulu k netypovemu).
Dale, typove tridy v Haskellu jsou mocnejsi nez interface, a v podstate by se bez nich dalo obejit - misto funkce vyzadujici typovou tridu by se proste do dane funkce predal dalsi parametr, n-tice funkci, jak jsou definovane pro danou instanci typove tridy. Tedy bychom mohli typovou tridu reprezentovat jako typ - n-tici nejakych funkci, parametrizovanou typem, nad kterym je definovana ta typova trida. V tomto smyslu jsou typove tridy jen usnadneni zapisu.
Jeste se mi v souvislosti s interfacy vybavuje Eric Meijer, ktery spravne rika, ze interface je velmi slaby kontrakt. Skutecny kontrakt jsou nejake zakony, ktere plati pro funkce definovane v ramci interfacu (nebo typove tridy, chces-li). Tahle falesna predstava je IMHO jeden z duvodu, proc jsou GoF navrhove vzory tak omezene - jelikoz jejich predstava kontraktu stoji a pada s interfacem, nemohou ve finale rikat nic extra zajimaveho o tom, co se snazi popsat.