
NeoHaskell
⏩ NeoHaskell is a dialect of Haskell that is focused on newcomer-friendliness and productivity.
Sign in to rate this tool.
Overview

NeoHaskell is a Haskell‑based language that emphasizes newcomer friendliness while keeping the core ideas of event sourcing visible throughout the code. The site describes it as a way to model requests, decisions, events, and views so that the current state of an application always has an explainable history.
The tool expects you to define a request that describes what should happen, a decision that either accepts or refuses that request, an event that records the accepted fact, and a view that presents the next question to answer. These five elements, command/request, entity, decision, event, and query, are represented as explicit types in the program. The Neo IDE can display the relationships among them, and the Haskell compiler enforces type correctness, making some invalid combinations unrepresentable. Tests are meant to exercise the policies and boundary cases for each slice of behavior.
NeoHaskell is aimed at teams that need a clear audit trail, such as those building order processing, account management, approval workflows, grants, projects, or membership systems. The language encourages you to keep the history of domain facts rather than just the current balance, so you can reconstruct how a value arrived at its present state. For example, an account balance of €70 can be traced back through events like AccountOpened +€100 and CashWithdrawn ‑€30. The approach is less suited to simple content sites, disposable prototypes, or static lookup data where the cost of maintaining an event store outweighs the benefits.
Using NeoHaskell involves starting with a single rule you can explain, naming the request, decision, event, and view that together form a visible slice of behavior. The slice provides a boundary for implementation and testing, while shared contracts act as explicit coordination points. Human users and automated agents can submit requests through the same path, preserving authority and evidence. The documentation notes that event sourcing introduces modeling and operational costs, so it should be applied where audit, dispute resolution, or accountability are important.
Key features
- Typed commands, decisions, events, entities, and queries as first‑class language constructs
- Neo IDE that visualizes relationships among the five core elements
- Compiler checks for type mismatches and exhaustive handling of closed alternatives
- Support for testing policies and boundary cases within each behavior slice
- Explicit history retained in a persistent event store for reconstruction of state
Details
- Pricing
- Free
- Category
- Design
Suggest an edit
Sign in to suggest an edit.
Pros and cons
Pros
- Makes event‑sourcing concepts part of the language rather than conventions
- Provides visual tooling to see how requests flow to decisions and events
- Enforces correctness through Haskell's type system and compiler checks
Cons
- No pricing information is published on the site
- Event sourcing adds modeling and operational overhead that may not suit all projects
- The documentation does not list integrations with external databases or frameworks.

