It is a syntatic sugar that is expanded to<br><br>getLine &gt;&gt;= \x -&gt; putStrLn $ reverse x<br><br>&gt;&gt;= is defined in the typeclass for Monad.<br><br>In general, if something is using &lt;- notation, it&#39;s type is Monad m =&gt; m a, where m could be any of many monads, IO, Maybe, [] (lists), Parser or even some type of yours that you made an instance of Monad, which you can do if you would like to use that syntax.<br>
<br><div class="gmail_quote">On Thu, Aug 30, 2012 at 11:00 PM, Patrick Redmond <span dir="ltr">&lt;<a href="mailto:plredmond@gmail.com" target="_blank">plredmond@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;m reading &quot;Learn You a Haskell for Great Good!&quot;, chapter 9, &quot;Input<br>
and Output&quot; &lt;<a href="http://learnyouahaskell.com/input-and-output" target="_blank">http://learnyouahaskell.com/input-and-output</a>&gt;.<br>
<br>
IO actions are given liberal coverage throughout the chapter, however<br>
it is never mentioned whether the value-extractor syntax (&lt;-) has a<br>
type or not.<br>
<br>
main = do<br>
    x &lt;- getLine<br>
    putStrLn $ reverse x<br>
<br>
In this little program, getLine has type &quot;IO String&quot; and x has type<br>
&quot;String&quot;. This implies to me that (&lt;-) has type &quot;IO a -&gt; a&quot;. However,<br>
GHCI chokes on &quot;:t (&lt;-)&quot; and Hoogle says it&#39;s just a syntactic element<br>
&lt;<a href="http://www.haskell.org/haskellwiki/Keywords#.3C-" target="_blank">http://www.haskell.org/haskellwiki/Keywords#.3C-</a>&gt;.<br>
<br>
I guess I don&#39;t have a specific question, but I was kind of expecting<br>
it to be a function with a type because everything seems to be a<br>
function with a type in Haskell... Thanks for listening!<br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
</blockquote></div><br>