nt/nt/precursor/bootstrap
2026-02-13 12:40:36 +10:00
..
naive add require type 2026-02-13 01:43:41 +10:00
prim add require type 2026-02-13 01:43:41 +10:00
attrs.nix rename primitives -> precursor 2026-02-09 10:25:24 +10:00
default.nix add findImport 2026-02-13 12:40:36 +10:00
nix.nix add findImport 2026-02-13 12:40:36 +10:00
README.md rename primitives -> precursor 2026-02-09 10:25:24 +10:00

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. Instead, most of these will be reimplemented post-bootstrap to be NixType compatible.