diff options
Diffstat (limited to 'lib/ur/option.ur')
-rw-r--r-- | lib/ur/option.ur | 12 |
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 |