Data.HVect

Ralith bugged me again to get my HVect implementation in, and I had opportunity, so I pulled it together and organized it hopefully acceptably.