yi-editor/yi — pull request #520 by ethercrow (2014-02-21 05:16:42+00:00)
Title: Refactor Vim2.VimBinding

It boils down to this:
```diff
- prereq :: EventString -> VimState -> MatchResult ()
- action :: EventString -> m RepeatToken

+ binding :: EventString -> VimState -> MatchResult (m RepeatToken)
```
It's now impossible to accidentally pass different eventstrings to
consecutive prereq and action calls. Not that it happened before.

Also many lines like
```
error "can't happen, because we already checked that in prereq"
```
are no longer necessary.

@mgajda: While porting your config I didn't understand how `matchesString evs "D"` works and what `""` is, so I've just commented them to make yi-contrib compilable. Can you help with these bits?