Free monads from operations