I spent 10 hours today writing code to feed and parse the output of this
hook in C. I had 10 minutes so thought I'd do the same in Haskell,
as a way to get all those pointers, explicit memory management, impure
code, and lack of abstractions out of my head.
Later, if the hook is actually accepted into git, git-annex will be able
to use it to run the git-annex merge, as well as perhaps enable a mode
where pulling from remotes known to git-annex automatically merges
their master branch into the local master.