Binder.hascasl revision 971cd9553a84c1e1bdbccd0bd63f4fe00b8502f9
var a, b : Type
type M : Type -> Type
op __ >>= __ : M a * (a ->? M b) ->? M b
%binder(__ <- __ ;; __)% %binder(do __ <- __ :. __)%
var p : M a; q : a -> M a
. def do x <- p :. do y <- q x :. do z <- q y :. q z
. def x <- p ;; y <- q x ;; z <- q y ;; q z