Ich versuche mit GHC-Core-Datentypen zu arbeiten. Ich bin in der Lage, meine Haskell-Quelle zu Kern-Darstellung mit dem Typ Bind CoreBndr
zu kompilieren. Wie wir wissen, gibt es keine Standard Show
Instanz für diesen Datentyp. Es gibt eine Möglichkeit, diese Darstellung hübsch zu drucken, aber es ist viel zu viel Rauschen damit verbunden. Ich möchte GHC-Kern wie jeden anderen algebraischen Datentyp behandeln und Funktionen damit schreiben. Es wäre viel einfacher, wenn wir eine Show
Instanz des GHC-Kerns hätten. Hat schon jemand eine Show-Instanz geschrieben, die ich wiederverwenden kann?`Show` Instanz für GHC-Core
Abgesehen davon, wie schreibt und verifiziert die Gemeinschaft Programme, die sich mit GHC-Kern befassen?
Welche Art von Lärm reden Sie? –
Die Ausgabe von 'ghc -c file.hs -ddump-simpl 'gibt eine Kerndarstellung der Programm-Syntax, die mit expliziten Typen, Wörterbuchargumenten, Vorkommensprüfungen usw. gedruckt wird. In einem Programmkontext ist die Kerndarstellung jedoch nur ein Wert eines bestimmten Datentyps . – ankitrokdeonsns
Der Hauptzweck von Kern ist nicht, hübsch gedruckt zu werden; es ist eine interne Sprache auf niedriger Ebene, deren Design weitgehend dem Compiler und nicht dem menschlichen Programmierer zu Gute kommt. Allerdings "Ich möchte GHC-Kern wie jeden anderen algebraischen Datentyp behandeln und Funktionen damit schreiben" - dies ist bereits genau der Fall. Core ist buchstäblich nur eine Haskell ADT - was führt Sie dazu, etwas anderes zu glauben? Beachten Sie, dass es im GHC api bereits einen [hübschen Drucker für Core] (https://www.stackage.org/haddock/lts-8.2/ghc-8.0.2/PprCore.html) gibt. – user2407038