Skip to content
cccskills
FreePublished on GitHub

hoogle

Search Haskell APIs using Hoogle. Use when working with Haskell projects to look up function signatures, find functions by type, discover library documentation, or identify which module exports an item.

The English summary is being prepared. Showing the original description.

See how to install

Files included (4)

  • SKILL.md2.6 KB
  • scripts/hoogle-init-db.sh2.2 KB
  • scripts/hoogle-remote.sh2.2 KB
  • scripts/hoogle-search.sh2.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Hoogle API Search

Hoogle is a Haskell API search engine. Use it to find functions by name or by type signature.

When To Use Hoogle

Use Hoogle when:

  • Working with Haskell code and needing to find a function.
  • Looking up a type signature.
  • Searching for functions that match a type signature, such as a -> b -> a.
  • Finding which module exports a particular function.
  • Looking up documentation for Haskell functions.

Search Methods

Search by function name:

.codex/skills/hoogle/scripts/hoogle-search.sh "map"

Search by type signature:

.codex/skills/hoogle/scripts/hoogle-search.sh "a -> b -> a"

Search with a package filter:

.codex/skills/hoogle/scripts/hoogle-search.sh "+base map"
.codex/skills/hoogle/scripts/hoogle-search.sh "+containers Data.Map.lookup"

Get detailed information for the first result:

.codex/skills/hoogle/scripts/hoogle-search.sh "foldl" --info

Remote search is available when local search is unavailable or insufficient:

.codex/skills/hoogle/scripts/hoogle-remote.sh "map"

Result Shape

The search scripts return JSON:

{
  "results": [
    {
      "url": "https://hackage.haskell.org/package/base/docs/Prelude.html#v:map",
      "module": { "name": "Prelude", "url": "..." },
      "package": { "name": "base", "url": "..." },
      "item": "map :: (a -> b) -> [a] -> [b]",
      "docs": "..."
    }
  ],
  "query": "map",
  "count": 10
}

Key fields are item, docs, module.name, and package.name.

Database Initialization

Before local searching, ensure the Hoogle database exists:

.codex/skills/hoogle/scripts/hoogle-init-db.sh

For project-specific searches, generate a local database from Haddock docs:

.codex/skills/hoogle/scripts/hoogle-init-db.sh --local /path/to/haddock/docs

Common Search Patterns

GoalQuery Example
Find function by namefilter
Find by exact type(a -> Bool) -> [a] -> [a]
Find in specific package+lens view
Find class methodsMonad m => m a -> m b
Find by partial typeMap k v -> k -> Maybe v

Error Handling

If searches fail with database errors, regenerate the database:

.codex/skills/hoogle/scripts/hoogle-init-db.sh --force

If local search cannot work, use remote search or Hoogle's JSON endpoint:

https://hoogle.haskell.org/?hoogle=<URL_ENCODED_QUERY>&mode=json

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Read Haskell package documentation, Haddock HTML, Hackage pages, or dependency source for cabal nix-style projects. Prefer locally built/cached docs and source from the cabal store, dist-newstyle, plan.json, and repo-cache; fall back to Hackage only for packages outside the project dependency set or when local docs are unavailable.

The English summary is being prepared. Showing the original description.

konn/tamagoh3Updated Aug 2, 2026

Super-skill for developing Haskell projects with cabal nix-style builds. Orchestrates HLS diagnostics, Haddock, Hoogle, source formatting, and cabal-gild into one workflow. Use when writing, editing, refactoring, building, typechecking, fixing compiler errors, renaming symbols, looking up APIs, or changing dependencies in Haskell projects. Treat cabal.project as the source of truth, prefer HLS before full builds, and prefer local docs over remote lookup.

The English summary is being prepared. Showing the original description.

konn/tamagoh3Updated Aug 2, 2026

Format Haskell package descriptions and cabal project files with cabal-gild: *.cabal, cabal.project, cabal.project.local, and cabal.project.freeze. Use after editing dependencies or stanzas, when refreshing cabal-gild discover module lists, or when checking cabal file formatting.

The English summary is being prepared. Showing the original description.

konn/tamagoh3Updated Aug 2, 2026

Format Haskell source files: *.hs, *.lhs, and *.hsig, with the project's configured formatter: fourmolu, ormolu, or stylish-haskell. Use before compiling, after source edits, and when applying project style.

The English summary is being prepared. Showing the original description.

konn/tamagoh3Updated Aug 2, 2026

See all skills by konn

Report a problem with this skill