[Haskell-cafe] A home-brew iteration-alike library: some extension quiestions

Henning Thielemann schlepptop at henning-thielemann.de
Sat Dec 11 14:19:52 CET 2010


John Millikin schrieb:
> On Thu, Dec 9, 2010 at 12:43, Michael Snoyman <michael at snoyman.com> wrote:
>> For the record, enumerator (and I believe iteratee as well) uses
>> transformers, not mtl. transformers itself is Haskell98; all FunDep
>> code is separated out to monads-fd.
>>
>> Michael
> 
> iteratee also uses 'transformers', but requires several extensions;
> see < http://hackage.haskell.org/packages/archive/iteratee/0.6.0.1/doc/html/src/Data-Iteratee-Base.html
> 
> It seems silly to avoid extensions, though; every non-trivial package
> on Hackage depends on them, either directly or via a dependency. For
> example, though 'enumerator' requires no extensions itself, it depends
> on both 'text' and 'bytestring', which require a ton of them.

It's not silly. If you want to use other compilers like JHC, you are
lucky if the used packages are simply Haskell 98. Haskell 98 is already
complicated enough. I am often very annoyed if a package imports only a
simple utility function from another package that in turn depends on
multiple packages that in the end require all available GHC extensions.
Also using a GHC extension is often the consequence of a design flaw.
E.g. (instance C String where) is possible, but the Haskell 98 solutions
to it are usually cleaner. My slogan is: Solve simple problems the
simple way. Most of my packages are Haskell 98.

http://www.haskell.org/haskellwiki/Use_of_language_extensions



More information about the Haskell-Cafe mailing list