[Haskell-cafe] workarounds for Codec.Compression.Zlib errors in
darcs
Neil Mitchell
ndmitchell at gmail.com
Mon Dec 1 10:08:54 EST 2008
> While that's true, Haskell also makes it easy to make the same sort of
> error with IO (or any other Monad) values, whether created with the FFI
> or not. If you say
>
> f = do x
> y
> z
>
> and y has type IO CInt then you won't get an error (and I don't think
> you can even ask for a warning with the current implementations).
>
> Should we have
> (>>) :: (Monad m) => m () -> m a -> m a
> and force you to write
> _ <- y
It's intersting to note that F# follows exactly your proposal. If x
has a return type other than () then you do:
y |> ignore
where ignore :: a -> (), and |> = flip ($)
In practice, I found this quite reasonable to use. You also eliminate
"errors" such as:
do mapM deleteFile files ; return 1
Where mapM requires more memory than the equivalent mapM_
Thanks
Neil
More information about the Haskell-Cafe
mailing list