Ответ 1
В настоящее время нет. Конструкторы GADT помечены как infix в соответствии с определенным набором условий:
Note [Infix GADT constructors] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We do not currently have syntax to declare an infix constructor in GADT syntax, but it makes a (small) difference to the Show instance. So as a slightly ad-hoc solution, we regard a GADT data constructor as infix if a) it is an operator symbol b) it has two arguments c) there is a fixity declaration for it For example: infix 6 (:--:) data T a where (:--:) :: t1 -> t2 -> T Int
Итак, для несимвольного конструктора, такого как W
, похоже, что вам не повезло, но если вы хотите сделать его символическим, вы можете просто добавить объявление о фиксации.
(подсказка шляпы к этот шаблон ошибки haskell)