Search Haskell APIs using Hoogle. Use this skill when working with Haskell projects to look up function signatures, find functions by type, or discover library documentation. Activate proactively when you need to understand Haskell library APIs, find the right function for a task, or look up type signatures.
Searches Haskell APIs by function name or type signature using Hoogle.
/plugin marketplace add m4dc4p/claude-hoogle/plugin install m4dc4p-hoogle@m4dc4p/claude-hoogleThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/hoogle-reference.mdHoogle is a Haskell API search engine. Use it to find functions by name or by type signature.
Use Hoogle proactively when:
a -> b -> a)${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-search.sh "map"
Returns functions named "map" or containing "map" in their name.
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-search.sh "a -> b -> a"
Returns functions matching that type signature. Type variables are automatically generalized.
Include package names in the query:
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-search.sh "+base map"
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-search.sh "+containers Data.Map.lookup"
Use --info for the first result's documentation:
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-search.sh "foldl" --info
The search returns JSON with this structure:
{
"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": "map f xs is the list obtained by applying f to each element..."
}
],
"query": "map",
"count": 10
}
Key fields:
item: The function signaturedocs: Documentation/descriptionmodule.name: The module that exports this functionpackage.name: The package containing this functionBefore searching, ensure the Hoogle database exists:
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-init-db.sh
This checks for a valid database and generates one from Stackage if needed. Generation takes several minutes on first run.
For project-specific searches, generate a local database:
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-init-db.sh --local /path/to/haddock/docs
| Goal | Query Example |
|---|---|
| Find function by name | hoogle-search.sh "filter" |
| Find by exact type | hoogle-search.sh "(a -> Bool) -> [a] -> [a]" |
| Find in specific package | hoogle-search.sh "+lens view" |
| Find class methods | hoogle-search.sh "Monad m => m a -> m b" |
| Find by partial type | hoogle-search.sh "Map k v -> k -> Maybe v" |
a -> a finds id, while [a] -> a finds head.+packagename.If searches fail with database errors, run:
${CLAUDE_PLUGIN_ROOT}/scripts/hoogle-init-db.sh --force
This regenerates the database from scratch.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.