skillfed

tree-sitter-haskell

Haskell grammar for tree-sitter

tree-sitter-haskell v0.23.1 121.4K downloads/30d#11,983 on PyPI186
Permissive license MIT AGING released

What it is and what it does

tree-sitter-haskell is a parser grammar for the tree-sitter incremental parsing framework, targeting the Haskell language. It translates Haskell source code into a concrete syntax tree that tools can query and analyze. The grammar supports most modern Haskell features, including many GHC language extensions (BangPatterns, GADTs, TypeFamilies, TemplateHaskell, and many others), though a few extensions remain unsupported or are not applicable to parsing.

The package is primarily used by developers building code analysis tools, linters, refactoring engines, or editor integrations that need to understand Haskell syntax. It does not parse or execute Haskell code itself; it only produces a tree representation. The grammar includes supertypes (expression, pattern, type, declaration, statement, etc.) that allow queries to match nodes at different levels of abstraction, making it suitable for both simple token extraction and complex semantic queries.

Use it for:

  • Build a Haskell linter or style checker that traverses the syntax tree to detect code patterns.
  • Implement editor features (syntax highlighting, code folding, go-to-definition) using tree-sitter queries.
  • Create a code refactoring tool that identifies and transforms specific Haskell syntax patterns.
  • Analyze Haskell codebases to extract metrics (function count, module dependencies, type usage).
  • Develop a documentation generator that parses Haskell source to extract type signatures and comments.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a tree-sitter parser grammar for Haskell, enabling incremental parsing and syntax tree generation for Haskell source code.

Yes, if you are building a Haskell code analysis or editor tool and need incremental parsing. The grammar is comprehensive and actively maintained. However, install only if you already use tree-sitter; this package is a grammar plugin, not a standalone parser. Be aware that the last release was 642 days ago, so check whether recent language extensions you need are supported.

Install

tree-sitter-haskell on PyPI

pip

pip install tree-sitter-haskell

uv

uv add tree-sitter-haskell

poetry

poetry add tree-sitter-haskell

Installing tree-sitter-haskell

Before you install

Medium install friction due to compiled wheels; prebuilt binaries available for common platforms (x86_64, ARM, Windows). Package is aging—last release was 642 days ago, though the repository remains active with recent commits.

License in practice

MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

Quickstart

pip install tree-sitter-haskell

from tree_sitter import Language, Parser

HASKELL = Language('/path/to/haskell.so')
parser = Parser()
parser.set_language(HASKELL)
tree = parser.parse(b'main = putStrLn "Hello"')

Requires tree-sitter core library and compiled parser binary; you must obtain or build the haskell.so parser library separately (not bundled by this package).

Verify before relying

  • Whether the package includes precompiled parser binaries or requires manual compilation of the grammar.
  • How to obtain or generate the haskell.so parser library needed by the usage example.
  • Support status for GHC language extensions marked as unsupported (Arrows, LexicalNegation, Modifiers, StaticPointers).

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance aging — 642 days since the last release
Last repo commit
First released
Downloads 121,369/month — #11,983 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: tree_sitter_haskell-0.23.1-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-win_amd64.whl; tree_sitter_haskell-0.23.1-cp39-abi3-win_arm64.whl

Keywords: incremental, parsing, tree-sitter, haskell

Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseTopic :: Software Development :: CompilersTopic :: Text Processing :: LinguisticTyping :: Typed

Tags

haskell parser tree-sitterincremental parsing haskellhaskell syntax treetree-sitter grammar haskellhaskell language parsingast generation haskellhaskell code analysis
parser-grammartree-sitterhaskell-tooling

More Linguistic packages