aboutsummaryrefslogtreecommitdiff
path: root/plugins/extraction/haskell.ml
diff options
context:
space:
mode:
authorletouzey2011-07-04 18:05:17 +0000
committerletouzey2011-07-04 18:05:17 +0000
commit4bc80f8513d05f3aceb8d052b8dd59a6b00e3e60 (patch)
tree2c6ccbb12bbae750782ca8542a1fb62316040617 /plugins/extraction/haskell.ml
parent44160f6e16c9597b203e13e10f45dc346c96b1d3 (diff)
Set Extraction KeepSingleton: an option for not decapsulating singleton types
A informative inductive type with one constructor C and one informative arg to C is normally extracted as an identity, with C removed, see for example the "sig" type. When this new option is set, these singleton types are left untouch, providing extracted code which is closer to the initial Coq development. Feature requested by Wouter Swiestra. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14260 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'plugins/extraction/haskell.ml')
-rw-r--r--plugins/extraction/haskell.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/plugins/extraction/haskell.ml b/plugins/extraction/haskell.ml
index b51a957af3..32ad45c937 100644
--- a/plugins/extraction/haskell.ml
+++ b/plugins/extraction/haskell.ml
@@ -83,7 +83,8 @@ let rec pp_type par vl t =
| Tmeta _ | Tvar' _ -> assert false
| Tvar i -> (try pr_id (List.nth vl (pred i)) with _ -> (str "a" ++ int i))
| Tglob (r,[]) -> pp_global Type r
- | Tglob (IndRef(kn,0),l) when kn = mk_ind "Coq.Init.Specif" "sig" ->
+ | Tglob (IndRef(kn,0),l)
+ when not (keep_singleton ()) && kn = mk_ind "Coq.Init.Specif" "sig" ->
pp_type true vl (List.hd l)
| Tglob (r,l) ->
pp_par par