aboutsummaryrefslogtreecommitdiff
path: root/std/magic/booleans.pk
diff options
context:
space:
mode:
Diffstat (limited to 'std/magic/booleans.pk')
-rw-r--r--std/magic/booleans.pk42
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