aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/ur/option.ur
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ur/option.ur')
-rw-r--r--lib/ur/option.ur12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/ur/option.ur b/lib/ur/option.ur
index a22cf5b5..1ba33d8e 100644
--- a/lib/ur/option.ur
+++ b/lib/ur/option.ur
@@ -7,6 +7,18 @@ fun eq [a] (_ : eq a) =
| (Some x, Some y) => x = y
| _ => False)
+fun ord [a] (_ : ord a) =
+ mkOrd {Lt = fn x y =>
+ case (x, y) of
+ (None, Some _) => True
+ | (Some x, Some y) => x < y
+ | _ => False,
+ Le = fn x y =>
+ case (x, y) of
+ (None, _) => True
+ | (Some x, Some y) => x <= y
+ | _ => False}
+
fun isNone [a] x =
case x of
None => True