Opacity
type t =
| Opaque
Always use the contract
| Translucent
Use the contract, and refine with the body if required
| Transparent
Always use the body