Ticket #669: HughesPJIndentRepair.patch

File HughesPJIndentRepair.patch, 50.3 KB (added by thorkilnaur, 7 years ago)

Patch for draft repair of the HughesPJ library

Line 
1
2New patches:
3
4[Fix wrong (sometimes negative) indent
5Thorkil Naur <naur@post11.tele.dk>**20070324233244] {
6hunk ./Text/PrettyPrint/HughesPJ.hs 23
7+Version 3.1     2007-May-23
8+  * Fix wrong (sometimes negative) indent.
9hunk ./Text/PrettyPrint/HughesPJ.hs 695
10-nilBeside g (Nest _ p) = nilBeside g p
11hunk ./Text/PrettyPrint/HughesPJ.hs 731
12--- We have to eat up nests
13-
14-sepNB g (Nest _ p)  k ys  = sepNB g p k ys
15hunk ./Text/PrettyPrint/HughesPJ.hs 813
16-    get w (TextBeside s sl p) = textBeside_ s sl (get1 w sl p)
17+    get w (TextBeside s sl p) = textBeside_ s sl (get1 (w,w) sl p)
18hunk ./Text/PrettyPrint/HughesPJ.hs 817
19-    get1 :: Int         -- (Remaining) width of line
20+    get1 :: (Int,       -- (Remaining) width of line that includes nests
21+             Int)       -- (Remaining) width of line that excludes nests
22hunk ./Text/PrettyPrint/HughesPJ.hs 820
23-         -> Doc         -- This is an argument to TextBeside => eat Nests
24+         -> Doc         -- This is an argument to TextBeside
25hunk ./Text/PrettyPrint/HughesPJ.hs 823
26-    get1 w _ _ | w==0 && False = undefined
27+    get1 (w1,w2) _ _ | w1+w2 `seq` False = undefined
28hunk ./Text/PrettyPrint/HughesPJ.hs 826
29-    get1 w sl (NilAbove p)        = nilAbove_ (get (w - sl) p)
30+    get1 (w1,_) sl (NilAbove p)   = nilAbove_ (get (w1 - sl) p)
31hunk ./Text/PrettyPrint/HughesPJ.hs 828
32-    get1 w sl (Nest k p)          = get1 w sl p
33-    get1 w sl (p `Union` q)       = nicest1 w r sl (get1 w sl p)
34+    get1 (w1,w2) sl (Nest k p)    = Nest k (get1 (w1-k,w2) sl p)
35+    get1 w@(_,w2) sl (p `Union` q) = nicest1 w2 r sl (get1 w sl p)
36hunk ./Text/PrettyPrint/HughesPJ.hs 845
37+fits n (Nest _ p)          = fits n p
38hunk ./Text/PrettyPrint/HughesPJ.hs 937
39-        lay2 k (Nest _ p)          = lay2 k p
40+        lay2 k (Nest k1 p)         = lay2 (k + k1) p
41}
42
43Context:
44
45[remove Makefile.inc (only affects nhc98)
46Malcolm.Wallace@cs.york.ac.uk**20070320120057]
47[copyBytes copies bytes, not elements; fixes trac #1203
48Ian Lynagh <igloo@earth.li>**20070312113555]
49[Add ioeGetLocation, ioeSetLocation to System/IO/Error.hs; trac #1191
50Ian Lynagh <igloo@earth.li>**20070304130315]
51[fix race condition in prodServiceThread
52Simon Marlow <simonmar@microsoft.com>**20070307134330
53 See #1187
54]
55[Prevent duplication of unsafePerformIO on a multiprocessor
56Simon Marlow <simonmar@microsoft.com>**20070306145424
57 Fixes #986.  The idea is to add a new operation
58 
59   noDuplicate :: IO ()
60 
61 it is guaranteed that if two threads have executed noDuplicate, then
62 they are not duplicating any computation.
63 
64 We now provide two new unsafe operations:
65 
66 unsafeDupablePerformIO    :: IO a -> a
67 unsafeDupableInterleaveIO :: IO a -> IO a
68 
69 which are equivalent to the old unsafePerformIO and unsafeInterleaveIO
70 respectively.  The new versions of these functions are defined as:
71 
72 unsafePerformIO    m = unsafeDupablePerformIO (noDuplicate >> m)
73 unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m)
74]
75[expand docs for forkOS
76Simon Marlow <simonmar@microsoft.com>**20070305160921]
77[document timeout limitations
78Peter Simons <simons@cryp.to>**20070228223540]
79[So many people were involved in the writing of this module that
80Peter Simons <simons@cryp.to>**20070228223415
81 it feels unfair to single anyone out as the lone copyright
82 holder.
83]
84[This patch adds a timeout function to the base libraries. Trac #980 is
85Peter Simons <simons@cryp.to>**20070126222615
86 concerned with this issue. The design guideline for this implementation
87 is that 'timeout N E' should behave exactly the same as E as long as E
88 doesn't time out. In our implementation, this means that E has the same
89 myThreadId it would have without the timeout wrapper. Any exception E
90 might throw cancels the timeout and propagates further up. It also
91 possible for E to receive exceptions thrown to it by another thread.
92]
93[PArr: fixed permutations
94Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070305055807]
95[Add Data.String, containing IsString(fromString); trac proposal #1126
96Ian Lynagh <igloo@earth.li>**20070130134841
97 This is used by the overloaded strings extension (-foverloaded-strings in GHC).
98]
99[GHC.PArr: add bounds checking
100Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070302053224]
101[Bump nhc98 stack size for System/Time.hsc
102sven.panne@aedion.de**20070301153009]
103[FDs are CInts now, fixing non-GHC builds
104sven.panne@aedion.de**20070225105620]
105[Fixed PArr.dropP
106Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070222032405
107 - Thanks to Audrey Tang for the bug report
108]
109[Keep the same FD in both halves of a duplex handle when dup'ing
110Ian Lynagh <igloo@earth.li>**20070220141039
111 Otherwise we only close one of the FDs when closing the handle.
112 Fixes trac #1149.
113]
114[Remove more redundant FD conversions
115Ian Lynagh <igloo@earth.li>**20070220092520]
116[Fix FD changes on Windows
117Ian Lynagh <igloo@earth.li>**20070220091516]
118[Consistently use CInt rather than Int for FDs
119Ian Lynagh <igloo@earth.li>**20070219233854]
120[Fix the types of minView/maxView (ticket #1134)
121jeanphilippe.bernardy@gmail.com**20070210065115]
122[fix for hashString, from Jan-Willem Maessen (see #1137)
123Simon Marlow <simonmar@microsoft.com>**20070215094304
124 
125]
126[fix to getUSecOfDay(): arithmetic was overflowing
127Simon Marlow <simonmar@microsoft.com>**20070214161719]
128[The Windows counterpart to 'wrapround of thread delays'
129Ian Lynagh <igloo@earth.li>**20070209173510]
130[wrapround of thread delays
131Neil Davies <SemanticPhilosopher@gmail.com>**20070129160519
132 
133   * made the wrapround of the underlying O/S occur before the wrapround
134     of the delayed threads by making threads delay in microseconds since
135     O/S epoch (1970 - Unix, 1601 - Windows) stored in Word64.
136   * removed redundant calls reading O/S realtime clock
137   * removed rounding to 1/50th of sec for timers
138   * Only for Unix version of scheduler.
139]
140[Whitespace changes only
141Ian Lynagh <igloo@earth.li>**20070206232722]
142[Add some type sigs
143Ian Lynagh <igloo@earth.li>**20070206232439]
144[Use static inline rather than extern inline/inline
145Ian Lynagh <igloo@earth.li>**20070205203628
146 I understand this is more portable, and it also fixes warnings when
147 C things we are wrapping are themselves static inlines (which FD_ISSET
148 is on ppc OS X).
149]
150[add derived instances for Dual monoid
151Ross Paterson <ross@soi.city.ac.uk>**20070202190847]
152[add doc pointers to Foldable
153Ross Paterson <ross@soi.city.ac.uk>**20070202110931
154 
155 Could be applied to STABLE.
156]
157[Eliminate some warnings
158Ian Lynagh <igloo@earth.li>**20060729220854
159 Eliminate warnings in the libraries caused by mixing pattern matching
160 with numeric literal matching.
161]
162[Remove IsString(fromString) from the Prelude
163Ian Lynagh <igloo@earth.li>**20070130124136]
164[Add Kleisli composition
165Don Stewart <dons@cse.unsw.edu.au>**20061113015442]
166[IsString is GHC-only (so why is it in the Prelude?)
167Ross Paterson <ross@soi.city.ac.uk>**20070123183007]
168[Applicative and Monad instances for Tree
169Ross Paterson <ross@soi.city.ac.uk>**20070115174510]
170[Add IsString class for overloaded string literals.
171lennart@augustsson.net**20061221210532]
172[Added examples, more detailed documentation to Data.List Extracting sublists functions
173Andriy Palamarchuk <apa3a@yahoo.com>**20061204164710]
174[fix threadDelay
175Simon Marlow <simonmar@microsoft.com>**20070117091702
176 In "Add support for the IO manager thread" I accidentally spammed part
177 of "Make sure the threaded threadDelay sleeps at least as long as it
178 is asked", which is why the ThreadDelay001 test has been failing.
179]
180[update section on "blocking"
181Simon Marlow <simonmar@microsoft.com>**20070116124328]
182[Fix crash with   (minBound :: Int*) `div (-1)   as result is maxBound + 1.
183Ian Lynagh <igloo@earth.li>**20070115142005]
184[version of example using Tomasz Zielonka's technique
185Ross Paterson <ross@soi.city.ac.uk>**20070105175907]
186[Added Unknowns for higher kinds
187Pepe Iborra <mnislaih@gmail.com>**20061108155938]
188[Improved the Show instance for Unknown
189Pepe Iborra <mnislaih@gmail.com>**20060813111816]
190[Show instance for GHC.Base.Unknown
191mnislaih@gmail.com**20060801233530]
192[Introduce Unknowns for the closure viewer. Add breakpointCond which was missing
193mnislaih@gmail.com**20060725174537]
194[Fix missing comma in Fractional documentation
195Alec Berryman <alec@thened.net>**20061201173237]
196[Mention that throwTo does not guarantee promptness of delivery
197simonpj@microsoft**20061211123215]
198[Add note about synhronous delivery of throwTo
199simonpj@microsoft**20061211122257]
200[documentation for installHandler
201Simon Marlow <simonmar@microsoft.com>**20061205154927
202 merge to 6.6
203]
204[dos2unix
205Simon Marlow <simonmar@microsoft.com>**20061204095439]
206[don't try to compile this on Unix
207Simon Marlow <simonmar@microsoft.com>**20061204095427]
208[TAG 6.6 release
209Ian Lynagh <igloo@earth.li>**20061011124740]
210[TAG Version 2.1
211Ian Lynagh <igloo@earth.li>**20061009114014]
212[Bump version number
213Ian Lynagh <igloo@earth.li>**20061009114009]
214[Add support for the IO manager thread on Windows
215Simon Marlow <simonmar@microsoft.com>**20061201152042
216 Fixes #637.  The test program in that report now works for me with
217 -threaded, but it doesn't work without -threaded (I don't know if
218 that's new behaviour or not, though).
219]
220[deriving (Eq, Ord, Enum, Show, Read, Typeab) for ConsoleEvent
221Simon Marlow <simonmar@microsoft.com>**20061201144032]
222[Make sure the threaded threadDelay sleeps at least as long as it is asked to
223Ian Lynagh <igloo@earth.li>**20061128204807]
224[Add comments about argument order to the definitions of gmapQ and constrFields
225simonpj@microsoft**20061124164505]
226[Hugs: add Control.Parallel.Strategies
227Ross Paterson <ross@soi.city.ac.uk>**20061124161039]
228[Move instance of Show Ptr to Ptr.hs (fewer orphans)
229simonpj@microsoft.com**20061124100639]
230[Add type signatures
231simonpj@microsoft.com**20061124100621]
232[Add an example of the use of unfoldr, following doc feedback from dozer
233Don Stewart <dons@cse.unsw.edu.au>**20061124011249]
234[trim imports
235Ross Paterson <ross@soi.city.ac.uk>**20061123190352]
236[Data.Graph is now portable (enable for nhc98)
237Malcolm.Wallace@cs.york.ac.uk**20061123174913]
238[remove Data.FunctorM and Data.Queue
239Ross Paterson <ross@soi.city.ac.uk>**20061112001046
240 
241 These were deprecated in 6.6, and can thus be removed in 6.8.
242]
243[make Data.Graph portable (no change to the interface)
244Ross Paterson <ross@soi.city.ac.uk>**20061122010040
245 
246 The algorithm now uses STArrays on GHC and IntSets elsewhere.
247 (Hugs has STArrays, but avoiding them saves a -98, and boxed arrays
248 aren't fast under Hugs anyway.)
249]
250[One less unsafeCoerce# in the tree
251Don Stewart <dons@cse.unsw.edu.au>**20061120120242]
252[typo in comment
253Ross Paterson <ross@soi.city.ac.uk>**20061120115106]
254[fix shift docs to match ffi spec
255Ross Paterson <ross@soi.city.ac.uk>**20061117003144]
256[(nhc98) use new primitive implementations of h{Put,Get}Buf.
257Malcolm.Wallace@cs.york.ac.uk**20061116173104]
258[The wrong 'cycle' was exported from Data.ByteString.Lazy.Char8, spotted by sjanssen
259Don Stewart <dons@cse.unsw.edu.au>**20061110021311]
260[LPS chunk sizes should be 16 bytes, not 17.
261Don Stewart <dons@cse.unsw.edu.au>**20061110021254]
262[Update comments on Prelude organisation in GHC/Base.lhs
263Ian Lynagh <igloo@earth.li>**20061115001926]
264[Control.Parallel.Strategies clean-up: Added export list to avoid exporting seq, fixed import list strangeness that haddock choked on, and moved the deprecated functions to a separate section.
265bringert@cs.chalmers.se**20061113224202]
266[Control.Parallel.Strategies: added NFData instances for Data.Int.*, Data.Word.*, Maybe, Either, Map, Set, Tree, IntMap, IntSet.
267bringert@cs.chalmers.se**20061113221843]
268[Control.Parallel.Strategies: deprecate sPar, sSeq, Assoc, fstPairFstList, force and sforce.
269bringert@cs.chalmers.se**20061113215219
270 Code comments indicated that sPar and sSeq have been superceded by sparking and demanding, and that Assoc, fstPairFstList, force and sforce are examples and hacks needed by the Lolita system.
271]
272[add Control.Monad.Instances to nhc98 build
273Malcolm.Wallace@cs.york.ac.uk**20061113113221]
274[Control.Parallel.Strategies: clarified documentation of parListChunk.
275bringert@cs.chalmers.se**20061112232904]
276[Added and cleaned up Haddock comments in Control.Parallel.Strategies.
277bringert@cs.chalmers.se**20061112220445
278 Many of the definitions in Control.Parallel.Strategies had missing or unclear Haddock comments. I converted most of the existing plain code comments to haddock comments, added some missing documentation and cleaned up the existing Haddock mark-up.
279]
280[Fix broken pragmas; spotted by Bulat Ziganshin
281Ian Lynagh <igloo@earth.li>**20061111205916]
282[add doc link to bound threads section
283Ross Paterson <ross@soi.city.ac.uk>**20060929103252]
284[hide Data.Array.IO.Internals
285Ross Paterson <ross@soi.city.ac.uk>**20061111113248
286 
287 It's hidden from haddock, and everything it exports is re-exported by
288 Data.Array.IO.
289]
290[add Data.Function
291Malcolm.Wallace@cs.york.ac.uk**20061110142710]
292[add Data.Function
293Ross Paterson <ross@soi.city.ac.uk>**20061110141354]
294[whitespace only
295Ross Paterson <ross@soi.city.ac.uk>**20061110141326]
296[move fix to Data.Function
297Ross Paterson <ross@soi.city.ac.uk>**20061110141120]
298[import Prelude
299Ross Paterson <ross@soi.city.ac.uk>**20061110140445]
300[Added Data.Function (Trac ticket #979).
301Nils Anders Danielsson <nad@cs.chalmers.se>**20061110122503
302 + A module with simple combinators working solely on and with
303   functions.
304 + The only new function is "on".
305 + Some functions from the Prelude are re-exported.
306]
307[__hscore_long_path_size is not portable beyond GHC
308Malcolm.Wallace@cs.york.ac.uk**20061110113222]
309[redefine writeFile and appendFile using withFile
310Ross Paterson <ross@soi.city.ac.uk>**20061107140359]
311[add withFile and withBinaryFile (#966)
312Ross Paterson <ross@soi.city.ac.uk>**20061107134510]
313[remove conflicting import for nhc98
314Malcolm.Wallace@cs.york.ac.uk**20061108111215]
315[Add intercalate to Data.List (ticket #971)
316Josef Svenningsson <josef.svenningsson@gmail.com>**20061102122052]
317[non-GHC: fix canonicalizeFilePath
318Ross Paterson <ross@soi.city.ac.uk>**20061107133902
319 
320 I've also removed the #ifdef __GLASGOW_HASKELL__ from the proper
321 Windows versions of a few functions.  These will need testing with
322 Hugs on Windows.
323]
324[enable canonicalizePath for non-GHC platforms
325Simon Marlow <simonmar@microsoft.com>**20061107121141]
326[Update documentation for hWaitForInput
327Simon Marlow <simonmar@microsoft.com>**20061107111430
328 See #972
329 Merge to 6.6 branch.
330]
331[Use unchecked shifts to implement Data.Bits.rotate
332Samuel Bronson <naesten@gmail.com>**20061012125553
333 This should get rid of those cases, maybe lower the size enough that the inliner will like it?
334]
335[fix Haddock module headers
336Ross Paterson <ross@soi.city.ac.uk>**20061106124140]
337[fix example in docs
338Ross Paterson <ross@soi.city.ac.uk>**20061106115628]
339[Add intercalate and split to Data.List
340Josef Svenningsson <josef.svenningsson@gmail.com>*-20061024172357]
341[Data.Generics.Basics is GHC-only
342Ross Paterson <ross@soi.city.ac.uk>**20061102111736]
343[#ifdef around non-portable Data.Generics.Basics
344Malcolm.Wallace@cs.york.ac.uk**20061102103445]
345[Add deriving Data to Complex
346simonpj@microsoft**20061101102059]
347[minor clarification of RandomGen doc
348Ross Paterson <ross@soi.city.ac.uk>**20061030230842]
349[rearrange docs a bit
350Ross Paterson <ross@soi.city.ac.uk>**20061030161223]
351[Add intercalate and split to Data.List
352Josef Svenningsson <josef.svenningsson@gmail.com>**20061024172357]
353[Export pseq from Control.Parallel, and use it in Control.Parallel.Strategies
354Simon Marlow <simonmar@microsoft.com>**20061027150141]
355[`par` should be infixr 0
356Simon Marlow <simonmar@microsoft.com>**20061027130800
357 Alas, I didn't spot this due to lack of testing, and the symptom is
358 that an expression like x `par` y `seq z will have exactly the wrong
359 parallelism properties.  The workaround is to add parantheses.
360 
361 I think we could push this to the 6.6 branch.
362]
363[fix example in comment
364Ross Paterson <ross@soi.city.ac.uk>**20061023163925]
365[Use the new Any type for dynamics (GHC only)
366simonpj@microsoft**20061019160408]
367[add Data.Sequence to nhc98 build
368Malcolm.Wallace@cs.york.ac.uk**20061012135200]
369[Remove Data.FiniteMap, add Control.Applicative, Data.Traversable, and
370Malcolm.Wallace@cs.york.ac.uk**20061012095605
371 Data.Foldable to the nhc98 build.
372]
373[STM invariants
374tharris@microsoft.com**20061007123253]
375[Inline shift in GHC's Bits instances for {Int,Word}{,8,16,32,64}
376Samuel Bronson <naesten@gmail.com>**20061009020906]
377[Don't create GHC.Prim when bootstrapping; we can't, and we don't need it
378Ian Lynagh <igloo@earth.li>**20061004165355]
379[Data.ByteString: fix lazyness of take, drop & splitAt
380Don Stewart <dons@cse.unsw.edu.au>**20061005011703
381 
382 ByteString.Lazy's take, drop and splitAt were too strict when demanding
383 a byte string. Spotted by Einar Karttunen. Thanks to him and to Bertram
384 Felgenhauer for explaining the problem and the fix.
385 
386]
387[Fix syntax error that prevents building Haddock documentation on Windows
388brianlsmith@gmail.com**20060917013530]
389[Hugs only: unbreak typeRepKey
390Ross Paterson <ross@soi.city.ac.uk>**20060929102743]
391[make hGetBufNonBlocking do something on Windows w/ -threaded
392Simon Marlow <simonmar@microsoft.com>**20060927145811
393 hGetBufNonBlocking will behave the same as hGetBuf on Windows now, which
394 is better than just crashing (which it did previously).
395]
396[add typeRepKey :: TypeRep -> IO Int
397Simon Marlow <simonmar@microsoft.com>**20060927100342
398 See feature request #880
399]
400[fix header comment
401Ross Paterson <ross@soi.city.ac.uk>**20060926135843]
402[Add strict versions of insertWith and insertWithKey (Data.Map)
403jeanphilippe.bernardy@gmail.com**20060910162443]
404[doc tweaks, including more precise equations for evaluate
405Ross Paterson <ross@soi.city.ac.uk>**20060910115259]
406[Sync Data.ByteString with stable branch
407Don Stewart <dons@cse.unsw.edu.au>**20060909050111
408 
409 This patch:
410     * hides the LPS constructor (its in .Base if you need it)
411     * adds functions to convert between strict and lazy bytestrings
412     * and adds readInteger
413 
414]
415[Typeable1 instances for STM and TVar
416Ross Paterson <ross@soi.city.ac.uk>**20060904231425]
417[remove obsolete Hugs stuff
418Ross Paterson <ross@soi.city.ac.uk>**20060904223944]
419[Cleaner isInfixOf suggestion from Ross Paterson
420John Goerzen <jgoerzen@complete.org>**20060901143654]
421[New function isInfixOf that searches a list for a given sublist
422John Goerzen <jgoerzen@complete.org>**20060831151556
423 
424 Example:
425 
426 isInfixOf "Haskell" "I really like Haskell." -> True
427 isInfixOf "Ial" "I really like Haskell." -> False
428 
429 This function was first implemented in MissingH as MissingH.List.contains
430]
431[Better doc on Data.Map.lookup: explain what the monad is for
432jeanphilippe.bernardy@gmail.com**20060903133440]
433[fix hDuplicateTo on Windows
434Simon Marlow <simonmar@microsoft.com>**20060901150016
435 deja vu - I'm sure I remember fixing this before...
436]
437[Improve documentation of atomically
438simonpj@microsoft**20060714120207]
439[Add missing method genRange for StdGen (fixes #794)
440simonpj@microsoft**20060707151901
441 
442        MERGE TO STABLE
443 
444 Trac #794 reports (correctly) that the implementation of StdGen
445 only returns numbers in the range (0..something) rather than
446 (minBound, maxBound), which is what StdGen's genRange claims.
447 
448 This commit fixes the problem, by implementing genRange for StdGen
449 (previously it just used the default method).
450 
451 
452]
453[mark nhc98 import hack
454Ross Paterson <ross@soi.city.ac.uk>**20060831125219]
455[remove some outdated comments
456Simon Marlow <simonmar@microsoft.com>**20060831104200]
457[import Control.Arrow.ArrowZero to help nhc98's type checker
458Malcolm.Wallace@cs.york.ac.uk**20060831101105]
459[remove Text.Regex(.Posix) from nhc98 build
460Malcolm.Wallace@cs.york.ac.uk**20060831101016]
461[add Data.Foldable.{msum,asum}, plus tweaks to comments
462Ross Paterson <ross@soi.city.ac.uk>**20060830163521]
463[fix doc typo
464Ross Paterson <ross@soi.city.ac.uk>**20060830134123]
465[add Data.Foldable.{for_,forM_} and Data.Traversable.{for,forM}
466Ross Paterson <ross@soi.city.ac.uk>**20060830133805
467 
468 generalizing Control.Monad.{forM_,forM}
469]
470[Make length a good consumer
471simonpj@microsoft*-20060508142726
472 
473 Make length into a good consumer.  Fixes Trac bug #707.
474 
475 (Before length simply didn't use foldr.)
476 
477]
478[Add Control.Monad.forM and forM_
479Don Stewart <dons@cse.unsw.edu.au>**20060824081118
480 
481 flip mapM_ is more and more common, I find. Several suggestions have
482 been made to add this, as foreach or something similar. This patch
483 does just that:
484 
485     forM  :: (Monad m) => [a] -> (a -> m b) -> m [b]
486     forM_ :: (Monad m) => [a] -> (a -> m b) -> m ()
487 
488 So we can write:
489     
490     Prelude Control.Monad> forM_ [1..4] $ \x -> print x
491     1
492     2
493     3
494     4
495 
496]
497[Hide internal module from haddock in Data.ByteString
498Don Stewart <dons@cse.unsw.edu.au>**20060828011515]
499[add advice on avoiding import ambiguities
500Ross Paterson <ross@soi.city.ac.uk>**20060827170407]
501[expand advice on importing these modules
502Ross Paterson <ross@soi.city.ac.uk>**20060827164044]
503[add Haddock marker
504Ross Paterson <ross@soi.city.ac.uk>**20060827115140]
505[Clarify how one hides Prelude.catch
506Don Stewart <dons@cse.unsw.edu.au>**20060826124346
507 
508 User feedback indicated that an example was required, of how to hide
509 Prelude.catch, so add such an example to the docs
510 
511]
512[Workaround for OSes that don't have intmax_t and uintmax_t
513Ian Lynagh <igloo@earth.li>**20060825134936
514 OpenBSD (and possibly others) do not have intmax_t and uintmax_t types:
515     http://www.mail-archive.com/haskell-prime@haskell.org/msg01548.html
516 so substitute (unsigned) long long if we have them, otherwise
517 (unsigned) long.
518 
519]
520[add docs for par
521Simon Marlow <simonmar@microsoft.com>**20060825110610]
522[document minimal complete definition for Bits
523Ross Paterson <ross@soi.city.ac.uk>**20060824140504]
524[C regex library bits have moved to the regex-posix package
525Simon Marlow <simonmar@microsoft.com>**20060824132311]
526[Add shared Typeable support (ghc only)
527Esa Ilari Vuokko <ei@vuokko.info>**20060823003126]
528[this should have been removed with the previous patch
529Simon Marlow <simonmar@microsoft.com>**20060824121223]
530[remove Text.Regx & Text.Regex.Posix
531Simon Marlow <simonmar@microsoft.com>**20060824094615
532 These are subsumed by the new regex-base, regex-posix and regex-compat
533 packages.
534]
535[explicitly tag Data.ByteString rules with the FPS prefix.
536Don Stewart <dons@cse.unsw.edu.au>**20060824041326]
537[Add spec rules for sections in Data.ByteString
538Don Stewart <dons@cse.unsw.edu.au>**20060824012611]
539[Sync Data.ByteString with current stable branch, 0.7
540Don Stewart <dons@cse.unsw.edu.au>**20060823143338]
541[add notes about why copyFile doesn't remove the target
542Simon Marlow <simonmar@microsoft.com>**20060823095059]
543[copyFile: try removing the target file before opening it for writing
544Simon Marlow <simonmar@microsoft.com>*-20060822121909]
545[copyFile: try removing the target file before opening it for writing
546Simon Marlow <simonmar@microsoft.com>**20060822121909]
547[add alternative functors and extra instances
548Ross Paterson <ross@soi.city.ac.uk>**20060821152151
549 
550 * Alternative class, for functors with a monoid
551 * instances for Const
552 * instances for arrows
553]
554[generate Haddock docs on all platforms
555Simon Marlow <simonmar@microsoft.com>**20060821131612]
556[remove extra comma from import
557Ross Paterson <ross@soi.city.ac.uk>**20060819173954]
558[fix docs for withC(A)StringLen
559Ross Paterson <ross@soi.city.ac.uk>**20060818170328]
560[use Haskell'98 compliant indentation in do blocks
561Malcolm.Wallace@cs.york.ac.uk**20060818130810]
562[use correct names of IOArray operations for nhc98
563Malcolm.Wallace@cs.york.ac.uk**20060818130714]
564[add mapMaybe and mapEither, plus WithKey variants
565Ross Paterson <ross@soi.city.ac.uk>**20060817235041]
566[remove Text.Html from nhc98 build
567Malcolm.Wallace@cs.york.ac.uk**20060817135502]
568[eliminate more HOST_OS tests
569Ross Paterson <ross@soi.city.ac.uk>**20060815190609]
570[Hugs only: disable unused process primitives
571Ross Paterson <ross@soi.city.ac.uk>**20060813184435
572 
573 These were the cause of Hugs bug #30, I think, and weren't used by Hugs anyway.
574]
575[markup fix to Data.HashTable
576Ross Paterson <ross@soi.city.ac.uk>**20060812103835]
577[revert removal of ghcconfig.h from package.conf.in
578Ross Paterson <ross@soi.city.ac.uk>**20060812082702
579 
580 as it's preprocessed with -undef (pointed out by Esa Ilari Vuokko)
581]
582[fix Data.HashTable for non-GHC
583Ross Paterson <ross@soi.city.ac.uk>**20060811231521]
584[remove deprecated 'withObject'
585Simon Marlow <simonmar@microsoft.com>**20060811152350]
586[Jan-Willem Maessen's improved implementation of Data.HashTable
587Simon Marlow <simonmar@microsoft.com>**20060811151024
588 Rather than incrementally enlarging the hash table, this version
589 just does it in one go when the table gets too full.
590]
591[Warning police: Make some prototypes from the RTS known
592sven.panne@aedion.de**20060811144629]
593[Warning police: Removed useless catch-all clause
594sven.panne@aedion.de**20060811142208]
595[reduce dependency on ghcconfig.h
596Ross Paterson <ross@soi.city.ac.uk>**20060811124030
597 
598 The only remaining use is in cbits/dirUtils.h, which tests solaris2_HOST_OS
599 
600 (Also System.Info uses ghcplatform.h and several modules import MachDeps.h
601 to get SIZEOF_* and ALIGNMENT_* from ghcautoconf.h)
602]
603[(non-GHC only) track MArray interface change
604Ross Paterson <ross@soi.city.ac.uk>**20060810182902]
605[move Text.Html to a separate package
606Simon Marlow <simonmar@microsoft.com>**20060810113017]
607[bump version to 2.0
608Simon Marlow <simonmar@microsoft.com>**20060810112833]
609[Remove deprecated Data.FiniteMap and Data.Set interfaces
610Simon Marlow <simonmar@microsoft.com>**20060809153810]
611[move altzone test from ghc to base package
612Ross Paterson <ross@soi.city.ac.uk>**20060809124259]
613[remove unnecessary #include "ghcconfig.h"
614Ross Paterson <ross@soi.city.ac.uk>**20060809123812]
615[Change the API of MArray to allow resizable arrays
616Simon Marlow <simonmar@microsoft.com>**20060809100548
617 See #704
618 
619 The MArray class doesn't currently allow a mutable array to change its
620 size, because of the pure function
621 
622   bounds :: (HasBounds a, Ix i) => a i e -> (i,i)
623 
624 This patch removes the HasBounds class, and adds
625 
626   getBounds :: (MArray a e m, Ix i) => a i e -> m (i,i)
627 
628 to the MArray class, and
629 
630   bounds :: (IArray a e, Ix i) => a i e -> (i,i)
631 
632 to the IArray class.
633 
634 The reason that bounds had to be incorporated into the IArray class is
635 because I couldn't make DiffArray work without doing this.  DiffArray
636 acts as a layer converting an MArray into an IArray, and there was no
637 way (that I could find) to define an instance of HasBounds for
638 DiffArray.
639]
640[deprecate this module.
641Simon Marlow <simonmar@microsoft.com>**20060808100708]
642[add traceShow (see #474)
643Simon Marlow <simonmar@microsoft.com>**20060807155545]
644[remove spurious 'extern "C" {'
645Simon Marlow <simonmar@microsoft.com>**20060724160258]
646[Fix unsafeIndex for large ranges
647Simon Marlow <simonmar@microsoft.com>**20060721100225]
648[disambiguate uses of foldr for nhc98 to compile without errors
649Malcolm.Wallace@cs.york.ac.uk**20060711161614]
650[make Control.Monad.Instances compilable by nhc98
651Malcolm.Wallace@cs.york.ac.uk**20060711160941]
652[breakpointCond
653Lemmih <lemmih@gmail.com>**20060708055528]
654[UNDO: Merge "unrecognized long opt" fix from 6.4.2
655Simon Marlow <simonmar@microsoft.com>**20060705142537
656 This patch undid the previous patch, "RequireOrder: do not collect
657 unrecognised options after a non-opt".  I asked Sven to revert it, but
658 didn't get an answer.
659 
660 See bug #473.
661]
662[Avoid strictness in accumulator for unpackFoldr
663Don Stewart <dons@cse.unsw.edu.au>**20060703091806
664 
665 The seq on the accumulator for unpackFoldr will break in the presence of
666 head/build rewrite rules. The empty list case will be forced, producing
667 an exception. This is a known issue with seq and rewrite rules that we
668 just stumbled on to.
669 
670]
671[Disable unpack/build fusion
672Don Stewart <dons@cse.unsw.edu.au>**20060702083913
673 
674 unpack/build on bytestrings seems to trigger a bug when interacting with
675 head/build fusion in GHC.List. The bytestring001 testcase catches it.
676 
677 I'll investigate further, but best to disable this for now (its not
678 often used anyway).
679 
680 Note that with -frules-off or ghc 6.4.2 things are fine. It seems to
681 have emerged with the recent rules changes.
682 
683]
684[Import Data.ByteString.Lazy, improve ByteString Fusion, and resync with FPS head
685Don Stewart <dons@cse.unsw.edu.au>**20060701084345
686 
687 This patch imports the Data.ByteString.Lazy module, and its helpers,
688 providing a ByteString implemented as a lazy list of strict cache-sized
689 chunks. This type allows the usual lazy operations to be written on
690 bytestrings, including lazy IO, with much improved space and time over
691 the [Char] equivalents.
692 
693]
694[Wibble in docs for new ForeignPtr functionsn
695Don Stewart <dons@cse.unsw.edu.au>**20060609075924]
696[comments for Applicative and Traversable
697Ross Paterson <ross@soi.city.ac.uk>**20060622170436]
698[default to NoBuffering on Windows for a read/write text file
699Simon Marlow <simonmar@microsoft.com>**20060622144446
700 Fixes (works around) #679
701]
702[remove dead code
703Simon Marlow <simonmar@microsoft.com>**20060622144433]
704[clarify and expand docs
705Simon Marlow <simonmar@microsoft.com>**20060622112911]
706[Add minView and maxView to Map and Set
707jeanphilippe.bernardy@gmail.com**20060616180121]
708[add signature for registerDelay
709Ross Paterson <ross@soi.city.ac.uk>**20060614114456]
710[a few doc comments
711Ross Paterson <ross@soi.city.ac.uk>**20060613142704]
712[Optimised foreign pointer representation, for heap-allocated objects
713Don Stewart <dons@cse.unsw.edu.au>**20060608015011]
714[Add the inline function, and many comments
715simonpj@microsoft.com**20060605115814
716 
717 This commit adds the 'inline' function described in the
718 related patch in the compiler.
719 
720 I've also added comments about the 'lazy' function.
721 
722]
723[small intro to exceptions
724Ross Paterson <ross@soi.city.ac.uk>**20060525111604]
725[export breakpoint
726Simon Marlow <simonmar@microsoft.com>**20060525090456]
727[Merge in changes from fps head. Highlights:
728Don Stewart <dons@cse.unsw.edu.au>**20060525065012
729 
730     Wed May 24 15:49:38 EST 2006  sjanssen@cse.unl.edu
731       * instance Monoid ByteString
732 
733     Wed May 24 15:04:04 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
734       * Rearange export lists for the .Char8 modules
735 
736     Wed May 24 14:59:56 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
737       * Implement mapAccumL and reimplement mapIndexed using loopU
738 
739     Wed May 24 14:47:32 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
740       * Change the implementation of the unfoldr(N) functions.
741       Use a more compact implementation for unfoldrN and change it's behaviour
742       to only return Just in the case that it actually 'overflowed' the N, so
743       the boundary case of unfolding exactly N gives Nothing.
744       Implement unfoldr and Lazy.unfoldr in terms of unfoldrN. Use fibonacci
745       growth for the chunk size in unfoldr
746 
747     Wed May 24 08:32:29 EST 2006  sjanssen@cse.unl.edu
748       * Add unfoldr to ByteString and .Char8
749       A preliminary implementation of unfoldr.
750 
751     Wed May 24 01:39:41 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
752       * Reorder the export lists to better match the Data.List api
753 
754     Tue May 23 14:04:32 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
755       * pack{Byte,Char} -> singleton. As per fptools convention
756 
757     Tue May 23 14:00:51 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
758       * elemIndexLast -> elemIndexEnd
759 
760     Tue May 23 13:57:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
761       * In the search for a more orthogonal api, we kill breakFirst/breakLast,
762         which were of dubious value
763 
764     Tue May 23 12:24:09 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
765       * Abolish elems. It's name implied it was unpack, but its type didn't. it made no sense
766 
767     Tue May 23 10:42:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
768       * Minor doc tidyup. Use haddock markup better.
769 
770     Tue May 23 11:00:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
771       * Simplify the join() implementation. Spotted by Duncan.
772 
773]
774[add a way to ask the IO manager thread to exit
775Simon Marlow <simonmar@microsoft.com>**20060524121823]
776[Sync with FPS head, including the following patches:
777Don Stewart <dons@cse.unsw.edu.au>**20060520030436
778         
779     Thu May 18 15:45:46 EST 2006  sjanssen@cse.unl.edu
780       * Export unsafeTake and unsafeDrop
781 
782     Fri May 19 11:53:08 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
783       * Add foldl1'
784 
785     Fri May 19 13:41:24 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
786       * Add fuseable scanl, scanl1 + properties
787 
788     Fri May 19 18:20:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
789       * Spotted another chance to use unsafeTake,Drop (in groupBy)
790 
791     Thu May 18 09:24:25 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
792       * More effecient findIndexOrEnd based on the impl of findIndex
793 
794     Thu May 18 09:22:49 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
795       * Eliminate special case in findIndex since it's handled anyway.
796 
797     Thu May 18 09:19:08 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
798       * Add unsafeTake and unsafeDrop
799       These versions assume the n is in the bounds of the bytestring, saving
800       two comparison tests. Then use them in varous places where we think this
801       holds. These cases need double checking (and there are a few remaining
802       internal uses of take / drop that might be possible to convert).
803       Not exported for the moment.
804 
805     Tue May 16 23:15:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
806       * Handle n < 0 in drop and splitAt. Spotted by QC.
807 
808     Tue May 16 22:46:22 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
809       * Handle n <= 0 cases for unfoldr and replicate. Spotted by QC
810 
811     Tue May 16 21:34:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
812       * mapF -> map', filterF -> filter'
813 
814]
815[haddock fix
816Ross Paterson <ross@soi.city.ac.uk>**20060518154723]
817[simplify indexing in Data.Sequence
818Ross Paterson <ross@soi.city.ac.uk>**20060518154316]
819[Move Eq, Ord, Show instances for ThreadId to GHC.Conc
820Simon Marlow <simonmar@microsoft.com>**20060518113339
821 Eliminates orphans.
822]
823[Better error handling in the IO manager thread
824Simon Marlow <simonmar@microsoft.com>**20060518113303
825 In particular, handle EBADF just like rts/posix/Select.c, by waking up
826 all the waiting threads.  Other errors are thrown, instead of just
827 being ignored.
828]
829[#define _REENTRANT 1  (needed to get the right errno on some OSs)
830Simon Marlow <simonmar@microsoft.com>**20060518104151
831 Part 2 of the fix for threaded RTS problems on Solaris and possibly
832 *BSD (Part 1 was the same change in ghc/includes/Rts.h).
833]
834[copyCString* should be in IO. Spotted by Tomasz Zielonka
835Don Stewart <dons@cse.unsw.edu.au>**20060518012154]
836[add import Prelude to get dependencies right for Data/Fixed.hs
837Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060517222044
838 Hopefully this fixes parallel builds.
839]
840[Fix negative index handling in splitAt, replicate and unfoldrN. Move mapF, filterF -> map', filter' while we're here
841Don Stewart <dons@cse.unsw.edu.au>**20060517020150]
842[Use our own realloc. Thus reduction functions (like filter) allocate on the Haskell heap. Makes around 10% difference.
843Don Stewart <dons@cse.unsw.edu.au>**20060513051736]
844[Last two CInt fixes for 64 bit, and bracket writeFile while we're here
845Don Stewart <dons@cse.unsw.edu.au>**20060512050750]
846[Some small optimisations, generalise the type of unfold
847Don Stewart <dons@cse.unsw.edu.au>**20060510043309
848 
849     Tue May  9 22:36:29 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
850       * Surely the error function should not be inlined.
851 
852     Tue May  9 22:35:53 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
853       * Reorder memory writes for better cache locality.
854 
855     Tue May  9 23:28:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
856       * Generalise the type of unfoldrN
857       
858       The type of unfoldrN was overly constrained:
859       unfoldrN :: Int -> (Word8 -> Maybe (Word8, Word8)) -> Word8 -> ByteString
860       
861       if we compare that to unfoldr:
862       unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
863       
864       So we can generalise unfoldrN to this type:
865       unfoldrN :: Int -> (a -> Maybe (Word8, a)) -> a -> ByteString
866       
867       and something similar for the .Char8 version. If people really do want to
868       use it a lot with Word8/Char then perhaps we should add a specialise pragma.
869 
870     Wed May 10 13:26:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
871       * Add foldl', and thus a fusion rule for length . {map,filter,fold},
872       that avoids creating an array at all if the end of the pipeline is a 'length' reduction
873 
874 **END OF DESCRIPTION***
875 
876 Place the long patch description above the ***END OF DESCRIPTION*** marker.
877 The first line of this file will be the patch name.
878 
879 
880 This patch contains the following changes:
881 
882 M ./Data/ByteString.hs -8 +38
883 M ./Data/ByteString/Char8.hs -6 +12
884]
885[portable implementation of WordPtr/IntPtr for non-GHC
886Ross Paterson <ross@soi.city.ac.uk>**20060510001826
887 
888 plus much tweaking of imports to avoid cycles
889]
890[add WordPtr and IntPtr types to Foreign.Ptr, with associated conversions
891Simon Marlow <simonmar@microsoft.com>**20060509092606
892 
893 As suggested by John Meacham. 
894 
895 I had to move the Show instance for Ptr into GHC.ForeignPtr to avoid
896 recursive dependencies.
897]
898[add CIntPtr, CUIntPtr, CIntMax, CUIntMax types
899Simon Marlow <simonmar@microsoft.com>**20060509092427]
900[add GHC.Dynamic
901Simon Marlow <simonmar@microsoft.com>**20060509082739]
902[Two things. #if defined(__GLASGOW_HASKELL__) on INLINE [n] pragmas (for jhc). And careful use of INLINE on words/unwords halves runtime for those functions
903Don Stewart <dons@cse.unsw.edu.au>**20060509023425]
904[Make length a good consumer
905simonpj@microsoft**20060508142726
906 
907 Make length into a good consumer.  Fixes Trac bug #707.
908 
909 (Before length simply didn't use foldr.)
910 
911]
912[Trim imports
913simonpj@microsoft**20060508142557]
914[Make unsafePerformIO lazy
915simonpj@microsoft**20060508142507
916 
917 The stricteness analyser used to have a HACK which ensured that NOINLNE things
918 were not strictness-analysed.  The reason was unsafePerformIO. Left to itself,
919 the strictness analyser would discover this strictness for unsafePerformIO:
920        unsafePerformIO:  C(U(AV))
921 But then consider this sub-expression
922        unsafePerformIO (\s -> let r = f x in
923                               case writeIORef v r s of (# s1, _ #) ->
924                               (# s1, r #)
925 The strictness analyser will now find that r is sure to be eval'd,
926 and may then hoist it out.  This makes tests/lib/should_run/memo002
927 deadlock.
928 
929 Solving this by making all NOINLINE things have no strictness info is overkill.
930 In particular, it's overkill for runST, which is perfectly respectable.
931 Consider
932        f x = runST (return x)
933 This should be strict in x.
934 
935 So the new plan is to define unsafePerformIO using the 'lazy' combinator:
936 
937        unsafePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r)
938 
939 Remember, 'lazy' is a wired-in identity-function Id, of type a->a, which is
940 magically NON-STRICT, and is inlined after strictness analysis.  So
941 unsafePerformIO will look non-strict, and that's what we want.
942 
943]
944[Sync with FPS head.
945Don Stewart <dons@cse.unsw.edu.au>**20060508122322
946 
947 Mon May  8 10:40:14 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
948   * Fix all uses for Int that should be CInt or CSize in ffi imports.
949   Spotted by Igloo, dcoutts
950 
951 Mon May  8 16:09:41 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
952   * Import nicer loop/loop fusion rule from ghc-ndp
953 
954 Mon May  8 17:36:07 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
955   * Fix stack leak in split on > 60M strings
956 
957 Mon May  8 17:50:13 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
958   * Try same fix for stack overflow in elemIndices
959 
960]
961[Fix all uses for Int that should be CInt or CSize in ffi imports. Spotted by Duncan and Ian
962Don Stewart <dons@cse.unsw.edu.au>**20060508010311]
963[Fixed import list syntax
964Sven Panne <sven.panne@aedion.de>**20060507155008]
965[Faster filterF, filterNotByte
966dons@cse.unsw.edu.au**20060507042301]
967[Much faster find, findIndex. Hint from sjanssen
968dons@cse.unsw.edu.au**20060507033048]
969[Merge "unrecognized long opt" fix from 6.4.2
970Sven Panne <sven.panne@aedion.de>**20060506110519]
971[
972dons@cse.unsw.edu.au**20060506061029
973 Sat May  6 13:01:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
974   * Do loopU realloc on the Haskell heap. And add a really tough stress test
975 
976 Sat May  6 12:28:58 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
977   * Use simple, 3x faster concat. Plus QC properties. Suggested by sjanssen and dcoutts
978 
979 Sat May  6 15:59:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
980   * dcoutt's packByte bug squashed
981   
982   With inlinePerformIO, ghc head was compiling:
983   
984    packByte 255 `compare` packByte 127
985   
986   into roughly
987   
988    case mallocByteString 2 of
989        ForeignPtr f internals ->
990             case writeWord8OffAddr# f 0 255 of _ ->
991             case writeWord8OffAddr# f 0 127 of _ ->
992             case eqAddr# f f of
993                    False -> case compare (GHC.Prim.plusAddr# f 0)
994                                          (GHC.Prim.plusAddr# f 0)
995   
996   which is rather stunning. unsafePerformIO seems to prevent whatever
997   magic inlining was leading to this. Only affected the head.
998   
999]
1000[Add array fusion versions of map, filter and foldl
1001dons@cse.unsw.edu.au**20060505060858
1002 
1003 This patch adds fusable map, filter and foldl, using the array fusion
1004 code for unlifted, flat arrays, from the Data Parallel Haskell branch,
1005 after kind help from Roman Leshchinskiy,
1006 
1007 Pipelines of maps, filters and folds should now need to walk the
1008 bytestring once only, and intermediate bytestrings won't be constructed.
1009 
1010]
1011[fix for non-GHC
1012Ross Paterson <ross@soi.city.ac.uk>**20060504093044]
1013[use bracket in appendFile (like writeFile)
1014Ross Paterson <ross@soi.city.ac.uk>**20060504091528]
1015[writeFile: close the file on error
1016Simon Marlow <simonmar@microsoft.com>**20060504084505
1017 Suggested by Ross Paterson, via Neil Mitchell
1018 
1019]
1020[Sync with FPS head
1021dons@cse.unsw.edu.au**20060503105259
1022 
1023 This patch brings Data.ByteString into sync with the FPS head.
1024 The most significant of which is the new Haskell counting sort.
1025 
1026 Changes:
1027 
1028 Sun Apr 30 18:16:29 EST 2006  sjanssen@cse.unl.edu
1029   * Fix foldr1 in Data.ByteString and Data.ByteString.Char8
1030 
1031 Mon May  1 11:51:16 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1032   * Add group and groupBy. Suggested by conversation between sjanssen and petekaz on #haskell
1033 
1034 Mon May  1 16:42:04 EST 2006  sjanssen@cse.unl.edu
1035   * Fix groupBy to match Data.List.groupBy.
1036 
1037 Wed May  3 15:01:07 EST 2006  sjanssen@cse.unl.edu
1038   * Migrate to counting sort.
1039   
1040   Data.ByteString.sort used C's qsort(), which is O(n log n).  The new algorithm
1041   is O(n), and is faster for strings larger than approximately thirty bytes.  We
1042   also reduce our dependency on cbits!
1043 
1044]
1045[improve performance of Integer->String conversion
1046Simon Marlow <simonmar@microsoft.com>**20060503113306
1047 See
1048  http://www.haskell.org//pipermail/libraries/2006-April/005227.html
1049 
1050 Submitted by: bertram.felgenhauer@googlemail.com
1051 
1052 
1053]
1054[inline withMVar, modifyMVar, modifyMVar_
1055Simon Marlow <simonmar@microsoft.com>**20060503111152]
1056[Fix string truncating in hGetLine -- it was a pasto from Simon's code
1057Simon Marlow <simonmar@microsoft.com>**20060503103504
1058 (from Don Stewart)
1059]
1060[Merge in Data.ByteString head. Fixes ByteString+cbits in hugs
1061Don Stewart <dons@cse.unsw.edu.au>**20060429040733]
1062[Import Data.ByteString from fps 0.5.
1063Don Stewart <dons@cse.unsw.edu.au>**20060428130718
1064 Fast, packed byte vectors, providing a better PackedString.
1065 
1066]
1067[fix previous patch
1068Ross Paterson <ross@soi.city.ac.uk>**20060501154847]
1069[fixes for non-GHC
1070Ross Paterson <ross@soi.city.ac.uk>**20060501144322]
1071[fix imports for mingw32 && !GHC
1072Ross Paterson <ross@soi.city.ac.uk>**20060427163248]
1073[RequireOrder: do not collect unrecognised options after a non-opt
1074Simon Marlow <simonmar@microsoft.com>**20060426121110
1075 The documentation for RequireOrder says "no option processing after
1076 first non-option", so it doesn't seem right that we should process the
1077 rest of the arguments to collect the unrecognised ones.  Presumably
1078 the client wants to know about the unrecognised options up to the
1079 first non-option, and will be using a different option parser for the
1080 rest of the command line.
1081 
1082 eg. before:
1083 
1084 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
1085 ([],["bar","--foo"],["--foo"],[])
1086 
1087 after:
1088 
1089 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
1090 ([],["bar","--foo"],[],[])
1091]
1092[fix for Haddock 0.7
1093Ashley Yakeley <ashley@semantic.org>**20060426072521]
1094[add Data.Fixed module
1095Ashley Yakeley <ashley@semantic.org>**20060425071853]
1096[add instances
1097Ross Paterson <ross@soi.city.ac.uk>**20060424102146]
1098[add superclasses to Applicative and Traversable
1099Ross Paterson <ross@soi.city.ac.uk>**20060411144734
1100 
1101 Functor is now a superclass of Applicative, and Functor and Foldable
1102 are now superclasses of Traversable.  The new hierarchy makes clear the
1103 inclusions between the classes, but means more work in defining instances.
1104 Default definitions are provided to help.
1105]
1106[add Functor and Monad instances for Prelude types
1107Ross Paterson <ross@soi.city.ac.uk>**20060410111443]
1108[GHC.Base.breakpoint
1109Lemmih <lemmih@gmail.com>**20060407125827]
1110[Track the GHC source tree reorganisation
1111Simon Marlow <simonmar@microsoft.com>**20060407041631]
1112[in the show instance for Exception, print the type of dynamic exceptions
1113Simon Marlow <simonmar@microsoft.com>**20060406112444
1114 Unfortunately this requires some recursve module hackery to get at
1115 the show instance for Typeable.
1116]
1117[implement ForeignEnvPtr, newForeignPtrEnv, addForeignPtrEnv for GHC
1118Simon Marlow <simonmar@microsoft.com>**20060405155448]
1119[add  forkOnIO :: Int -> IO () -> IO ThreadId
1120Simon Marlow <simonmar@microsoft.com>**20060327135018]
1121[Rework previous: not a gcc bug after all
1122Simon Marlow <simonmar@microsoft.com>**20060323161229
1123 It turns out that we were relying on behaviour that is undefined in C,
1124 and undefined behaviour in C means "the compiler can do whatever the
1125 hell it likes with your entire program".  So avoid that.
1126]
1127[work around a gcc 4.1.0 codegen bug in -O2 by forcing -O1 for GHC.Show
1128Simon Marlow <simonmar@microsoft.com>**20060323134514
1129 See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26824
1130]
1131[commit mysteriously missing parts of "runIOFastExit" patch
1132Simon Marlow <simonmar@microsoft.com>**20060321101535]
1133[add runIOFastExit :: IO a -> IO a
1134Simon Marlow <simonmar@microsoft.com>**20060320124333
1135 Similar to runIO, but calls stg_exit() directly to exit, rather than
1136 shutdownHaskellAndExit().  Needed for running GHCi in the test suite.
1137]
1138[Fix a broken invariant
1139Simon Marlow <simonmar@microsoft.com>**20060316134151
1140 Patch from #694,  for the problem "empty is an identity for <> and $$" is
1141 currently broken by eg. isEmpty (empty<>empty)"
1142]
1143[Add unsafeSTToIO :: ST s a -> IO a
1144Simon Marlow <simonmar@microsoft.com>**20060315160232
1145 Implementation for Hugs is missing, but should be easy.  We need this
1146 for the forthcoming nested data parallelism implementation.
1147]
1148[Added 'alter'
1149jeanphilippe.bernardy@gmail.com**20060315143539
1150 Added 'alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a' to IntMap and Map
1151 This addresses ticket #665
1152]
1153[deprecate FunctorM in favour of Foldable and Traversable
1154Ross Paterson <ross@soi.city.ac.uk>**20060315092942
1155 as discussed on the libraries list.
1156]
1157[Simplify Eq, Ord, and Show instances for UArray
1158Simon Marlow <simonmar@microsoft.com>**20060313142701
1159 The Eq, Ord, and Show instances of UArray were written out longhand
1160 with one instance per element type.  It is possible to condense these
1161 into a single instance for each class, at the expense of using more
1162 extensions (non-std context on instance declaration).
1163 
1164 Suggestion by: Frederik Eaton <frederik@ofb.net>
1165 
1166]
1167[Oops typo in intSet notMember
1168jeanphilippe.bernardy@gmail.com**20060311224713]
1169[IntMap lookup now returns monad instead of Maybe.
1170jeanphilippe.bernardy@gmail.com**20060311224502]
1171[Added notMember to Data.IntSet and Data.IntMap
1172jeanphilippe.bernardy@gmail.com**20060311085221]
1173[add Data.Set.notMember and Data.Map.notMember
1174John Meacham <john@repetae.net>**20060309191806]
1175[addToClockTime: handle picoseconds properly
1176Simon Marlow <simonmar@microsoft.com>**20060310114532
1177 fixes #588
1178]
1179[make head/build rule apply to all types, not just Bool.
1180John Meacham <john@repetae.net>**20060303045753]
1181[Avoid overflow when normalising clock times
1182Ian Lynagh <igloo@earth.li>**20060210144638]
1183[Years have 365 days, not 30*365
1184Ian Lynagh <igloo@earth.li>**20060210142853]
1185[declare blkcmp() static
1186Simon Marlow <simonmar@microsoft.com>**20060223134317]
1187[typo in comment in Foldable class
1188Ross Paterson <ross@soi.city.ac.uk>**20060209004901]
1189[simplify fmap
1190Ross Paterson <ross@soi.city.ac.uk>**20060206095048]
1191[update ref in comment
1192Ross Paterson <ross@soi.city.ac.uk>**20060206095139]
1193[Give -foverlapping-instances to Data.Typeable
1194simonpj@microsoft**20060206133439
1195 
1196 For some time, GHC has made -fallow-overlapping-instances "sticky":
1197 any instance in a module compiled with -fallow-overlapping-instances
1198 can overlap when imported, regardless of whether the importing module
1199 allows overlap.  (If there is an overlap, both instances must come from
1200 modules thus compiled.)
1201 
1202 Instances in Data.Typeable might well want to be overlapped, so this
1203 commit adds the flag to Data.Typeable (with an explanatory comment)
1204 
1205 
1206]
1207[Add -fno-bang-patterns to modules using both bang and glasgow-exts
1208simonpj@microsoft.com**20060203175759]
1209[When splitting a bucket, keep the contents in the same order
1210Simon Marlow <simonmar@microsoft.com>**20060201130427
1211 To retain the property that multiple inserts shadow each other
1212 (see ticket #661, test hash001)
1213]
1214[add foldr/build optimisation for take and replicate
1215Simon Marlow <simonmar@microsoft.com>**20060126164603
1216 This allows take to be deforested, and improves performance of
1217 replicate and replicateM/replicateM_.  We have a separate problem that
1218 means expressions involving [n..m] aren't being completely optimised
1219 because eftIntFB isn't being inlined but otherwise the results look
1220 good. 
1221 
1222 Sadly this has invalidated a number of the nofib benchmarks which were
1223 erroneously using take to duplicate work in a misguided attempt to
1224 lengthen their runtimes (ToDo).
1225]
1226[Generate PrimopWrappers.hs with Haddock docs
1227Simon Marlow <simonmar@microsoft.com>**20060124131121
1228 Patch originally from Dinko Tenev <dinko.tenev@gmail.com>, modified
1229 to add log message by me.
1230]
1231[[project @ 2006-01-19 14:47:15 by ross]
1232ross**20060119144715
1233 backport warning avoidance from Haddock
1234]
1235[[project @ 2006-01-18 11:45:47 by malcolm]
1236malcolm**20060118114547
1237 Fix import of Ix for nhc98.
1238]
1239[[project @ 2006-01-17 09:38:38 by ross]
1240ross**20060117093838
1241 add Ix instance for GeneralCategory.
1242]
1243[TAG Initial conversion from CVS complete
1244John Goerzen <jgoerzen@complete.org>**20060112154126]
1245Patch bundle hash:
1246153284379bf3926717483a3a7c47b27f69466c83