Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-13 Thread Nick Bowler
On 16:21 Fri 09 Jul , John Meacham wrote:
 I would think it is a typo in the report. Every language out there seems
 to think 0**0 is 1 and 0**y | y /= 0 is 0. I am not sure whether it is
 mandated by the IEEE standard but a quick review doesn't say they should
 be undefined (and the report mentions all the operations with undefined
 results)

IEEE 754 has three different power operations.  They are recommended
operations, which means that supporting them is optional.

pown only allows integral exponents, and the standard says the following:

pown (x, 0) is 1 for any x (even a zero, quiet NaN, or infinity)

pow handles integral exponents as a special case, and is similar:

pow (x, ±0) is 1 for any x (even a zero, quiet NaN, or infinity)

powr is defined as exp(y*log(x)).

powr (±0, ±0) signals the invalid operation exception
[NB: this means that the operation returns a quiet NaN].

In C, the pow function corresponds to the pow operation here,
assuming the implementation conforms to annex F of the standard (an
optional feature).
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-12 Thread Richard O'Keefe


On Jul 11, 2010, at 9:20 PM, Daniel Fischer wrote:



* Prove the binomial theorem *without* the convention 0**0 := 1


Except that in the binomial theorem, one uses (^) and not (**).
For (^), setting x ^ 0 = 1 is, as far as I'm aware, uncontested.


This is not so: the exponent in the binomial theorem is a
real number, not an integer.
See http://mathworld.wolfram.com/BinomialTheorem.html

Real numbers turn up in surprising places.  I imagine most
of us are familiar with the derivative operator D, and with
iterations of it like second derivatives.  But it's not just
natural number powers of D that make sense; there are
fractional derivatives, and D**(1/2) does find uses.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-12 Thread C. McCann
On Sat, Jul 10, 2010 at 6:40 PM, Julian Fleischer
julian.fleisc...@fu-berlin.de wrote:
 I guess I'm actually messing things up using the word natural - how can 
 expand the multiplication of zero with itself zero times be natural?

How could it not be?

That is to say, what initial value would make sense for folding (*)
over a list of numbers to compute the product?

- C.

p.s. -- [[mconcat]] = [[foldr mappend mempty]]
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-11 Thread Daniel Fischer
On Sunday 11 July 2010 00:40:07, Julian Fleischer wrote:
 Hi wren,

  x**0 := 1, by convention.
 
  [...]
  So far as I'm aware, the x**0=1 vs 0**y=0 conflict leads to 0**0
  [being] undefined

 x**0 is 1 /by definition, 0**y naturally is 0, since (for example) 0**2
 expands to 0*0 (being 0 of course).

But I would not want 0**(-1) to be 0, nor 0**(0 :+ 1) :: Complex Double.
0**y = 0 is the natural choice for positive real y or complex y with a 
positive real part, not for all y.

(**) is quite a different beast from (^) or (^^). The latter two have a 
natural interpretation as product of |n| copies of x (resp. reciprocal 
thereof if n  0 for (^^)). (**) is more complicated.

 So there is not a conflict of two
 definitions, it's simply a definition somehow /overriding/ the natural
 attempt. I guess I'm actually messing things up using the word natural
 - how can expand the multiplication of zero with itself zero times be
 natural?

  [...] more helpful in mathematics.
  /source-please

 Try it yourself:
 * Prove the binomial theorem *without* the convention 0**0 := 1

Except that in the binomial theorem, one uses (^) and not (**).
For (^), setting x ^ 0 = 1 is, as far as I'm aware, uncontested.

 * Consider the function f(x) := x**0 - is it continuous (over the set of
 natural numbers including zero)?

Continuity over the set of natural numbers is a non-issue, since usually 
one chooses the discrete topology there, so let's consider x real.

But what about the function

p = \x y - x ** y

, where lim_{x - +0, y - +0} p x y doesn't exist?

Note: I, too, consider 0 ** 0 = 1 the best choice, and 0 ** y = 0 for 
positive y. It's just not so clear cut, there are reasons to consider it 
undefined.


 Donald E. Knuth writes on the issue [1] (see page 6 of the generated
 output), defending the position x**0 being 1.

 Further: C99, Java define it that way. GHC does it that way.

Yay. Unfortunately, GHC uses the default method

x ** y = exp (y * log x)

for complex numbers, so

