A functionalist typology of redundancy