Frequently Asked Questions
Where is a good place to ask questions about the exercises?
For questions and help doing exercises, we have a subreddit for asking questions where both authors and fellow readers can contribute and discuss freely. We like having this option because the threads persist so others can find them, but we'd prefer if people refrained where possible from directly posting solutions to problems. The Freenode IRC channel at #haskell-beginners is also excellent, and the Haskellers there are friendly and glad to help.
If you think we haven't given you enough information to complete an exercise or there is a typo or some broken code, please contact us directly so we can decide if something needs to be fixed.
Is there any DRM?
None at all, and the PDF is aggressively standards compliant so that the e-reader formatted variant works nicely on Kindle and other e-ink devices.
What about the print version?
We offered people an opportunity to buy into a single batch print run for a couple of months. It was a single batch run due to the very high cost of international shipping. I was losing money on a per-sale basis so I capped the print run at a fixed number and closed sales. I was charging $35 for international shipping and that was far less than the actual costs I was quoted by my fulfillment partner. Int'l sales were probably 2/3rds of the print sales so they absolutely swamped the margin I was making on the domestic sales. People were also sending me emails telling me how upset they were at the $35 shipping cost. That is unsustainable. Whatever costs the books have in excess of revenue comes out of my family's budget and I have mouths to feed.
I'm working with my printing and fulfillment partners to ship out the orders that are already in right now.
The book will continue to be available for sale as an ebook.
Will there be an EPUB version?
EPUB doesn't let us set a minimum length. EPUB also doesn't have line-folding glyphs. We are unlikely to release an EPUB or MOBI until they offer some way to deal with this problem.
What big tech publishers do to get around this problem is embed low resolution jpegs of the source code in their EPUBs. This is a terrible solution and we will not put something out that does this.
There's an e-reader formatted PDF which, on the 4 or 5 different Kindle models we've tested or seen it on, works great. No scrolling, no zooming in and out. Just works. Page turn your way through. For now, we're not going to release an EPUB.
Why is the book's price $59?
This book is quite comprehensive. It starts from the absolute basics and takes you through the ability to read and understand industrial Haskell and use some wonderful libraries.
Between the two of us, we have decades of experience teaching and programming, and we have been careful about pedagogy. You may find that much of the knowledge contained in the book is available somewhere on the internet for free. We have used our expertise to find those scattered tidbits of knowledge and wisdom, check them for accuracy, organize them, add a bunch of exercises and examples to help you gain experience using Haskell, test it with reviewers (both experts and beginners), and revise and tweak until it makes sense and works for as many people as possible.
Chris's programming experience and Julie's logic and linguistics background mean that some things in the book are things we figured out for ourselves. Some we found out by picking some wizard's brain in private. Only you can decide if it's worth it to you to pay for the work we've done or if you'd rather sift through all the free resources and try to devise examples and exercises for yourself.
The final release is over 1,000 pages of moderate density. To see the scope of the book, check out the full listing and chapter descriptions.
Why isn't there a chapter on web apps?
See our post on this. The long and short of it is that we'd rather equip you to learn anything you want rather than teach you a particular library or framework.
What do I do if I can't build something?
If you get an error like the following on Mac OS X:
$ cabal build Building hello-haskell-0.1.0.0... Preprocessing executable 'hello-haskell' for hello-haskell-0.1.0.0... Linking dist/build/hello-haskell/hello-haskell ... couldn't understand kern.osversion `14.5.0' couldn't understand kern.osversion `14.5.0' ld: -rpath can only be used when targeting Mac OS X 10.5 or later collect2: ld returned 1 exit status
Then you have a very old version of gcc, probably also of XCode. Uninstall whatever you currently have and reinstall a recent version of XCode. Alternately, you may be able to get a friendly version of GHC via Homebrew.
We recommend you use Stack whether you're using Windows, Mac, or Linux!. We've made a Youtube tutorial video for learning to use Stack.
Will you be changing anything in anticipation of GHC 8?
The final release version of the book is compatible with GHC 8. Most of the interesting changes coming in GHC 8 are out of the scope of the book; however, we have included some brief introduction to one or two of the new features.
Are there answers available for the exercises? Will you ever provide an index?
There are some answers already included in the book. There will be more as we have time to write them. There will never be answers provided to all the exercises, though. We've been very careful about providing answers because we want to discourage you from thinking that what you did was wrong if it doesn't precisely match the way we wrote it. We'd rather that you gain experience working with and trusting GHCi than try to check your work against ours as a first recourse. We are working on ensuring that where we've asked you to write a function or a typeclass instance, we've given you an idea of the expected output or behavior so you have a way to check yourself before you wreck yourself.
Several readers have posted their answers publicly, though, so you can search for those.
We're working on indexing as well. We know it's frustrating not to have an index, but it's coming.
Will the book cover using Stack?
The chapters that include project building, starting with modules and projects, use Stack now. There are still things you need to know about Cabal, but we use Stack as our primary project management tool now.