Prelude Data.Complex 0 ** 0 :: Complex Double
NaN :+ NaN
Prelude Data.Complex 0 ** 1 :: Complex Double
NaN :+ NaN

:sigh:

Possibly the default method is the reason for making 0 ** y undefined.

And hugs:
Hugs 0 ** 0 :: Double

Program error: argument out of range

Hugs 0 ** 1 :: Double

Program error: argument out of range


 Standard Prelude of Haskell 98 Report defines ^ (** for natural numbers)
 as x ^ 0 = 1 [sic] The convention is also used in 6.4.3: The value of
 x^0 or x^^0 is 1 for any x, including zero [2]

 I know it's about ^ in that section, but why should x^0 be 1 and x**0
 be undefined? (or: is the natural zero not the real zero?)

Exponentiation with integer exponents isn't the same as exponentiation with 
arbitrary real (or complex) exponents.
Nevertheless, it is desirable that the latter be an extension of the 
former.


 greetings,
 Julian

 [1] http://www-cs-faculty.stanford.edu/~knuth/papers/tnn.tex.gz
 [2] http://www.haskell.org/onlinereport/basic.html#sect6.4.3

Cheers,
Daniel

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-10 Thread Julian Fleischer
Hi wren,

 x**0 := 1, by convention.
 [...]
 So far as I'm aware, the x**0=1 vs 0**y=0 conflict leads to 0**0 [being] 
 undefined
x**0 is 1 /by definition, 0**y naturally is 0, since (for example) 0**2 expands 
to 0*0 (being 0 of course). So there is not a conflict of two definitions, it's 
simply a definition somehow /overriding/ the natural attempt. I guess I'm 
actually messing things up using the word natural - how can expand the 
multiplication of zero with itself zero times be natural?

 [...] more helpful in mathematics.
 /source-please
Try it yourself:
* Prove the binomial theorem *without* the convention 0**0 := 1
* Consider the function f(x) := x**0 - is it continuous (over the set of 
natural numbers including zero)?

Donald E. Knut writes on the issue [1] (see page 6 of the generated output), 
defending the position x**0 being 1.

Further: C99, Java define it that way. GHC does it that way.
Standard Prelude of Haskell 98 Report defines ^ (** for natural numbers) as x 
^ 0 = 1 [sic]
The convention is also used in 6.4.3: The value of x^0 or x^^0 is 1 for any x, 
including zero [2]

I know it's about ^ in that section, but why should x^0 be 1 and x**0 be 
undefined? (or: is the natural zero not the real zero?)

greetings,
Julian

[1] http://www-cs-faculty.stanford.edu/~knuth/papers/tnn.tex.gz
[2] http://www.haskell.org/onlinereport/basic.html#sect6.4.3



