support < 5.4 (no traits)