Nel Haskell 98 report, ho trovato questo:Haskell: Perché non sono permessi i costruttori del tipo infisso?
La sintassi per espressioni di tipo Haskell è dato sopra. Proprio come i valori dei dati vengono creati utilizzando i costruttori di dati, i valori di tipo vengono creati dai costruttori di tipi. Come con i costruttori di dati, i nomi dei costruttori di tipi iniziano con lettere maiuscole. A differenza dei costruttori di dati, i costruttori di tipo infisso non sono consentiti (diversi da (->)).
Non ci sono ragioni per perché di tipo infisso costruttori non sono ammessi sono dati. In Agda e simili, i costruttori di tipi infissi sono all'ordine del giorno. Perché non in Haskell?
Haskell appropriato potrebbe non permetterlo, ma GHC ha estensioni che fanno https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/data-type-extensions.html – jamshidh