propagate type param through Def