9

Wykonuję niektóre obliczenia na poziomie poziomu Doszedłem do punktu, w którym chcę zmienić stałość ->, ponieważ nie można go mieszać z operatorami lewostronnych typu fixity 0. Wiem, że to nie działa wprost z TypeOperators rozszerzenie i infixr 1 ->, ponieważ zwraca tylko błąd parse error on input ‘->’.Zmiana stałości typu funkcji (->)?

Czy istnieje jakieś rozszerzenie lub inny sposób modyfikowania stałości operatora funkcji?

Odpowiedz

12

Można zrobić synonim:

{-# LANGUAGE TypeOperators #-} 

infixr 1 ~> 
type (~>) = (->) 
+1

Właściwie jest to lepsze rozwiązanie, myślę. Nie wprowadza zamieszania wśród tych, którzy oczekują 'infixr 0 ->'. – Shou

+5

'type (~>) = (->)' jest nieco lepsze, ponieważ nadal może być częściowo zastosowane. – kosmikus

+0

To było 'type a ~> b = a -> b'. @kosmikus, dzięki. – user3237465

Powiązane problemy