# \#book-effective-haskell

**URL:** https://forum.devtalk.com/tag/book-effective-haskell/1359.md

[Latest](https://forum.devtalk.com/latest.md) · [Categories](https://forum.devtalk.com/categories.md) · [Tags](https://forum.devtalk.com/tags.md)

---

## [Effective Haskell: "fixity declation" (p. 29)](https://forum.devtalk.com/t/effective-haskell-fixity-declation-p-29/241367)

<div class="topic-metadata">

**Author:** [@patrickbucher](https://forum.devtalk.com/u/patrickbucher)\
**Replies:** 0\
**Last updated:** [15 April 2026 14:26 UTC](https://forum.devtalk.com/t/effective-haskell-fixity-declation-p-29/241367 "2026-04-15T14:26:46Z")

</div>

On page 29 on the bottom, it says “fixity declation” instead of “fixity declaration”.

---

## [Effective Haskell: p97 P1.0 Error message is not correct](https://forum.devtalk.com/t/effective-haskell-p97-p1-0-error-message-is-not-correct/232972)

<div class="topic-metadata">

**Author:** [@lkuty](https://forum.devtalk.com/u/lkuty)\
**Replies:** 0\
**Last updated:** [6 February 2026 08:45 UTC](https://forum.devtalk.com/t/effective-haskell-p97-p1-0-error-message-is-not-correct/232972 "2026-02-06T08:45:25Z")

</div>

In the code sample at the top of the page, the error message No instance for (Data.String.IsString Int) is not correct and should be the same as the one seen in the main text which is Couldn’t match expected type ‘Int’ w…

---

## [Effective Haskell: duplicate extension (page xx)](https://forum.devtalk.com/t/effective-haskell-duplicate-extension-page-xx/194845)

<div class="topic-metadata">

**Author:** [@jdgleeson](https://forum.devtalk.com/u/jdgleeson)\
**Replies:** 0\
**Last updated:** [12 April 2025 19:47 UTC](https://forum.devtalk.com/t/effective-haskell-duplicate-extension-page-xx/194845 "2025-04-12T19:47:22Z")

</div>

‘PolyKinds GHC2021’ (page xx, line 12) is a duplicate entry. See last line on page xix. (Book version P1.0)

---

## [Effective Haskell: Where keyword in Introduction (pp. xvii and xviii)](https://forum.devtalk.com/t/effective-haskell-where-keyword-in-introduction-pp-xvii-and-xviii/167218)

<div class="topic-metadata">

**Author:** [@lambdacalculator](https://forum.devtalk.com/u/lambdacalculator)\
**Replies:** 0\
**Last updated:** [22 August 2024 23:10 UTC](https://forum.devtalk.com/t/effective-haskell-where-keyword-in-introduction-pp-xvii-and-xviii/167218 "2024-08-22T23:10:41Z")

</div>

@RebeccaSkinner Both module statements in the code examples on pp. xvii and xviii in the Introduction (“Following Along with Example Code”) use an uppercase “Where” instead of a lowercase “where”.

---

## [Effective Haskell: Omitted essential code lines (ch. 5, p. 198, pdf, P1.0)](https://forum.devtalk.com/t/effective-haskell-omitted-essential-code-lines-ch-5-p-198-pdf-p1-0/161150)

<div class="topic-metadata">

**Author:** [@vvnurmi](https://forum.devtalk.com/u/vvnurmi)\
**Replies:** 0\
**Last updated:** [6 July 2024 10:55 UTC](https://forum.devtalk.com/t/effective-haskell-omitted-essential-code-lines-ch-5-p-198-pdf-p1-0/161150 "2024-07-06T10:55:20Z")

</div>

@RebeccaSkinner On page 198, when phantom types are introduced, when listing other changes to the code example at hand, also this necessary change (adding the type parameter a) should be mentioned: users :: \[User a\] W…

---

## [Effective Haskell: Missing import statement (ch. 5, p. 193, pdf, P1.0)](https://forum.devtalk.com/t/effective-haskell-missing-import-statement-ch-5-p-193-pdf-p1-0/161149)

<div class="topic-metadata">

**Author:** [@vvnurmi](https://forum.devtalk.com/u/vvnurmi)\
**Replies:** 0\
**Last updated:** [6 July 2024 10:06 UTC](https://forum.devtalk.com/t/effective-haskell-missing-import-statement-ch-5-p-193-pdf-p1-0/161149 "2024-07-06T10:06:07Z")

</div>

@RebeccaSkinner The book seems to be missing an import statement like λ import HaskellBook.Examples.Introduction.CreatingModules (Name (Name)) in this passage; We’ll start by importing the Name type and its construc…

---

## [Effective Haskell: Typo in Chapter 1 (page 22)](https://forum.devtalk.com/t/effective-haskell-typo-in-chapter-1-page-22/159940)

<div class="topic-metadata">

**Author:** [@vvnurmi](https://forum.devtalk.com/u/vvnurmi)\
**Replies:** 1\
**Last updated:** [25 June 2024 22:03 UTC](https://forum.devtalk.com/t/effective-haskell-typo-in-chapter-1-page-22/159940 "2024-06-25T22:03:19Z")

</div>

the (\<\>) operator would get passed to the function show instead of the string we get back when we say show 1. I think it should say “would get passed the function” without the “to”.

---

## [Effective Haskell: Tiny typo (page 30, PDF version, Beta9)](https://forum.devtalk.com/t/effective-haskell-tiny-typo-page-30-pdf-version-beta9/151512)

<div class="topic-metadata">

**Author:** [@mfonism](https://forum.devtalk.com/u/mfonism)\
**Replies:** 1\
**Last updated:** [16 April 2024 00:49 UTC](https://forum.devtalk.com/t/effective-haskell-tiny-typo-page-30-pdf-version-beta9/151512 "2024-04-16T00:49:54Z")

</div>

Missing out an i in associativity — associatvity.

---

## [Effective Haskell:](https://forum.devtalk.com/t/effective-haskell/139099)

<div class="topic-metadata">

**Author:** [@javabean68](https://forum.devtalk.com/u/javabean68)\
**Replies:** 4\
**Last updated:** [13 January 2024 16:19 UTC](https://forum.devtalk.com/t/effective-haskell/139099 "2024-01-13T16:19:42Z")

</div>

Title: Effective Haskell - Kindle Edition Chapter: 1 Section: Precedence, Operators, and Fixity In the first expression, ((((((add add) 1) 2) add) 3) 4), the operations are evaluated from right to left, resulting in 10…

---

## [Effective Haskell - inaccurate description of filter example (page 61)](https://forum.devtalk.com/t/effective-haskell-inaccurate-description-of-filter-example-page-61/139332)

<div class="topic-metadata">

**Author:** [@tusktenon](https://forum.devtalk.com/u/tusktenon)\
**Replies:** 2\
**Last updated:** [13 January 2024 14:43 UTC](https://forum.devtalk.com/t/effective-haskell-inaccurate-description-of-filter-example-page-61/139332 "2024-01-13T14:43:33Z")

</div>

@RebeccaSkinner On p.61 in Chapter 2, the following is described as finding “the sum of the first ten odd numbers”: λ (foldr (+) 0 . filter odd) \[0..10\] 25 In fact, this code sums the odd numbers between 0 and 10 – th…

---

## [Effective Haskell: wrong definition of sumOfUniques (page 393 on Kindle)](https://forum.devtalk.com/t/effective-haskell-wrong-definition-of-sumofuniques-page-393-on-kindle/136358)

<div class="topic-metadata">

**Author:** [@jrinaldi](https://forum.devtalk.com/u/jrinaldi)\
**Replies:** 2\
**Last updated:** [18 December 2023 22:40 UTC](https://forum.devtalk.com/t/effective-haskell-wrong-definition-of-sumofuniques-page-393-on-kindle/136358 "2023-12-18T22:40:28Z")

</div>

@RebeccaSkinner Currently, it is: sumOfUniques n = ​ foldr (add n) (additiveIdentity n) . unique n It should be: sumOfUniques n = ​ foldr add additiveIdentity . unique n

---

## [Title: Effective Haskell (Page 31)](https://forum.devtalk.com/t/title-effective-haskell-page-31/130484)

<div class="topic-metadata">

**Author:** [@MeEd](https://forum.devtalk.com/u/MeEd)\
**Replies:** 3\
**Last updated:** [2 November 2023 18:53 UTC](https://forum.devtalk.com/t/title-effective-haskell-page-31/130484 "2023-11-02T18:53:47Z")

</div>

@RebeccaSkinner At the bottom of page 31 when let is added to the example greeting I cannot get the example to work. I’ve tried rechecking spacing inside the example, made sure I copied the example correctly and put in …

---

## [Effective Haskell Chapter 11](https://forum.devtalk.com/t/effective-haskell-chapter-11/94995)

<div class="topic-metadata">

**Author:** [@pennychase](https://forum.devtalk.com/u/pennychase)\
**Replies:** 2\
**Last updated:** [4 October 2023 02:01 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-11/94995 "2023-10-04T02:01:09Z")

</div>

@RebeccaSkinner In Effective Haskell Chapter 11 (~ p 410 in ePub), when creating the Encode and Decode instances for String, pack and unpack are used, but given all the imports, ghci couldn’t resolve them so I needed to…

---

## [Effective Haskell:Chapter 13 (B9 - PDF version) - infinite loop when running the ClassyArchiver code](https://forum.devtalk.com/t/effective-haskell-chapter-13-b9-pdf-version-infinite-loop-when-running-the-classyarchiver-code/118747)

<div class="topic-metadata">

**Author:** [@andre](https://forum.devtalk.com/u/andre)\
**Replies:** 0\
**Last updated:** [2 August 2023 02:04 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-13-b9-pdf-version-infinite-loop-when-running-the-classyarchiver-code/118747 "2023-08-02T02:04:45Z")

</div>

Refer to pages 508-511 I get an infinite loop when running the original parseArchive function, after adding a variable called "archiveDef, which codifies the example given on p.491. archiveDef :: Text archiveDef = Te…

---

## [Effective Haskell:Typos (B9 - PDF version) - Chapter 9 to 15](https://forum.devtalk.com/t/effective-haskell-typos-b9-pdf-version-chapter-9-to-15/117693)

<div class="topic-metadata">

**Author:** [@andre](https://forum.devtalk.com/u/andre)\
**Replies:** 3\
**Last updated:** [1 August 2023 17:08 UTC](https://forum.devtalk.com/t/effective-haskell-typos-b9-pdf-version-chapter-9-to-15/117693 "2023-08-01T17:08:26Z")

</div>

@RebeccaSkinner Thanks you for this beautiful book. Chapter 8 - p.317 3rd paragraph from the bottom If you build your application and run it now you’ll see how you can combine a procedural shell with a functional cor…

---

## [Effective Haskell: Observation - Chapter 15 - associated data families (B9 - PDF version)](https://forum.devtalk.com/t/effective-haskell-observation-chapter-15-associated-data-families-b9-pdf-version/118388)

<div class="topic-metadata">

**Author:** [@andre](https://forum.devtalk.com/u/andre)\
**Replies:** 0\
**Last updated:** [29 July 2023 20:17 UTC](https://forum.devtalk.com/t/effective-haskell-observation-chapter-15-associated-data-families-b9-pdf-version/118388 "2023-07-29T20:17:37Z")

</div>

I’m hopeful for someone that could explain what GHCI does to differentiate an IO action returning a value that has a Show instance versus another IO action returning a value that does not. Is this difference in behavio…

---

## [Effective Haskell: Chapter 12 - missing some code on p.438 (B9 - PDF version)](https://forum.devtalk.com/t/effective-haskell-chapter-12-missing-some-code-on-p-438-b9-pdf-version/118287)

<div class="topic-metadata">

**Author:** [@andre](https://forum.devtalk.com/u/andre)\
**Replies:** 0\
**Last updated:** [28 July 2023 23:55 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-12-missing-some-code-on-p-438-b9-pdf-version/118287 "2023-07-28T23:55:02Z")

</div>

@RebeccaSkinner Chapter 12 starts with the code for the File Archive builder from the bottom of p.438 to p.440. If the intention was to provide the complete version built during Chapter 11, the definition of the Encod…

---

## [Effective Haskell: Chapter 10 - directorySummaryWithMetrics (B9 - PDF version)](https://forum.devtalk.com/t/effective-haskell-chapter-10-directorysummarywithmetrics-b9-pdf-version/118265)

<div class="topic-metadata">

**Author:** [@andre](https://forum.devtalk.com/u/andre)\
**Replies:** 0\
**Last updated:** [28 July 2023 19:13 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-10-directorysummarywithmetrics-b9-pdf-version/118265 "2023-07-28T19:13:17Z")

</div>

@rebeccaskinner On p.386, we have the final version of directorySummaryWithMetrics. When running the code, we see the histogram results with empty characters. It looks like this Histogram Data: : 9091 : 59 : 2…

---

## [Effective Haskell: typo "modulee" (page 209)](https://forum.devtalk.com/t/effective-haskell-typo-modulee-page-209/118018)

<div class="topic-metadata">

**Author:** [@Bleep9279](https://forum.devtalk.com/u/Bleep9279)\
**Replies:** 0\
**Last updated:** [27 July 2023 03:48 UTC](https://forum.devtalk.com/t/effective-haskell-typo-modulee-page-209/118018 "2023-07-27T03:48:15Z")

</div>

@RebeccaSkinner Making it easier for anyone (including you, in the future) who wants to use your modulee to do so

---

## [Effective Haskell B9.0: Chapter 4, page 125 & 126 "RecordWildCards" box](https://forum.devtalk.com/t/effective-haskell-b9-0-chapter-4-page-125-126-recordwildcards-box/117689)

<div class="topic-metadata">

**Author:** [@Gertm](https://forum.devtalk.com/u/Gertm)\
**Replies:** 0\
**Last updated:** [24 July 2023 15:16 UTC](https://forum.devtalk.com/t/effective-haskell-b9-0-chapter-4-page-125-126-recordwildcards-box/117689 "2023-07-24T15:16:08Z")

</div>

I found some typos in the ‘RecordWildCards’ info box: "Simply enabling this extension exten- sion shouldn’t break any existing code, however be aware that in some cases introducign record wildcards into an… Should pr…

---

## [Effective Haskell: B9 page 86 missing 'a'](https://forum.devtalk.com/t/effective-haskell-b9-page-86-missing-a/116677)

<div class="topic-metadata">

**Author:** [@Gertm](https://forum.devtalk.com/u/Gertm)\
**Replies:** 0\
**Last updated:** [17 July 2023 06:36 UTC](https://forum.devtalk.com/t/effective-haskell-b9-page-86-missing-a/116677 "2023-07-17T06:36:51Z")

</div>

Found a minor thing: 7th line of the page says: “The value of fibs is list with two hard-coded values,…” This should probably be: “The value of fibs is a list with two hard-coded values,…”

---

## [Effective Haskell: Chapter 10 (pages 379-383) - code does not compile](https://forum.devtalk.com/t/effective-haskell-chapter-10-pages-379-383-code-does-not-compile/116613)

<div class="topic-metadata">

**Author:** [@billboswell](https://forum.devtalk.com/u/billboswell)\
**Replies:** 2\
**Last updated:** [16 July 2023 21:57 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-10-pages-379-383-code-does-not-compile/116613 "2023-07-16T21:57:09Z")

</div>

Under “Building a Basic Metrics System with IORefs”, have created a sample file with the code snippets from page 379-383 as follows: module Metrics where import qualified Data.Map.Strict as Map import Data.IORef imp…

---

## [Effective Haskell: premature type annotation (p76)](https://forum.devtalk.com/t/effective-haskell-premature-type-annotation-p76/115852)

<div class="topic-metadata">

**Author:** [@Bleep9279](https://forum.devtalk.com/u/Bleep9279)\
**Replies:** 1\
**Last updated:** [16 July 2023 17:42 UTC](https://forum.devtalk.com/t/effective-haskell-premature-type-annotation-p76/115852 "2023-07-16T17:42:57Z")

</div>

@RebeccaSkinner The function signature for radsToDegrees includes a type signature, even though this is a chapter before we get to the type system. This looks like a mistake because this is the first type signature I’ve…

---

## [Effective Haskell: Chapter 1, page 24 'ndeclare'](https://forum.devtalk.com/t/effective-haskell-chapter-1-page-24-ndeclare/116039)

<div class="topic-metadata">

**Author:** [@Gertm](https://forum.devtalk.com/u/Gertm)\
**Replies:** 1\
**Last updated:** [16 July 2023 17:42 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-1-page-24-ndeclare/116039 "2023-07-16T17:42:12Z")

</div>

Effective Haskell: B9.0 pdf, page 24 3rd paragraph: “…and we ndeclare it…”. “declare” is probably meant, unless I’m missing some jargon.

---

## [Effective Haskell: Chapter 9 - Monad instance error (page 357)](https://forum.devtalk.com/t/effective-haskell-chapter-9-monad-instance-error-page-357/115647)

<div class="topic-metadata">

**Author:** [@billboswell](https://forum.devtalk.com/u/billboswell)\
**Replies:** 1\
**Last updated:** [8 July 2023 19:53 UTC](https://forum.devtalk.com/t/effective-haskell-chapter-9-monad-instance-error-page-357/115647 "2023-07-08T19:53:11Z")

</div>

Creating the instance of Monad Outlaw described in the text results in error: • No instance for (Applicative Outlaw) arising from the superclasses of an instance declaration • In the instance declaration for ‘Monad Ou…

---

## [Effective Haskell: "one" :: Int error message (p99)](https://forum.devtalk.com/t/effective-haskell-one-int-error-message-p99/114147)

<div class="topic-metadata">

**Author:** [@juhp](https://forum.devtalk.com/u/juhp)\
**Replies:** 3\
**Last updated:** [27 June 2023 02:41 UTC](https://forum.devtalk.com/t/effective-haskell-one-int-error-message-p99/114147 "2023-06-27T02:41:12Z")

</div>

In ch3, section on Reading Type Errors, the error message presented for "one " :: Int with IsString seems non-standard, ie not from a minimal ghci session perhaps? Also note the space after e. For all current GHC 9 vers…

---

## [Effective Haskell: small typo (page 83)](https://forum.devtalk.com/t/effective-haskell-small-typo-page-83/106815)

<div class="topic-metadata">

**Author:** [@juhp](https://forum.devtalk.com/u/juhp)\
**Replies:** 1\
**Last updated:** [25 June 2023 20:38 UTC](https://forum.devtalk.com/t/effective-haskell-small-typo-page-83/106815 "2023-06-25T20:38:52Z")

</div>

@RebeccaSkinner In beta 9.0 A small typo near the bottom of p83: “but it there are some extra moving parts” Probably"it" should be dropped.

---

## [Effective Haskell: ch2 typo "pseduo-Haskell" (page 55)](https://forum.devtalk.com/t/effective-haskell-ch2-typo-pseduo-haskell-page-55/108305)

<div class="topic-metadata">

**Author:** [@juhp](https://forum.devtalk.com/u/juhp)\
**Replies:** 1\
**Last updated:** [25 June 2023 20:38 UTC](https://forum.devtalk.com/t/effective-haskell-ch2-typo-pseduo-haskell-page-55/108305 "2023-06-25T20:38:30Z")

</div>

Just noticed a typo in chapter 2, on the bottom of p55 of B9.0 it says: pseduo-Haskell I missed this on my first reading of the chapter… (Maybe it is already being caught by the editorial process?)

---

## [Effective Haskell: ch2 combineLists (page 66)](https://forum.devtalk.com/t/effective-haskell-ch2-combinelists-page-66/108306)

<div class="topic-metadata">

**Author:** [@juhp](https://forum.devtalk.com/u/juhp)\
**Replies:** 1\
**Last updated:** [25 June 2023 20:37 UTC](https://forum.devtalk.com/t/effective-haskell-ch2-combinelists-page-66/108306 "2023-06-25T20:37:40Z")

</div>

On p66 of B9.0 chapter 2: combineLists as bs = let a = head as b = head bs as' = tail as bs' = tail bs in if null as || null bs then \[\] else (a,b) : combineLists as' bs' I find this let …

---

## [Effective Haskell: ch1 summary says "next types" (page 44)](https://forum.devtalk.com/t/effective-haskell-ch1-summary-says-next-types-page-44/109070)

<div class="topic-metadata">

**Author:** [@juhp](https://forum.devtalk.com/u/juhp)\
**Replies:** 1\
**Last updated:** [25 June 2023 20:35 UTC](https://forum.devtalk.com/t/effective-haskell-ch1-summary-says-next-types-page-44/109070 "2023-06-25T20:35:58Z")

</div>

The summary section in chapter 1 (B9.0) ends with: “In the next chapter you’ll learn about Haskell’s type system and what a function does based on its type signature.” Surely that’s chapter 3, not the next chapter?

[Next page](https://forum.devtalk.com/tag/book-effective-haskell/1359.md?match_all_tags=true&page=1&tags%5B%5D=book-effective-haskell)
