generic named types spec