[Haskell] ANN: Hoogle with more libraries

Thomas Davie tom.davie at gmail.com
Sun Dec 21 06:11:41 EST 2008

Hi Neil,
   This is a great addition!  There's several packages up there that I  
want to search.  A couple of small bug reports though:

1. Searching using a package name that isn't all lower case results in  
nothing (e.g. (a -> b) -> f a -> f b +InfixApplicative gives no  
results, while (a -> b) -> f a -> f b +infixapplicative gives 2).
2. Searching with the +package syntax seems to remove all other  
possible results.  Perhaps it would be nice to show results from the  
default library set below.

And one feature request:
If you get the package name wrong (i.e. specify a package that hoogle  
can't see), it would be nice for it to report something like google  
does -- maybe you meant xyz.


On 21 Dec 2008, at 11:55, Neil Mitchell wrote:

> Hi,
> I am pleased to annouce that the Hoogle on http://haskell.org/hoogle
> will now search lots of the libraries present on hackage. For example,
> to search for the parse function in tagsoup, try:
> "parse +tagsoup" (http://haskell.org/hoogle/?hoogle=parse+%2Btagsoup)
> By default Hoogle will still search the default libraries it always
> has (cabal, base etc.) but now, by doing +packagename, you can search
> for any of the libraries listed at the bottom of this message. The
> work of generating the necessary search databases was done by Gwern
> Branwen, for which I am very grateful.
> This is early work, and there are certain to be bugs. For example,
> when searching a package String /= [Char], documentation might not
> always be present, constructors containing functions might be a bit
> iffy, not all packages are present, no executables are present, if you
> mistype the +packagename it won't say anything. Hopefully these will
> all be addressed over time.
> At the moment Hoogle searches will default to the small set of
> packages shipped with GHC. What should Hoogle default to? What
> compound sets of packages should be defined? i.e. there will probably
> be hlp which corresponds to all the Haskell Library Platform packages.
> This is a community tool, and these sorts of decisions are ones for
> the whole community. Otherwise by default you are likely to end up
> searching uniplate, tagsoup, safe, filepath, proposition, homeomorphic
> and binarydefer :-)
> I can't currently recompile Hoogle, which is a bit of an issue! The
> haskell.org server gives the error message "timer_create: Operation
> not supported" on any relatively recent binaries created by GHC. I
> need to be able to compile the hoogle executable and upload it so it
> works. I used to do this using a copy of GHC 6.6.1 installed at York,
> but that was recently removed (6.6.0 has a bug which crashes hoogle,
> 6.8+ makes use of timer_create). How easy is it to make the
> haskell.org server support timer_create? How easy is it to generate
> binaries that don't depend on it? Anyone any good advice?
> Please direct any follow-ups to haskell-cafe@
> Thanks
> Neil
> The libraries currently supported by hoogle are:
> adaptive aern-net alsa-midi ansi-terminal ansi-wl-pprint anydbm
> applescript arff array arrows astar attoparsec autoproc avltree
> base64-string benchpress bencode berkeleydbxml binary-search binary
> bio bitset bitsyntax bktrees bloomfilter botpp brainfuck
> bytestring-csv bytestring-mmap bytestring bytestringparser
> bytestringreadp c-io cabal cabalrpmdeps carray cc-delcont
> cgi-undecidable cgi change-monger chasingbottoms checked christmastree
> chunks classify clevercss cmath codec-compression-lzf codec-libevent
> colock colour compact-map condorcet containers control-monad-free
> control-monad-omega control-timeout cordering coreerlang cpphs csv
> ctemplate curl data-accessor-template data-accessor data-default
> data-ivar data-memocombinators data-quotientref dataenc debian-binary
> debugtracehelpers decimal delicious delimited-text diff dlist dotgen
> download-curl download drhylo dsp edisonapi edisoncore edit-distance
> editline eeconfig encode event-handlers event-list event-monad
> explicit-exception extensible-exceptions external-sort fec feed ffeed
> fgl fieldtrip filepath finance-quote-yahoo fingertree finitemap
> fixpoint flickr flock formlets freesound ftgl fungen funsat
> garsia-wachs geoip ghc-paths glfw-ogl glfw glob glut gmap gnuplot
> googlechart graphics-drawingcombinators graphicsformats graphscc
> graphviz gravatar grotetrap hacanon-light hake happs-ixset happs-util
> harm harp haskeline haskeline.txt haskell-lexer haskell-src-exts
> haskell-src haskell98 haxml haxml.txt hcl hcodecs heap hedi hexdump
> hexpat hfov hgalib hgdbmi hgeometric highlighting-kate hinotify
> hinstaller hjavascript hjs hjscript hledger hlongurl hmarkup hmeap
> hmidi hmm homeomorphic hopenssl hosc hosc.txt hpc hpdf hsasa hsc3-dot
> hsc3-unsafe hsc3 hsc3.txt hscolour hsconfigure hsemail hsh hshhelpers
> hslogger hslua hsoundfile hsparrot hspr-sh hstats hstringtemplate
> hstringtemplatehelpers hsx-xhtml html http-shed http http.txt
> httpd-shed hunit hxt-filter hxt i18n icalendar iff ifs imlib
> indentparser infinite-search infix infixapplicative interlude
> io-reactive ipprint irc join json lazyarray lcs libmpd libxml
> lispparser list-extras listlike listzipper logfloat logict lru lub
> maccatcher main main.txt marked-pretty markov-chain maybet mediawiki
> memotrie mersenne-random-pure64 mersenne-random microbench midi
> mime-string mime mmap mmtl monad-loops monad-param monadlab
> monadprompt monadrandom mps mtl-tf mtl mtlparse mucipher
> multisetrewrite munkres n-m nano-md5 nanocurses nat network-dns
> network-multicast network non-negative numbers numeric-prelude
> numeric-quest obdd oeis old-locale old-time onetuple openal opengl
> openglcheck opml packedstring parallel parport parse-dimacs parseargs
> parsec parsec.txt parsedate parserfunction pcre-light peano-inf
> penn-treebank phonetic-code pipe pkcs1 pngload polyparse popenhs porte
> powermate pqc pretty prettyclass printf-mauke printf-th priority-queue
> probability process property-list protocol-buffers-descriptor
> protocol-buffers psqueue pure-fft puremd5 queue quickcheck
> random-access-list random ranged-sets rangemin rbr rdtsc readline
> refserialize regex-base regex-compat regex-pcre-builtin regex-pcre
> regex-posix regexpr-symbolic regexpr regexqq reord rjson rmonad
> rosezipper rss safe safecopy scgi sdl-image sdl-mixer sdl-ttf sdl
> selenium setlocale shellac-compatline shellac-editline
> shellac-readline shellac simple-reflect simpleargs smallcheck
> smtpclient smtpclient.txt sphinx sqlite state stateref
> statistics-fusion stb-image stemmer stm stmcontrol stmonadtrans
> storable-complex stream stringsearch stringtable-atom suffixtree
> supercollider-ht swf syb sybwidget system-inotify system-uuid tabular
> taglib tagsoup-ht tagsoup tar tcache template-haskell template
> terminfo terminfo.txt test-framework-hunit test-framework-quickcheck
> th-fold thih thrist tttas typehash unamb unamb.txt unicode-names
> unicode-normalization unicode-properties uniplate unix-compat
> unix-pty-light unix unlambda uri-template url utf8-light utf8-prelude
> utf8-string uulib uvector-algorithms value-supply vcard vty wave
> wavesurfer whim witness wl-pprint workflow wurfl x11-extras x11-xft
> xcb-types xhtml xml-parsec xml yampa yjtools zip-archive zipedit
> zipfold zlib
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell

More information about the Haskell mailing list