package popper

  1. Overview
  2. Docs
val let* : 'a t -> ('a -> 'b t) -> 'b t

let* x = s in body is the same as bind s (fun x -> body).

val let+ : 'a t -> ('a -> 'b) -> 'b t

let+ x = s in body is the same as map (fun x -> body) s.

val and* : 'a t -> 'b t -> ('a * 'b) t

let* x = s1 and* y = s2 in body is the same as bind s1 (fun x -> bind s2 (fun y -> body)

val and+ : 'a t -> 'b t -> ('a * 'b) t

let+ x = s1 and+ y = s2 in body is the same as map (fun (x,y) -> body) (both s1 s2).