Mercurial > urweb
comparison lib/ur/option.ur @ 1544:a99b743a3087
Basis.mkMonad
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Fri, 19 Aug 2011 15:23:01 -0400 |
parents | 757dbac0454d |
children | 36428d853c97 |
comparison
equal
deleted
inserted
replaced
1543:6f046b4bad24 | 1544:a99b743a3087 |
---|---|
1 datatype t = datatype Basis.option | 1 datatype t = datatype Basis.option |
2 | |
3 val monad = mkMonad {Return = @@Some, | |
4 Bind = fn [a] [b] (m1 : t a) (m2 : a -> t b) => | |
5 case m1 of | |
6 None => None | |
7 | Some v => m2 v} | |
2 | 8 |
3 fun eq [a] (_ : eq a) = | 9 fun eq [a] (_ : eq a) = |
4 mkEq (fn x y => | 10 mkEq (fn x y => |
5 case (x, y) of | 11 case (x, y) of |
6 (None, None) => True | 12 (None, None) => True |