Mercurial > hg > Papers > 2015 > atton-thesis
annotate prepaper/src/delta_instance_monad.hs @ 63:c75ba6313e39
Writing prepaper...
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 Feb 2015 12:08:10 +0900 |
parents | |
children |
rev | line source |
---|---|
63 | 1 headDelta :: Delta a -> a |
2 headDelta (Mono x) = x | |
3 headDelta (Delta x _) = x | |
4 | |
5 tailDelta :: Delta a -> Delta a | |
6 tailDelta (Mono x) = Mono x | |
7 tailDelta (Delta _ ds) = ds | |
8 | |
9 instance Monad Delta where | |
10 return x = Mono x | |
11 (Mono x) >>= f = f x | |
12 (Delta x d) >>= f = Delta (headDelta (f x)) | |
13 (d >>= (tailDelta . f)) |