Attached is another variant of the extensible exceptions idea, it
improves on the previous designs in a couple of ways:  there's only one
catch & throw, regardless of what type you're throwing or catching.
There is an extensible hierarchy of exceptions, and you can catch and
re-throw subclasses of exceptions.

So this design contains a dynamically-typed extensible hierarchy, but
it's fairly lightweight.  Adding a new leaf exception type requires 3
lines + 1 line for each superclass (just 1 line for a top level leaf, as
before).  Adding a new node requires about 10 lines + 1 line for each
superclass, msotly boilerplate.

Perhaps the type class hackers can do better than this!

Cheers,
        Simon

Attachment: Exception-2.hs
Description: Exception-2.hs

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to