<div dir="ltr">Ah yes. That is, strictly speaking not code.<div><br></div><div>I suppose it could count as breakage also, but I think it is far less likely to cause confusion though as they're clearly asking about implementation and getting an answer that its changed.<div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 3, 2015 at 2:41 PM, Erik Hesselink <span dir="ltr"><<a href="mailto:hesselink@gmail.com" target="_blank">hesselink@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On Tue, Feb 3, 2015 at 8:32 PM, davean <<a href="mailto:davean@xkcd.com" target="_blank">davean@xkcd.com</a>> wrote:<br>
> On Tue, Feb 3, 2015 at 2:20 PM, Erik Hesselink <<a href="mailto:hesselink@gmail.com" target="_blank">hesselink@gmail.com</a>> wrote:<br>
>><br>
>> > 2. Breakage of existing tutorials/documentation<br>
>><br>
>> I was just wondering which of these you were alluding to. Turns out<br>
>> it's all of them :) I'm surprised you mention breakage of code, since<br>
>> in my experience most of the breakage in GHC 7.10 I've seen in my own<br>
>> packages and the Stackage builds is due to other factors: the<br>
>> Applicative/Monad changes, time 1.5, etc. It would be interesting (but<br>
>> time consuming) to gather some statistics on this. The breakage of<br>
>> tutorials is unfortunate, yes.<br>
><br>
><br>
> So how bad is the breakage of tutorial code really? Looking around almost<br>
> all of it has a full top level type which makes it still work. I've only<br>
> looked for a few minutes but my first impression is that not much breaks<br>
> with this. Is this just a theory or have people actually determined that<br>
> tutorial code breaks?<br>
><br>
> (Actually, I've found plenty of broken tutorial code, but it wasn't due to<br>
> anything in prelude. Our standard library churn seems much worse on<br>
> tutorials I've looked at then this seems to be.)<br>
<br>
</div></div>I think the 'breakage' is mostly used as mentioning things that work<br>
on lists, while they now work on Foldable/Traversables. For example,<br>
LYAH mentions "length takes a list and returns its length,<br>
obviously.", which isn't true anymore in the strictest sense, it takes<br>
any Foldable. However, you could argue that this text is just<br>
specialization, and that it's still true. There seem to be no things<br>
that are generalized in the section about types, and soon after type<br>
classes are already introduced.  Real World Haskell is slightly more<br>
"broken", for example, it lists:<br>
<br>
ghci> :type null<br>
null :: [a] -> Bool<br>
<br>
Which isn't true anymore, it would now give "Foldable t => t a -> Bool".<br>
<br>
Regards,<br>
<br>
Erik<br>
<br>
P.S. You didn't send your message to haskell-cafe. Feel free to<br>
forward it including this reply if you want.<br>
</blockquote></div><br></div></div></div></div>