Monadの一般化