HaskellPro will be a native macOS IDE for Haskell, written in Haskell, using APIAnyware-MacOS bindings for native macOS APIs. WebKit serves as the rendering layer and Monaco as the code editor. The project is currently in pre-development; no implementation exists yet.
Why a Dedicated Haskell IDE?
Haskell development is fundamentally type-directed. The type system is a design tool, not just a safety net. HaskellPro will make types, typeclasses, and their relationships as navigable as a class hierarchy in an OO IDE — with purpose-built tooling for type-driven development, typeclass exploration, and deep interactive feedback.
Planned Features
Type-Driven Development
- Type explorer — browse type signatures, expand type aliases, inspect type families and associated types
- Typeclass hierarchy browser — navigate typeclass inheritance, view instances, find orphan instances
- Typed holes — interactive hole-filling with suggestions ranked by type compatibility
- Type-at-point — hover to see inferred types for any sub-expression
Module & Dependency Tools
- Module graph visualization — see import/export relationships across the project
- Export browser — navigate what each module exposes, with type signatures
- Dependency explorer — browse Hackage dependencies, their APIs, and version constraints
Evaluation & Debugging
- GHCi integration — interactive evaluation with full type information
- Core/STG/Cmm inspection — view intermediate representations for performance analysis
- Profiling integration — heap and time profiling visualization
Architecture
HaskellPro is built entirely on APIAnyware-MacOS bindings — monadic and lens-based — with direct WebKit access from Haskell and native menus, window management, and system integration. Each *Pro IDE is itself a proof that APIAnyware bindings are complete enough to build a real native application with no FFI escape hatches required.