попробуй, не уверен что выйдет. У самого энума не получится указать Output. ЧТо-то похожее моно на трейтах сделать да, но у трейтов открытое множество реализаций, может не получиться сделать exaustive
так сделать всё отдельными типами и трейтом, а потом для exhastive завернуть в enum, нет?