# Language

How a Jadpo program is laid out and written: its types, logic, failures and standard library.

| Page | What it covers |
|---|---|
| [Project layout and modules](/docs/project-layout-and-modules.md) | How a Jadpo project is laid out on disk, how one file sees declarations from another, and the naming rules every name follows. |
| [Values and types](/docs/values-and-types.md) | What kinds of value a Jadpo program works with, how you give a value a meaning in your business, and when one type can stand in for another. Also: [Dates and times](/docs/dates-and-times.md) · [Standard types](/docs/types.md) |
| [Logic](/docs/logic.md) | How you write what your app does: functions and actions, statements, operators, `match`, `attempt`, loops and generic code. |
| [Failures](/docs/failures.md) | Your code says what went wrong, by name, and Jadpo decides how each failure reaches whoever called: the HTTP status, the response body and what is logged. |
| [Standard library](/docs/standard-library.md) | The standard library is the set of types and operations every program can use without declaring them, such as `Money`, `list.count(items)` and `temporal.in_zone(at, zone)`. |
