Difference between revisions of "Hoogle/Bugs"

From HaskellWiki
Jump to navigation Jump to search
Line 10: Line 10:
 
* Either, should find Left and Right
 
* Either, should find Left and Right
 
* @hoogle (\=), bracket does not parse
 
* @hoogle (\=), bracket does not parse
  +
* ?hoogle (<<), goes crazy
 
* ThreadID -> IO (), does not find killThread :: ThreadId -> IO () (note Id vs ID)
 
* ThreadID -> IO (), does not find killThread :: ThreadId -> IO () (note Id vs ID)
   

Revision as of 14:12, 11 August 2006

Hoogle has plenty of bugs, consider them features until they are fixed :) To report a bug either email me or just add it to this list. I am slowly moving to a bug tracker, so you can enter them there if you want.


Bad Searches

  • (a -> b) -> ([a] -> [b]) -- should find map
  • @hoogle Data.IntMap.IntMap a -> [a] -- badly kills the module names
  • @hoogle -- , gives copyright message (consequence of argument parsing in command line)
  • Either, should find Left and Right
  • @hoogle (\=), bracket does not parse
  • ?hoogle (<<), goes crazy
  • ThreadID -> IO (), does not find killThread :: ThreadId -> IO () (note Id vs ID)

Higher Kinds

The following searches are all wrong because Hoogle doesn't understand higher kinds, i.e. Monad's.

  • Functor f => (a -> b) -> f a -> f b -- should find fmap
  • Monad m => [m a] -> m [a] -- should find sequence
  • (Monad m) => m (m a) -> m a -- should find join

Bad UI

  • hoogle is a bit stingey with the space limit on the module name, for many modules it cuts them off with "...", i.e. ParseError

Bad Ordering

  • Ptr a -> IO a [peek should be first]
    • Foreign.Storable.peekByteOff :: Storable a => Ptr b -> Int -> IO a
    • Foreign.Storable.peek :: Storable a => Ptr a -> IO a

Other Issues

While trying to run hihoo.pl on the NewBinary library, I received the following problems

hihoo is currently unmaintained, I recommend hadhtml. If someone is able to fix it up... --Neil Mitchell 19:22, 13 February 2006 (UTC)
*** can't parse data or newtype declaration:
data MBA
    Variances []
    RecFlag NonRecursive
    Generics: no
    {- abstract -}
*** can't parse data or newtype declaration:
data Bin a
    Variances [(False, False)]
    RecFlag NonRecursive
    Generics: no
    {- abstract -}
*** can't parse data declaration:
data BinHandle
    Variances []
    RecFlag NonRecursive
    Generics: no
    = BinMem NewBinary.FastMutInt.FastMutInt{1}
             NewBinary.FastMutInt.FastMutInt{1}
             (GHC.IOBase.IORef BinArray)
             NewBinary.FastMutInt.FastMutInt{1}
             NewBinary.FastMutInt.FastMutInt{1}
          Stricts: ! ! ! ! !
          Fields: off_r sz_r arr_r bit_off_r bit_cache_r |
      BinIO NewBinary.FastMutInt.FastMutInt{1}
            GHC.IOBase.Handle
            NewBinary.FastMutInt.FastMutInt{1}
            NewBinary.FastMutInt.FastMutInt{1}
          Stricts: ! ! ! !
          Fields: off_r hdl bit_off_r bit_cache_r
*** can't parse data or newtype declaration:
data FastMutInt
    Variances []
    RecFlag NonRecursive
    Generics: no
    {- abstract -}