Why not make T a *Val?