Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 5 Nov 2026. What's built · Install 0.3.0
jadpo
ReferenceErrors

ErrorsProject layout and modules · rule

visibility.public_reaches_private

Public declaration's signature names one that isn't public.

Area 1, Project layout and modules; not declinable; the next step is usually the agent's.

Everything a public declaration's signature names is public too (area 11), since whoever uses it has to build or handle it: a public action's parameters, result and failures, a public type's fields, a public library's functions' signatures. A type in shared/ or the standard library is everyone's already:

example
use billing/types { Amount }public action charge(amount: Amount) -> Unit {}
jadpo checkcheck failed: 1 error, 4 files

error charge is public, but Amount isn't

--> domains/billing/actions/charge.jadpo:3:30

  |3 | public action charge(amount: Amount) -> Unit {}  |                              ^^^^^^ a type only domain `billing` sees
reason
Whoever uses a public action has to build or handle what its signature names, so everything it names is public too; Amount is a type in domains/billing/types/amount.jadpo that only domain billing sees.
next
Mark Amount public, or keep it out of charge's signature (agent)
rule
visibility.public_reaches_private
help
https://jadpo.dev/docs/errors/visibility.public_reaches_private

Markdown for agents: /docs/errors/visibility.public_reaches_private.md.Built from Jadpo main at aee2e8f.