type_erasure: support segment<terminated,O> | trafo