relaxed upper bound on either since it compiles fine with 4.1.1