[trac seems unreachable at the moment, hence good old email]
while trying to write a test for an extension of :browse, i encountered
an issue with the existing functionality: the order of names is not stable,
making it difficult to write meaningful tests for :browse.
a reduced test case & output are appended below, showing that
output order is affected by prior usage, in both 6.6.1 and HEAD.
i would prefer for the items to appear in source order, but at the
point :browse gets a hand on them, source location information
might not be available; sorting by Name would be random due to
uniqueIds, and lexicographic sorting would be confusing to users
(spreading related items all over the alphabet, instead of keeping
the order in which they appear in source and documentation).
is there a way to keep the items in source order, within each
module (modules themselves could be sorted lexicographically)?
claus
--------------------------------------- testing :browse
$ cat y.hs
import Prelude()
import Data.Maybe(catMaybes,mapMaybe)
$ cat .ghci
:t Data.Maybe.mapMaybe
$ ghcii.sh --version
The Glorious Glasgow Haskell Compilation System, version 6.6.1
$ /cygdrive/c/fptools/ghc/compiler/stage2/ghc-inplace --interactive --version
The Glorious Glasgow Haskell Compilation System, version 6.9.20071019
$ (echo :l y.hs;echo :browse '*Main') | ghcii.sh -v0
Data.Maybe.mapMaybe :: (a -> Maybe b) -> [a] -> [b]
mapMaybe :: (a -> Data.Maybe.Maybe b) -> [a] -> [b]
catMaybes :: [Data.Maybe.Maybe a] -> [a]
$ (echo :l y.hs;echo :browse '*Main') | ghcii.sh -v0 -ignore-dot-ghci
catMaybes :: [Data.Maybe.Maybe a] -> [a]
mapMaybe :: (a -> Data.Maybe.Maybe b) -> [a] -> [b]
$ (echo :l y.hs;echo :browse '*Main') |
/cygdrive/c/fptools/ghc/compiler/stage2/ghc-inplace --inter
active -v0
Data.Maybe.mapMaybe :: (a -> Maybe b) -> [a] -> [b]
mapMaybe :: (a -> Data.Maybe.Maybe b) -> [a] -> [b]
catMaybes :: [Data.Maybe.Maybe a] -> [a]
$ (echo :l y.hs;echo :browse '*Main') |
/cygdrive/c/fptools/ghc/compiler/stage2/ghc-inplace --inter
active -v0 -ignore-dot-ghci
catMaybes :: [Data.Maybe.Maybe a] -> [a]
mapMaybe :: (a -> Data.Maybe.Maybe b) -> [a] -> [b]
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs