Skip to main content

Type crossings

Typed specification

Generated by the pinned ess generate --kind docs from ess. Structural validation establishes consistency; behaviour, storage and cross-record predicates remain implementation obligations.

A conversion is this system's permission for a value of one type to be used as another. Every one of them carries a reason, and the reason is required rather than optional precisely so that this page can exist: someone asking why an invoice's email address is allowed to become a mailbox address gets an answer written by the person who allowed it, not a shrug.

Declaring a crossing is also the only way to make one. Two newtypes over String do not convert because they are both strings; they convert because a line in the specification says they may.

This system declares no crossings. Every type is used only as itself.

Back to the index.


Generated from connectors v1 · model digest e1e1672d0af4753cb8f2da6c0b22a7f6ae8ce9f7abc168f86169babdf1325787 · contract digest cbce0c8be561de4d2219e841ef73ebdd9e72eac7e83c3cfc1355cac651001d13. Do not edit this file; change the specification and regenerate it with ess generate.