cleaned up lots of FIXMEs in ProofToLatex
[coq-hetmet.git] / src / HaskCoreVars.v
1 (*********************************************************************************************************************************)
2 (* HaskCoreVars: basically GHC's Var.Var imported into Coqland                                                                   *)
3 (*********************************************************************************************************************************)
4
5 Generalizable All Variables.
6 Require Import Preamble.
7 Require Import General.
8 Require Import HaskGeneral.
9
10 (* GHC uses a single type for expression variables, type variables, and coercion variables; this is that type *)
11 Variable CoreVar          : Type.                                               Extract Inlined Constant CoreVar    => "Var.Var".
12 Variable coreVar_eq       : forall (a b:CoreVar), sumbool (a=b) (not (a=b)).    Extract Inlined Constant coreVar_eq => "(==)".
13 Axiom    coreVar_eq_refl  : forall v, (coreVar_eq v v) = (left _ (refl_equal v)).
14 Instance CoreVarEqDecidable : EqDecidable CoreVar :=
15 { eqd_dec            := coreVar_eq
16 ; eqd_dec_reflexive  := coreVar_eq_refl
17 }.
18