Inside a do block, I can very conveniently substitute

let x = <pure exp>
<continued monadic code>

for either
x <- return <pure exp>
<continued monadic code>

or
let x = <pure exp>
in do
<continued monadic code>

However, I can't do anything similar (that I know of) with if or case
expressions. If I use if or case inside a do block, it's likely that
I'm still using monadic expressions (at least in my experience). Is
there some nasty semantic ambiguity that comes of this? Is it just not
in the standard yet? Is there some extension that I'm not aware of?

-- 
Edward Amsden
Undergraduate
Computer Science
Rochester Institute of Technology
www.edwardamsden.com

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to