abstract-type