Haskell: Abrufen des statischen Typs eines Ausdrucks

Ich suche nach einer Funktion, die das tut, was der Befehl GHCi: type tut.

Im Idealfall hätte es so etwas wie eine Signatur

<code>getStaticType :: a -> String

a = getStaticType (1+2)
-- a = "(Num t) => t"

b = getStaticType zipWith
-- b = "(a -> b -> c) -> [a] -> [b] -> [c]"
</code>

(Hinweis: Dies hat nichts mit Data.Dynamic zu tun. Ich möchte nur, dass der statische Typ vom Compiler abgeleitet wird. Tatsächlich würde die Funktion überhaupt keine Laufzeitimplementierung benötigen, da alle Aufrufe als Konstanten beim Kompilieren inline sein könnten Ich gehe davon aus, dass es irgendwo existiert, da GHCi das kann.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage