move to non parametric regular generics (functors instead of bifunctors)