diff options
Diffstat (limited to 'std/magic/booleans.pk')
-rw-r--r-- | std/magic/booleans.pk | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/std/magic/booleans.pk b/std/magic/booleans.pk deleted file mode 100644 index 3c7e28e..0000000 --- a/std/magic/booleans.pk +++ /dev/null @@ -1,42 +0,0 @@ -## std.booleans: Booleans and related types. Mostly compiler magic. -## A stub module for documentation. - -pub type unit = union[sole] -pub type bool = union[false, true] - -# note: puck could resolve kleene.false vs bool.false... -# this is probably not worth it compared to improved type inference -# pub type Kleene = union[False, Maybe, True] - -## Boolean equality -pub func ==(a: bool, b: bool): bool = - match a - of (true, true), (false, false): true - of (false, true), (true, false): false - -pub func !=(a: bool, b: bool): bool = - not a == b - -## Boolean negation -pub func not(a: bool): bool = - match a - of true: false - of false: true - -## Boolean conjunction -pub func and(a: bool, b: bool): bool = - match (a, b) - of (true, true): true - of _: false - -## Boolean disjunction -pub func or(a: bool, b: bool): bool = - match (a, b) - of (false, false): false - of _: true - -## Boolean exclusive disjunction -pub func xor(a: bool, b: bool): bool = - match (a, b) - of (true, true), (false, false): false - of (true, false), (false, true): true |