hoogle-4.0: src/Hoogle/DataBase/All.hs
module Hoogle.DataBase.All
(DataBase, showDataBase
,TextScore, TypeScore
,module Hoogle.DataBase.All
,module Hoogle.DataBase.Serialise
) where
import Data.Binary.Defer.Index
import Hoogle.TextBase.All
import Hoogle.TypeSig.All
import Hoogle.DataBase.Type
import Hoogle.Item.All
import Hoogle.DataBase.Serialise
createDataBase :: TextBase -> DataBase
createDataBase xs = DataBase items
(createNameSearch ys) (createTypeSearch aliases instances ys)
(createSuggest ys) aliases instances
where
(items,ys) = createItems xs
zs = map fst ys
aliases = createAliases zs
instances = createInstances zs
searchName :: DataBase -> String -> [(Link Entry,EntryView,TextScore)]
searchName db = searchNameSearch (nameSearch db)
searchType :: DataBase -> TypeSig -> [(Link Entry,[EntryView],TypeScore)]
-- although aliases and instances are given, they are usually not used
searchType db = searchTypeSearch (aliases db) (instances db) (typeSearch db)
suggestion :: [DataBase] -> TypeSig -> Maybe (Either String TypeSig)
suggestion db = askSuggest (map suggest db)