Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 30 Oct 2026. What's built · Install 0.1.0
jadpo
Reference: Values and types

Values and types · rule

type.constraint_loosened

Refinement loosens a rule it inherits.

Area 2, Values and types; not declinable; the next step is usually the agent's.

A refinement can only add to the rules of the type it builds on. Every rule along the chain still holds, so a looser bound would never apply and would only mislead the reader:

example
type ProductName = Text {    min_length: 1    max_length: 120}type ShortProductName = ProductName {    max_length: 150}
text
error: `max_length: 150` loosens `ProductName`'s `max_length: 120` --> main.jadpo:7:5  |7 |     max_length: 150  |     ^^^^^^^^^^ looser than `max_length: 120`  reason: A refinement only adds to the rules of the type it builds on, and every rule along the way still holds, so a value still needs `max_length: 120` and this one would never apply.  next: Make `max_length` at most 120, or remove it (agent)  rule: type.constraint_loosened  help: https://jadpo.dev/docs/errors/type.constraint_loosenedcheck failed: 1 error, 1 file

Markdown for agents: /docs/errors/type.constraint_loosened.md.Built from Jadpo main at a707efb.