smime.p7s
Description: S/MIME cryptographic signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Brandon S Allbery KF8NH
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 7/8/10 22:25 , Alex Stangl wrote:
 1. I.E. and e.g. should be followed by commas -- unless UK usage
 differs from US standards. (Page 3 and elsewhere, although FFI chapter

I don't think I've ever seen them *followed* by commas.  Preceded, always.

- -- 
brandon s. allbery [linux,solaris,freebsd,perl]  allb...@kf8nh.com
system administrator  [openafs,heimdal,too many hats]  allb...@ece.cmu.edu
electrical and computer engineering, carnegie mellon university  KF8NH
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw3LQoACgkQIn7hlCsL25WpzACgiBSLqdueABWArQyQLbWBPrrs
dKkAoJHA0u65jLLaZqizJM1dPLPtVLXt
=pwq4
-END PGP SIGNATURE-
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Steve Schafer
On Fri, 09 Jul 2010 10:07:06 -0400, you wrote:

I don't think I've ever seen them *followed* by commas.  Preceded, always.

In American English, they're always followed by commas, and preceded by
comma, semicolon, dash or left parenthesis, depending on the specific
context.

Examples from various online style guides:

I am the big cheese, i.e., the boss.

The department is unattached; i.e., it is not administered by one of
the schools or colleges. 
 
Most committee members—-i.e., those who were willing to speak
out-—wanted to reject the plan. 

Most committee members (i.e., those who were willing to speak
out) wanted to reject the plan.

See also: http://www.videojug.com/film/how-to-use-ie-and-eg

-Steve
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Sean Leather
On Fri, Jul 9, 2010 at 16:23, Steve Schafer wrote:

 On Fri, 09 Jul 2010 10:07:06 -0400, brandon s. allbery wrote:
  I don't think I've ever seen them *followed* by commas.  Preceded,
 always.

 In American English, they're always followed by commas, and preceded by
 comma, semicolon, dash or left parenthesis, depending on the specific
 context.


One of the nice things about English is that there is often never an
always. See http://grammar.quickanddirtytips.com/ie-eg-oh-my.aspx for a
discussion. (For me personally, I prefer to minimize the juxtapositions of
punctuation (e.g. . and ,). As long as there's not an editor looking over my
shoulder telling me it's not acceptable, I will continue to do so.)

As for future editions of the Haskell Report, one possibility to eliminate
concerns about spelling and grammar would be to decide to follow a certain
dialect and style. This would reduce the number of comma-related comments.

Sean
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Steve Schafer
On Fri, 9 Jul 2010 17:14:31 +0200, you wrote:

One of the nice things about English is that there is often never an
always. See http://grammar.quickanddirtytips.com/ie-eg-oh-my.aspx for a
discussion.

Well, that page pretty much confirms what I said. In AMERICAN English,
they're always followed by commas. The two sources mentioned on that
page that suggest omitting the commas (Fowler's and Oxrford) are both
based on UK English.

-Steve
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Sean Leather
On Fri, Jul 9, 2010 at 18:35, Steve Schafer wrote:

 On Fri, 9 Jul 2010 17:14:31 +0200, Sean Leather wrote:
 One of the nice things about English is that there is often never an
 always. See http://grammar.quickanddirtytips.com/ie-eg-oh-my.aspx for a
 discussion.

 Well, that page pretty much confirms what I said. In AMERICAN English,
 they're always followed by commas. The two sources mentioned on that
 page that suggest omitting the commas (Fowler's and Oxrford) are both
 based on UK English.


And yet most of the other manuals describe the rule as usually, 
preferable/optional, and makes good sense. That refutes your claim
that they're
always followed by commas. ;)

Sean
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Gregory Crosswhite
 I don't know what the rule is, but I personally just replace i.e. 
with that is and e.g. with for example in my head, and then apply 
whatever punctuation makes sense with those substitutions.


Cheers,
Greg

On 7/9/10 12:17 PM, Sean Leather wrote:


On Fri, Jul 9, 2010 at 18:35, Steve Schafer wrote:

On Fri, 9 Jul 2010 17:14:31 +0200, Sean Leather wrote:
One of the nice things about English is that there is often
never an
always. See
http://grammar.quickanddirtytips.com/ie-eg-oh-my.aspx for a
discussion.

Well, that page pretty much confirms what I said. In AMERICAN English,
they're always followed by commas. The two sources mentioned on that
page that suggest omitting the commas (Fowler's and Oxrford) are both
based on UK English.


And yet most of the other manuals describe the rule as usually, 
preferable/optional, and makes good sense. That refutes your claim 
that they're always followed by commas. ;)


Sean


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Julian Fleischer
Hi,

 8. [...] Saying 0**0 is undefined seems reasonable,
 but why 0**y?
I agree on 0**y being 0 (not undefined), but why should 0**0 be undefined? x**0 
:= 1, by convention. Of course this is a still ongoing debate (regarding 
analysis of functions etc.), but the most usefull approach for /any/ 
programming language (and BTW for many mathematical proofs, too).

-Julian



smime.p7s
Description: S/MIME cryptographic signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Alex Stangl
On Sat, Jul 10, 2010 at 12:12:15AM +0200, Julian Fleischer wrote:
  8. [...] Saying 0**0 is undefined seems reasonable,
  but why 0**y?
 I agree on 0**y being 0 (not undefined), but why should 0**0 be undefined? 
 x**0 := 1, by convention. Of course this is a still ongoing debate (regarding 
 analysis of functions etc.), but the most usefull approach for /any/ 
 programming language (and BTW for many mathematical proofs, too).

Hi Julian,

Glad somebody responded about something other than e.g. and i.e.

I wasn't arguing that 0**0 *ought* to be undefined, but that it
is a reasonable policy, since, as you point out, it's a matter
of ongoing debate. What I don't understand is why for y /= 0,
0**y would be undefined. Maybe the discontinuity at zero is
undesirable.

Alex
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread John Meacham
On Fri, Jul 09, 2010 at 06:07:04PM -0500, Alex Stangl wrote:
 I wasn't arguing that 0**0 *ought* to be undefined, but that it
 is a reasonable policy, since, as you point out, it's a matter
 of ongoing debate. What I don't understand is why for y /= 0,
 0**y would be undefined. Maybe the discontinuity at zero is
 undesirable.

I would think it is a typo in the report. Every language out there seems
to think 0**0 is 1 and 0**y | y /= 0 is 0. I am not sure whether it is
mandated by the IEEE standard but a quick review doesn't say they should
be undefined (and the report mentions all the operations with undefined
results), if anything it should be left for
instances to decide based on the underlying algebra of the specific
type and the report shouldn't mention it.

John

-- 
John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Ivan Lazar Miljenovic
Brandon S Allbery KF8NH allb...@ece.cmu.edu writes:

 On 7/8/10 22:25 , Alex Stangl wrote:
 1. I.E. and e.g. should be followed by commas -- unless UK usage
 differs from US standards. (Page 3 and elsewhere, although FFI chapter

 I don't think I've ever seen them *followed* by commas.  Preceded,
 always.

Agreed.

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread Christopher Done
On 10 July 2010 01:22, Ivan Lazar Miljenovic ivan.miljeno...@gmail.com wrote:

 Brandon S Allbery KF8NH allb...@ece.cmu.edu writes:

  On 7/8/10 22:25 , Alex Stangl wrote:
  1. I.E. and e.g. should be followed by commas -- unless UK usage
  differs from US standards. (Page 3 and elsewhere, although FFI chapter
 
  I don't think I've ever seen them *followed* by commas.  Preceded,
  always.

From The Haskell 98 Library Report:

 partition takes a predicate and a list and returns a pair of lists: those 
elements of the argument list that do and do not satisfy the predicate, 
respectively; i.e., [...]

I don't think you should bother nitpicking about commas here. As
Gregory said, anywhere there is i.e., you can substitute it for
that is. Consider if the spec. was written with that is instead of
i.e., would you then criticise where and where not commas are used?
Does this arbitrary prescription really matter?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread wren ng thornton

Julian Fleischer wrote:

Hi,


8. [...] Saying 0**0 is undefined seems reasonable,
but why 0**y?

I agree on 0**y being 0 (not undefined), but why should 0**0 be undefined? x**0 
:= 1, by convention.


I'm not familiar with that convention. So far as I'm aware, the x**0=1 
vs 0**y=0 conflict leads to 0**0 being best handled as undefined. That 
is, I've not seen any arguments supporting either solution as somehow 
more natural or more helpful in mathematics. /source-please


--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Comments on Haskell 2010 Report

2010-07-09 Thread wren ng thornton

Christopher Done wrote:

On 10 July 2010 01:22, Ivan Lazar Miljenovic ivan.miljeno...@gmail.com wrote:

Brandon S Allbery KF8NH allb...@ece.cmu.edu writes:


On 7/8/10 22:25 , Alex Stangl wrote:

1. I.E. and e.g. should be followed by commas -- unless UK usage
differs from US standards. (Page 3 and elsewhere, although FFI chapter

I don't think I've ever seen them *followed* by commas.  Preceded,
always.



From The Haskell 98 Library Report:



 partition takes a predicate and a list and returns a pair of lists: those 
elements of the argument list that do and do not satisfy the predicate, 
respectively; i.e., [...]


I don't think you should bother nitpicking about commas here. As
Gregory said, anywhere there is i.e., you can substitute it for
that is. Consider if the spec. was written with that is instead of
i.e., would you then criticise where and where not commas are used?
Does this arbitrary prescription really matter?


This is LaTeX folks! All prescriptivism can be solved by judicious use 
of macros. Honestly, for dealing with all the different journals' style 
guides, stuff like this should be standard fare for mere punctuation 
differences:


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{latin}[2010/07/09 resolve style disputes]
\RequirePackage{xspace}

\newif...@comma
\...@commatrue
\declareoption{comma...@commatrue}
\declareoption{nocomma...@commafalse}
\ProcessOptions

% According to most style guides we should not italicize common
% Latin, since it needlessly draws attention to unimportant text.
% For declarativity we specify this command so that clients can
% choose to italicize if desired.
\newcommand{\latin}[1]{#1}

\newcommand{\.}{% Or choose another name if you please
\...@comma
.,\xspace
\else
.\,
\fi
}

\newcommand{\Cf}{\latin{Cf}\.}
\newcommand{\cf}{\latin{cf}\.}
\newcommand{\Eg}{\latin{E.g}\.}
\newcommand{\eg}{\latin{e.g}\.}
\newcommand{\Ie}{\latin{I.e}\.}
\newcommand{\ie}{\latin{i.e}\.}

--
Live well,
~wren
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Comments on Haskell 2010 Report

2010-07-08 Thread Alex Stangl
based upon final version PDF created 7/6/2010 11:44:27

1. I.E. and e.g. should be followed by commas -- unless UK usage
differs from US standards. (Page 3 and elsewhere, although FFI chapter
seems to have the commas.) Also, inconsistent mix of British and American
usage throughout (-ize and -ise, flavour, behaviour, behavior, analyse,
color, colour, finaliser, finalizer, etc.)

2. Inconsistent spelling (lowercase/uppercase in section 1.4;
lower-case/upper-case in section 2.4)

3. In section 3.11, boolean misspelled boolen.

4. LaTeX macros involving @ showing up in text. See sects 3.12, 6.4.2,
11.1, and in Chapter 9.

5. In section 3.15.2, reference to third bullet seems like it should be
fourth bullet.

6. In section 3.17.2, the example that is supposed to return
[undefined,undefined,undefined] seems like it really ought to
return undefined, although I can see in the description above for ~apat
matching where the other interpretation would hold.
I actually tried this in GHC 10.4.2, binding the result to a variable
and then applying the function length to it, and it comes back with
undefined, whereas performing length [undefined,undefined,undefined]
returns 3. So it appears that in this case, at least GHC 10.4.2 is
returning undefined rather than [undefined,undefined,undefined].

7. In section 6.3.4, [LT..] needs whitespace in the middle to parse
correctly.

8. I'm curious about last part of section 6.4.3 that says 0**y is
undefined.  It seems to work reasonably under GHC, returning 0 in
every case except 0**0, which returns 1 (the ^0 == 1 rule taking
precedence, apparently.) Saying 0**0 is undefined seems reasonable,
but why 0**y?

9. In section 6.4.6, statement about b^(d-1) = m  b^d doesn't seem
to hold when m  0. Should it be |m| in the equation, rather than m?

10. Section 7.1 uses function in places where it ought to use action.
It seems more correct to describe print as returning an action that
outputs a value. Most of the Input Functions (e.g., getChar,
getLine, getContents, readLn) should be described as actions,
not functions. It switches to using the term operation,
which seems better, but then reverts back to function.

11. In section 8.4, variable misspelled varibale.

12. In section 8.5.1, in we require that chname ends on .h, 
on should be in.

13. Also in section 8.5.1, dependent misspelled dependant.

14. Last paragraph of section 8.5,1 has extra a -- ... defined
to a accept a   Following sentence has a semicolon where it
should have a comma.

15. In section 10.3, (i.e. the programmer... has no closing paren.

16. In section 10.4, ... other lines are comment, comments sounds
better. This occurs twice.

17. Also in section 10.6, anything misspelled anyything.

18. In Chapter 15, it would be more clear to describe bit i as
producing a value with the ith bit set, and all other bits clear.

19. In section 20.3.1, caveats about finiteness of lists similar to
ones given for and and or could also apply to any and all.
Ditto for elem, notElem, etc. Maybe a single paragraph could summarize
this short-circuiting behavior for all of them.

20. In heading for 20.9.2, quotes around Set are not balanced. Both
are closing quotes. Ditto for 20.10.1, 20.10.2.

21. In section 29.1.1, finaliser and finalizer used in same paragraph.

22. In section 38.2, first occurrence of 'dual' has mismatched quotes.

23. In section 41.1, quotes around perform are mismatched. Word
function is mildly misused again here.

24. In section 41.3.1, it would be nice to document what happens if
act terminates abnormally, and then a secondary exception occurs during
the closing of the handle. Oftentimes systems lose the primary exception
and propagate out the secondary exception, whereas in reality we may be
more interested in the original primary exception.

25. In section 41.4.4, bullet before isPermissionError isn't rendered
correctly.

Alex

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe