Data.Git.Named and related makes handling packed refs unclean
if your git repo uses pack-refs, hit can technically handle this. It makes it very round about and unclean though.
I believe the only function to directly handle both cases is resolveRevision. Said probes for what might work and I believe leads to an incomplete ability to resolve.
There exists no pseudo-inverse to branchWrite, and friends. This leaves you using readRefFile, and readPackedRefs. readRefFile uses exceptions to handle non-existence. At which point you have to fall back to readPackedRefs.
While nice to be able to process them separately, I think it would be a notable improvement to have one function that properly handles the combined case. Additionally I think branchRead, etc would be nice additions.