Clarified types by using generalized type constraints