<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Why Haskell Matters -&#62; Abstraction :: Multi Inheritance, Interfaces, Extension Methods and Type Classes</title>
	<atom:link href="http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/feed/" rel="self" type="application/rss+xml" />
	<link>http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/</link>
	<description>Sadek Drobi</description>
	<pubDate>Thu, 04 Dec 2008 06:43:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Karmen</title>
		<link>http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2693</link>
		<dc:creator>Karmen</dc:creator>
		<pubDate>Mon, 12 May 2008 23:33:01 +0000</pubDate>
		<guid isPermaLink="false">http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2693</guid>
		<description>CLOS is nice and quite flexible, but it doesn't give you what type classes do.


Type classes allow you to externally declare a role a particular type can play, potentially dependent on what other classes it
implements.


Type classes don't give you nifty method combinators that CLOS has, but CLOS doesn't give you the static capabilities that
typeclasses do. Two different beasts with different aims, with properties that are imho rather illustrative of their host languages.</description>
		<content:encoded><![CDATA[<p>CLOS is nice and quite flexible, but it doesn&#8217;t give you what type classes do.</p>
<p>Type classes allow you to externally declare a role a particular type can play, potentially dependent on what other classes it<br />
implements.</p>
<p>Type classes don&#8217;t give you nifty method combinators that CLOS has, but CLOS doesn&#8217;t give you the static capabilities that<br />
typeclasses do. Two different beasts with different aims, with properties that are imho rather illustrative of their host languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: foo</title>
		<link>http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2692</link>
		<dc:creator>foo</dc:creator>
		<pubDate>Mon, 12 May 2008 22:29:18 +0000</pubDate>
		<guid isPermaLink="false">http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2692</guid>
		<description>Check out the Common Lisp Object System which handles that stuff without problems. It has multiple inheritance. It has multi-methods dispatching over all args. The methods are defined outside the class and bundled as generfic functions, which are objects, too. It also allows one to define different kinds of methods (:before, :after, :primary, :around and even user defined kinds). It also allows to develop your own schemes how the applicable methods are combined, allowing all kinds of user-specified code-reuse. If there still is a need for more, the object system itself is extensible.</description>
		<content:encoded><![CDATA[<p>Check out the Common Lisp Object System which handles that stuff without problems. It has multiple inheritance. It has multi-methods dispatching over all args. The methods are defined outside the class and bundled as generfic functions, which are objects, too. It also allows one to define different kinds of methods (:before, :after, :primary, :around and even user defined kinds). It also allows to develop your own schemes how the applicable methods are combined, allowing all kinds of user-specified code-reuse. If there still is a need for more, the object system itself is extensible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marijn Schouten</title>
		<link>http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2691</link>
		<dc:creator>Marijn Schouten</dc:creator>
		<pubDate>Mon, 12 May 2008 22:14:32 +0000</pubDate>
		<guid isPermaLink="false">http://sadekdrobi.com/2008/05/12/why-haskell-matters-abstraction-multi-inheritance-interfaces-extension-methods-and-type-classes/#comment-2691</guid>
		<description>If you want a more powerful object system, then why don't you look at CLOS?</description>
		<content:encoded><![CDATA[<p>If you want a more powerful object system, then why don&#8217;t you look at CLOS?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
