Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
Colin Paul Adams schrieb: Henning == Henning Thielemann lemm...@henning-thielemann.de writes: Henning On Wed, 8 Sep 2010, Gregory Crosswhite wrote: ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I believe that it is better to have the AbortT functionality available as a separate simple library specialized for this purpose than to have its functionality buried inside a more general library that is really intended to be used for a different purpose. Henning If we get rid of the notion of an exception as being Henning something bad, and instead consider an exception as being Henning early exit for whatever reason, I see no problem. E.g. you Henning may well use an exception to terminate a successful search, Henning returning the search result as exception value. So where is the exceptional nature? Is a successful conclusion to a search so exceptional? You search as long as you don't find what you are looking for. So not finding what you search seems to be the rule and finding it seems to be the exception. :-) It seems to me that you want to get rid of the notion of an exception as something exceptional, in which case it would be better to give it a different name. English is not my native tongue. If 'abort' is more appropriate than 'exception' we may rename modules from Exception to Abort. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 9/8/10 18:43 , Henning Thielemann wrote: On Wed, 8 Sep 2010, Gregory Crosswhite wrote: ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I If we get rid of the notion of an exception as being something bad, and instead consider an exception as being early exit for whatever reason, I see no problem. E.g. you may well use an exception to terminate a successful search, returning the search result as exception value. But that's not an *exception*. It's probably best referred to as a signal (of the Qt/Gtk+ variety, not the Unix one). - -- brandon s. allbery [linux,solaris,freebsd,perl] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyJM1EACgkQIn7hlCsL25VpRwCeNPcG9JVvLBqpCXCKynA4zwDe 5gIAnioNUIytSOxLiNqGv8wryOvBxWY3 =w2i0 -END PGP SIGNATURE- ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 9/9/10 12:16 , Henning Thielemann wrote: Colin Paul Adams schrieb: Henning == Henning Thielemann lemm...@henning-thielemann.de writes: Henning On Wed, 8 Sep 2010, Gregory Crosswhite wrote: ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I believe that it is better to have the AbortT functionality available as a separate simple library specialized for this purpose than to have its functionality buried inside a more general library that is really intended to be used for a different purpose. Henning If we get rid of the notion of an exception as being Henning something bad, and instead consider an exception as being Henning early exit for whatever reason, I see no problem. E.g. you Henning may well use an exception to terminate a successful search, Henning returning the search result as exception value. So where is the exceptional nature? Is a successful conclusion to a search so exceptional? You search as long as you don't find what you are looking for. So not finding what you search seems to be the rule and finding it seems to be the exception. :-) It seems to me that you want to get rid of the notion of an exception as something exceptional, in which case it would be better to give it a different name. English is not my native tongue. If 'abort' is more appropriate than 'exception' we may rename modules from Exception to Abort. Abort is even worse, as it implies *ab*normal termination (to my mind, at least, this suggests something closer to error than exception). In some sense this seems closer to Prolog's cut than any kind of exception. - -- brandon s. allbery [linux,solaris,freebsd,perl] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyJNAEACgkQIn7hlCsL25U2mwCggCsGcC1zJAjqmW+7tiXLlQ9i LGEAnig9tA2HZOc3uhVS6sDHLPuufCA2 =lmI1 -END PGP SIGNATURE- ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
Gregory Crosswhite schrieb: For whatever reason, nobody seems to have gotten around to implementing an Abort monad transformer (outside the monadLib package), so I decided to write one myself since I wanted the functionality but I use transformers rather than monadLib. Is AbortT different from ErrorT, ExceptionalT and friends? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
On 09/08/10 12:54, Henning Thielemann wrote: Gregory Crosswhite schrieb: For whatever reason, nobody seems to have gotten around to implementing an Abort monad transformer (outside the monadLib package), so I decided to write one myself since I wanted the functionality but I use transformers rather than monadLib. Is AbortT different from ErrorT, ExceptionalT and friends? Yes, for a couple of reasons. First, computations in the AbortT monad always succeed; they just might succeed earlier than expected. This contrasts with the computations in the ErrorT, etc. monads where aborting earlier is a signal that an error has occurred. Second, AbortT is not isomorphic to ErrorT because ErrorT requires that terminating early returns not just any value but a value which is an instance of Error; furthermore, even if this were not a problem, it would be a problem that pattern match failures would have the effect of stuffing a string into your value that you probably didn't want and returning it early as if it were the correct answer. ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I believe that it is better to have the AbortT functionality available as a separate simple library specialized for this purpose than to have its functionality buried inside a more general library that is really intended to be used for a different purpose. Cheers, Greg ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
On Wed, 8 Sep 2010, Gregory Crosswhite wrote: ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I believe that it is better to have the AbortT functionality available as a separate simple library specialized for this purpose than to have its functionality buried inside a more general library that is really intended to be used for a different purpose. If we get rid of the notion of an exception as being something bad, and instead consider an exception as being early exit for whatever reason, I see no problem. E.g. you may well use an exception to terminate a successful search, returning the search result as exception value. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: AbortT-transformers version 1.0
Henning == Henning Thielemann lemm...@henning-thielemann.de writes: Henning On Wed, 8 Sep 2010, Gregory Crosswhite wrote: ExceptionT is a different matter because it handles fail as an uncaught error and places no restrictions on the error type, so one could implement the same functionality as AbortT by using ExceptionalT and requiring the end result be a monadic value of type ExceptionalT e m e, where the exception and result types are the same. However, I believe that it is better to have the AbortT functionality available as a separate simple library specialized for this purpose than to have its functionality buried inside a more general library that is really intended to be used for a different purpose. Henning If we get rid of the notion of an exception as being Henning something bad, and instead consider an exception as being Henning early exit for whatever reason, I see no problem. E.g. you Henning may well use an exception to terminate a successful search, Henning returning the search result as exception value. So where is the exceptional nature? Is a successful conclusion to a search so exceptional? It seems to me that you want to get rid of the notion of an exception as something exceptional, in which case it would be better to give it a different name. -- Colin Adams Preston Lancashire () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe