jev-dsl
Early-alpha Haskell DSL that composes typed Jev questions over your data and decodes answers back to the original values.
Overview
jev-dsl is a Haskell library for typed semantic queries with Jev: asking whether evidence supports a claim, selecting a candidate, or routing a reply into a continuation. Answers keep the Haskell values you supplied, whether rows, domain values, functions or actions. Queries compose with Applicative and Traversable, assessments adapt with Star arrows, payloads are edited with optics, and evaluation strategies are chosen with Selective.
The library builds and validates requests, groups questions sharing an identical state into one request, and decodes responses against the original alternatives; you provide the HTTP transport and run any selected actions. It is version 0.2.0.0, early alpha, used by its examples and by Exomonad's hosted Haskell interface, with authoring and composition guides.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this evidence support this claim? | — |
| Choice | Which candidate or continuation should be selected? | — |
How it works
- Define an assessment projecting data into evidence
- Compose queries with traversals and Star arrows
- runQuery groups questions by shared state and builds requests
- Your transport sends them; answers decode to the original values
Strengths
- Answers stay attached to original Haskell values
- Automatic grouping of questions per state
- Inspect requests before sending
Caveats
- Early alpha
- No built-in HTTP transport
Getting started
Start with Jev.Operators (Aeson) or Jev.Core, and see docs/authoring.md and examples/Reflex.hs.At a glance
- Type
- Library
- Status
- prototype
- Language
- Haskell
- Runtime
- Library
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
An early Haskell DSL that describes labeled Jev questions, renders requests and decodes matching answers.
logicrw/awesome-jev-projectsEarly-alpha Haskell DSL that encodes typed question packets and decodes answers; HTTP transport is left to the caller.
cobanov/awesome-jevAgent-first Haskell DSL for TypeSafe's Jev judgment model: typed packets, inferred types, answers under the same labels.
hellogumbo/awesome-jev
Frequently asked questions
What does the DSL do?
Builds, groups and decodes typed Jev questions so answers map back to your Haskell values.
Does it make HTTP calls?
No, you supply the transport.
Is it stable?
No, it is early alpha at 0.2.0.0.
Related projects
Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.
MCP serverproductionTypeScriptAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptPHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.
ProjectproductionPHPGo MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.
MCP serverproductionGoSimon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.
PluginproductionPython