Fixed so that Constraint-handler visitor pattern can use covariance generics <out T>