Gibt es eine gute Möglichkeit, `->` direkt als Funktion in Idris zu verwenden?

One kann einen Typ in einer Funktion in Idris zurückgeben, zum Beispiel

t : Type -> Type -> Type
t a b = a -> b

Aber die Situation kam auf (als ich mit dem Schreiben einiger Parser experimentierte), die ich verwenden wollte->, um eine Liste von Typen zu falten, dh

typeFold : List Type -> Type
typeFold = foldr1 (->)

DamittypeFold [String, Int] Würde gebenString -> Int : Type. Dies wird jedoch nicht kompiliert:

error: no implicit arguments allowed
    here, expected: ")",
    dependent type signature,
    expression, name
typeFold = foldr1 (->)
                   ^

Aber das funktioniert gut:

t : Type -> Type -> Type
t a b = a -> b

typeFold : List Type -> Type
typeFold = foldr1 t

Gibt es eine bessere Möglichkeit, mit @ zu arbeite->, und wenn nicht, lohnt es sich, als Feature-Request aufzurufen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage