let (>:) f h s = let u = f s match u with Return(rest, result) -> Return(rest, h result) | Fail -> Fail ;;