add code for -dcoqpass, -fcoqpass, -ddump-coqpass
[ghc-hetmet.git] / compiler / deSugar / Desugar.lhs
index 142f695..cbf64e2 100644 (file)
@@ -18,6 +18,7 @@ import Id
 import Name
 import CoreSyn
 import CoreSubst
+import CoqPass ( coqPassCoreToString, coqPassCoreToCore )
 import PprCore
 import DsMonad
 import DsExpr
@@ -137,7 +138,15 @@ deSugar hsc_env
                         -- The simpleOptPgm gets rid of type 
                         -- bindings plus any stupid dead code
 
-       ; endPass dflags CoreDesugar ds_binds ds_rules_for_imps
+        ; dumpIfSet_dyn dflags Opt_D_coqpass "Coq Pass Output" $ text $ coqPassCoreToString ds_binds
+
+        ; ds_binds' <- if dopt Opt_F_coqpass dflags
+                       then return $ coqPassCoreToCore ds_binds
+                       else return ds_binds
+
+        ; dumpIfSet_dyn dflags Opt_D_dump_coqpass "After Coq Pass" (text $ showSDoc $ pprCoreBindings ds_binds')
+
+       ; endPass dflags CoreDesugar ds_binds' ds_rules_for_imps
 
         ; let used_names = mkUsedNames tcg_env
        ; deps <- mkDependencies tcg_env