河野真治
比嘉健太
data Delta a = Mono a | Delta a (Delta a)
>>=
は同じバージョンの値に対する計算を同時に行なうinstance Monad Delta where
return x = Mono x
(Mono x) >>= f = f x
(Delta x d) >>= f = Delta (headDelta (f x))
(d >>= (tailDelta . f))