Mirror from hackage, since I could not find any version of this lib on VCS