[Haskell-cafe] better way to do this?
John A. De Goes
john at n-brain.net
Wed Oct 7 11:01:51 EDT 2009
It's a complex area not a lot of people are working in. Similar
(actually worse than) dependent typing.
John A. De Goes
The Evolution of Collaboration
http://www.n-brain.net | 877-376-2724 x 101
On Oct 7, 2009, at 3:32 AM, Eugene Kirpichov wrote:
> Or you can use an effect system (however that doesn't give you the
> opportunity of overriding IO functions, but I think that providing
> such an opportunity with the means you suggest (splitting IO into many
> sub-monads) is not going to be usable in the large scale)
> By the way, I am surprised that there seems to not exist any
> non-purely-academic language at all that supports effect systems!
> (except for Java's checked exceptions being a poor analogue). The only
> language with an effect system *and* a compiler that I know of is DDC,
> but it seems to be purely experimental.
> 2009/10/7 Ketil Malde <ketil at malde.org>:
>> Peter Verswyvelen <bugfact at gmail.com> writes:
>>> So yes, without using IO, Haskell forces you into this safe spot
>> One could argue that IO should be broken down into a set of "sub-
>> encapsulating various subsets of the functionality - file system,
>> network access, randomness, and so on. This could extend the "safe
>> spot" to cover much more computational real estate, and effectively
>> sandbox programs in various ways.
>> So instead of 'main :: IO ()', a text processing program using
>> stdin and
>> stdout could have type 'main :: MonadStdIO m => m ()'. For
>> testing, you
>> could then define your own monad implementing 'putStrLn' and 'readLn'
>> etc, and a function 'runStdIO :: MonadStdIO m => m () -> String' that
>> you are free to use in your quickcheck properties.
>> (ObAttribution: I think it was a posting by Lennart Augustsson on
>> names that brought this to my mind, but a quick googling didn't find
>> that exact mail.)
>> If I haven't seen further, it is by standing in the footprints of
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
> Eugene Kirpichov
> Web IR developer, market.yandex.ru
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe