Because java.sql.Date and java.sql.Timestamp extend java.util.Date and because CanBeParameter's type parameter is contravariant, having separate implicits for these types results in the one for the supertype being used when the one for the subtype should be used.
Because java.sql.Date and java.sql.Timestamp extend java.util.Date and because CanBeParameter's type parameter is contravariant, having separate implicits for these types results in the one for the supertype being used when the one for the subtype should be used. To work around this we use just one implicit and pattern match within it.
When a new implicit CanBeParameter is added here, it should also be explicitly added to Parameter.unsafeWrap.