Ich habe das folgende Programm:Wie GHC Simplifier-Ausgabe in menschenlesbarer Form ausgeben?
data Peano = Zero | Succ Peano deriving (Show)
add Zero b = b
add (Succ a) b = add a (Succ b)
mul Zero b = Zero
mul (Succ a) b = add b (mul a b)
four x = let two = Succ (Succ Zero) in mul two two
Ich möchte von GHC, so etwas bekommen:
add =
\ ds b ->
case ds of
Zero ->
b
Succ a ->
add
a
(Succ b)
mul =
\ ds b ->
case ds of
Zero ->
Zero
Succ a ->
add
b
(mul a b)
four =
let
two =
Succ
(Succ Zero)
in
mul two two
Das Beste, was ich zu bekommen verwaltet
ghci -ddump-simpl -dsuppress-module-prefixes -dsuppress-uniques foo.hs
ist, aber es Stahl erforderlich viel manuelle Entfernung von GHC-generierten Sachen, um den obigen Code zu bekommen. Gibt es einen Schalter für GHC oder ein Drittanbieter-Skript, das die Bereinigung durchführt?
Gibt es einen Weg, mindestens case {tick (main:Main, 8)} @ (State# RealWorld) of _ { __DEFAULT ->
loszuwerden?
Die 'tick' Anmerkungen von HPC erzeugt werden, so deaktivieren sie sollten sie loswerden, denke ich. –
Ich weiß nicht wie. Ich habe es nicht eingeschaltet - siehe Befehlszeile. – nponeccop