diff --git a/book/gadts/README.md b/book/gadts/README.md index dc0d985a7..2c6ab7717 100644 --- a/book/gadts/README.md +++ b/book/gadts/README.md @@ -314,13 +314,13 @@ type _ expr = | If : bool expr * 'a expr * 'a expr -> 'a expr ``` -The syntax here requires some decoding. The colon to the right of -each tag is what tells you that this is a GADT. To the right of the -colon, you'll see what looks like an ordinary function signature, and -you can almost think of it that way; specifically, as the type -signature for that particular tag. The left-hand side of the -arrow states the types of the arguments to the tag, and the -right hand side determines the type of the constructed value. +The syntax here requires some decoding. The colon to the right of each +tag is what tells you that this is a GADT. To the right of the colon, +you'll see what looks like an ordinary, single-argument function +signature, and you can almost think of it that way; specifically, as +the type signature for that particular tag. The left-hand side of the +arrow states the types of the arguments to the tag, and the right hand +side determines the type of the constructed value. Note that in the definition of each tag in a GADT, the right-hand side is an instance of the type as the overall GADT, though the type