function-traits header