Thanks for the comments and encouragement, it really helps a lot!<p>What you describe is precisely what we&#x27;ve aimed at the whole time, but there is a reasonable amount of work that the absolute beginner has to get through before one can tackle anything at that level. The work we&#x27;ve done so far is about as real world as a beginner could hope for, we think. Mind you, up to section 8 pretty much <i>has</i> to be toyish programs of a few lines of code so as not to bamboozle the reader, because they know very little up to there. These sections are tiny for that reason - to keep them interested.<p>We&#x27;re slowly releasing the sections for free. Just released another one today (Section 8). It won&#x27;t be until Section 9 that we start to encounter programs that one could see how they might be truly useful if more work was done on them.<p>Finding all the movies in your movie collection that start with a letter in the first half of the alphabet is pretty toy, for example (in Section 9) :) - that&#x27;s the next section we&#x27;ll release for free on the site. However, we can start to see how that could easily become something useful - like maybe a DVD collection manager database kind of thing, with a bit more coding.<p>Then, when at around Section 17, we know enough Haskell to be able to read small, but real programs: a times-table &quot;game&quot;, and a tiny adventure game (it only has 2 rooms). These are trivial non-real programs from a real-world perspective, but they contain a lot of the elements needed for real programs, and are the precursor to reading beginner to intermediate programs.<p>We think that our book <i>is</i> unique, because we don&#x27;t see anything like it anywhere else. Here&#x27;s why:<p>The frustrations with the Haskell ecosystem up to this point is that learning from nothing is a real chore. LYAH and RWH are the only free to read purportedly-beginner books, but both of them start assuming that Haskell is the second language, and they&#x27;re both very out of date.<p>LYAH doesn&#x27;t use full programs to illustrate topics, so gives no context (which means things don&#x27;t stick in your mind), while RWH does do this, but manages to put the reader to sleep while they&#x27;re reading it because it&#x27;s not written well and poorly edited (not to be mean here... Bryan O&#x27;Sullivan has actually said on his blog that they should have edited it more carefully: <a href="http:&#x2F;&#x2F;www.serpentine.com&#x2F;blog&#x2F;2014&#x2F;03&#x2F;18&#x2F;book-review-parallel-and-concurrent-programming-in-haskell&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.serpentine.com&#x2F;blog&#x2F;2014&#x2F;03&#x2F;18&#x2F;book-review-parall...</a> - in comparison, this book by Simon Marlow that he&#x27;s writing a review for where he complains about his own writing, is excellent writing).<p>However, none of the books or tutorials around seem to take the time or care to explain the absolute basics: things like the fact that Haskell operates in a massively different way than almost every other single programming language there is: a world that is entirely pure. Where in order to do IO, you don&#x27;t write commands, but rather, you have to use pure functions to compose building blocks (IO values) which are descriptions of execution, for later execution. We bandy about phrases like &quot;purely functional&quot;, but don&#x27;t tackle this head on.<p>To our mind, this is one of Haskell&#x27;s greatest strengths, yet it&#x27;s usually shunted to the mid or back of books because it&#x27;s difficult to explain, or an advanced topic, or it&#x27;s been misunderstood in the past, or because authors feel like they need to get readers to Monad before or when they get to IO. We don&#x27;t agree with this.<p>By separating out the passive (reading programs) from the active (creating programs), we think learning can be rapid and things can be understood through large amounts of examples. In the 80&#x27;s, this is how we learned to program, and it works. You take someone else&#x27;s program and you type it in! You adjust it, and see what happens. Once you&#x27;ve done that about 50 times, you start to understand what&#x27;s going on. Take that and add an explaining commenter, and you have our methodology for teaching :)<p>So the IO thing alone, we believe, is a reason our material is fundamentally better. Couple that with practice and example-first teaching (showing examples before, or with theory, not after), appropriate drawings, subject-driven learning (rather than programming-topic-driven), and breadth-first rather than depth-first teaching, and we feel like this series is completely unique. LYAH in contrast does depth-first, and the example code suffers from it massively, not to mention the impact on the reader&#x27;s attention span in the latter half of the book.<p>What we mean here by subject-driven learning is interesting. Say we want to show the reader a number of things, so we introduce them in the guise of a program that &quot;happens&quot; to need to use those things (we&#x27;ve selected it precisely because it does, actually). That way, their focus is on the topic of the example programs, rather than something related to programming like &quot;singly linked lists&quot; or &quot;Functor&quot;, or &quot;folds&quot;. We introduce several topic that deal with a particular programming topic, and before you know it, they understand how Lists work, because they&#x27;ve seen them explained 10 times in different examples. We call this &quot;Using interest to drive repetition&quot;.<p>Each section includes (mostly) at least one &quot;full&quot; program. That is, a program you can enter and run yourself if you have Haskell installed. Granted, they&#x27;re very small programs up to section 8 or 9, but the sections are very small, too. That&#x27;s the idea. We want examples to drive the education, and then introduce theory to back it up later.<p>Yeah, so, Volume 1 (this one) is primarily about building the reader up to where they can make sense of beginner level programs, and start to construct the absolute basics themselves (essentially &quot;what&#x27;s your name&quot;-like programs with input). We&#x27;ve purposefully kept it light and small to increase motivation.<p>The next _Volume_, though, will likely get to the point where we&#x27;ll introduce some much more useful beginner programs, and get the reader to be able to write some basic beginner programs. We&#x27;re pretty limited with the sorts of things we can introduce at the very beginning because IO is such a difficult and loaded topic in Haskell, and we want to keep the amount of information covered in each section down to a bare minimum to keep interest high.<p>There&#x27;s a lot one has to understand to be able to just understand what&#x27;s going on with how to read IO actions, let alone to use them, so we introduce &quot;just enough&quot; so that the reader can understand programs written with it, but not necessarily fully understand what&#x27;s happening behind the sugar of a do block (let alone trying to comprehend what&#x27;s going on in something &quot;real world&quot; like a Snap web application).<p>Sorry for the diatribe :) I obviously find this stuff massively fascinating, and it seems you do, too.<p>We&#x27;d absolutely love it if the sales for the book took off. Maybe they will once we release more of the book for free. We&#x27;re working on it as quickly as we can, so we&#x27;ll see I guess :) Exciting!