bleeding: typesystem
This commit is contained in:
parent
452dcf99bb
commit
3d9ec28bfc
6 changed files with 88 additions and 4 deletions
14
nib/enforce.nix
Normal file
14
nib/enforce.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{nib, ...}: rec {
|
||||
enfType = type: T:
|
||||
assert (nib.isType type T
|
||||
|| nib.panic.badType (nib.typeName type)); true;
|
||||
|
||||
enfSameType = T1: T2: enfType (nib.typeOf T1) T2;
|
||||
|
||||
enfAttrs = enfType (nib.typeOf {});
|
||||
enfList = enfType (nib.typeOf []);
|
||||
enfListOf = type: L:
|
||||
assert (enfList L
|
||||
&& builtins.all (T: nib.isType type T) L
|
||||
|| nib.panic.badType "List ${nib.typeName type}" L); true;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue