Java has two specific instances of this pattern[3] built right in
; keyword (semi-colon) Effect a -> (a -> Effect b) -> Effect b
;
Effect a -> (a -> Effect b) -> Effect b
throws keyword (Either Throwable) a -> (a -> (Either Throwable) b) -> (Either Throwable) b
throws
(Either Throwable) a -> (a -> (Either Throwable) b) -> (Either Throwable) b
[3] (>>=) :: m a -> (a -> m b) -> m b
(>>=) :: m a -> (a -> m b) -> m b