An extensible derived type may be abstract
type, abstract :: base_type
end type
Such a derived type may never be instantiated, such as by
type(base_type) t1
allocate(type(base_type) :: t2)
but a polymorphic object may have this as its declared type
class(base_type), allocatable :: t1
o...