diff options
| author | Matthieu Sozeau | 2016-03-10 19:02:16 +0100 |
|---|---|---|
| committer | Matthieu Sozeau | 2016-03-10 19:39:25 +0100 |
| commit | 4341f37cf3c51ed82c23f05846c8e6e8823d3cd6 (patch) | |
| tree | 668c44dae870e87d21c0abf3b0aac5e8980a784a /printing | |
| parent | f1a8b27ffe0df4f207b0cfaac067c8201d07ae16 (diff) | |
Primitive projections: protect kernel from erroneous definitions.
E.g., Inductive foo := mkFoo { bla : foo } allowed to define recursive
records with eta for which conversion is incomplete.
- Eta-conversion only applies to BiFinite inductives
- Finiteness information is now checked by the kernel (the constructor types
must be strictly non recursive for BiFinite declarations).
Diffstat (limited to 'printing')
| -rw-r--r-- | printing/prettyp.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/printing/prettyp.ml b/printing/prettyp.ml index fd51fd6b0f..4d9d40ae08 100644 --- a/printing/prettyp.ml +++ b/printing/prettyp.ml @@ -215,8 +215,8 @@ let print_polymorphism ref = let print_primitive_record recflag mipv = function | Some (Some (_, ps,_)) -> let eta = match recflag with - | Decl_kinds.CoFinite -> mt () - | Decl_kinds.Finite | Decl_kinds.BiFinite -> str " and has eta conversion" + | Decl_kinds.CoFinite | Decl_kinds.Finite -> mt () + | Decl_kinds.BiFinite -> str " and has eta conversion" in [pr_id mipv.(0).mind_typename ++ str" is primitive" ++ eta ++ str"."] | _ -> [] |
