후글(Hoogle)은 하스켈 API 검색 엔진이다.
하스켈 라이브러리, 모듈, 함수 등을 이름으로 찾을 수 있고 심지어 타입 시그니처로도 찾을 수 있다.
예를 들어 검색 창에 a -> a
처럼 타입 시그니처를 적으면 함수 id
가 결과로 나온다.
커맨드 라인 도구도 있다. 아래처럼 설치한다.
cabal install hoogle
설치 후에는 아래 명령어를 입력해서 로컬에 데이터베이스를 생성해야 한다.
hoogle generate
로컬 데이터베이스를 설치하지 않고 바로 검색을 시도하면 에러가 나지만 친절하게 이유와 다음 할 일을 알려준다.
% hoogle "a -> a"
Error, database does not exist (run 'hoogle generate' first)
데이터베이스 저장 완료 후에 검색을 하면 아래와 같이 검색 결과를 터미널에서 확인할 수 있다.
% hoogle "a -> a"
Prelude id :: a -> a
Data.Function id :: a -> a
GHC.Base id :: a -> a
GHC.Base breakpoint :: a -> a
GHC.Exts breakpoint :: a -> a
GHC.Exts inline :: a -> a
GHC.Exts noinline :: a -> a
GHC.Exts lazy :: a -> a
GHC.Magic inline :: a -> a
GHC.Magic noinline :: a -> a
-- plus more results not shown, pass --count=20 to see more