<div dir="ltr"><div>Hi, Michael,</div><div><br></div>It's irrefutable pattern - the pattern that matches lazily. You can get more info here [1].<br><br>Hope this helps,<div>Alexey Shmalko<br><br>[1]: <a href="http://en.wikibooks.org/wiki/Haskell/Laziness#Lazy_pattern_matching">http://en.wikibooks.org/wiki/Haskell/Laziness#Lazy_pattern_matching</a></div></div><br><div class="gmail_quote">On Fri, May 15, 2015 at 4:17 AM Michael Jones <<a href="mailto:mike@proclivis.com">mike@proclivis.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am poking around in Arrow to understand it better. There is the following definition:<br>
<br>
second :: a b c -> a (d,b) (d,c)<br>
second f = arr swap >>> first f >>> arr swap<br>
where<br>
swap :: (x,y) -> (y,x)<br>
swap ~(x,y) = (y,x)<br>
<br>
Can someone explain what the ~ is? Searching the net resulted in frustration.<br>
<br>
I kind of think it is some kind of equality constraint but can’t find documentation. Perhaps if I knew what it was called I might succeed in finding something. If it is an equality constraint, please provide a reference if you have one. I did not find anything in a search including GHC, etc.<br>
<br>
Thanks<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div>