In PureScript, bind and discard share a prefix in the form of binders and expressions e.g.
value <- 123
pure value
Determining if `value` is a binder or an expression requires unbounded lookahead for '<-', which is how I ended up writing this API for backtracking.