add explainer of types

This commit is contained in:
Emile Clark-Boman 2026-01-27 11:13:07 +10:00
parent c18aef2b32
commit 6545f6d916

View file

@ -1,3 +1,11 @@
## Types of Types
This is the convention I personally use when referring to types:
- **Primitive Types:** The base types Nix provides, accessible via `builtins.typeOf`
- **Naive Types:** An attempt at constructing a **non-primitive type** without using NixTypes.
nixpkgs.lib makes use of naive types, and so does the bootstrapping process for NixTypes.
A common example is `result = success: value: { inherit success value; }`.
- **Types / NT Types:** Any type provided by or compatible with the NixTypes standard
## /nt/primitives/bootstrap
**None of these functions/types/etc are exported for users of NixTypes!** So they should
remain as simple and minimal as possible to avoid extra work maintaining.