exploit monadic operations.