Можно ли написать свою do notation, не меняя код компилятора, и если да, то как?
Например, в главе 10 RWH[1] мы пишем такой код:
```
arseP5_take2 s =
matchHeader (L8.pack "P5") s >>?
\s -> skipSpace ((), s) >>?
(getNat . snd) >>?
skipSpace >>?
\(width, s) -> getNat s >>?
skipSpace >>?
\(height, s) -> getNat s >>?
\(maxGrey, s) -> getBytes 1 s >>?
(getBytes (width * height) . snd) >>?
\(bitmap, s) -> Just (Greymap width height maxGrey bitmap, s)
```
Было бы круто, если бы программист мог определить собственную do notation и избавиться от комбинатора `>>?` (спрятав его за преобразованиями, как это делается для >> в монадах). Это возможно?
1. http://book.realworldhaskell.org/read/co.....ormat.html