Complete rewrite (Setoid-based Hom)