X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=src%2FHaskCoreVars.v;h=562b478ff99ae0cb2da1e0777e97851ac87ba1ab;hp=6e611282b5e7ebe6910416459061335071c06e07;hb=53d4f1ce851b924cab5dc39419179a366001cbca;hpb=bcb16a7fa1ff772f12807c4587609fd756b7762e diff --git a/src/HaskCoreVars.v b/src/HaskCoreVars.v index 6e61128..562b478 100644 --- a/src/HaskCoreVars.v +++ b/src/HaskCoreVars.v @@ -5,10 +5,11 @@ Generalizable All Variables. Require Import Preamble. Require Import General. +Require Import Coq.Strings.String. (* GHC uses a single type for expression variables, type variables, and coercion variables; this is that type *) -Variable CoreVar : Type. Extract Inlined Constant CoreVar => "Var.Var". -Variable coreVar_eq : forall (a b:CoreVar), sumbool (a=b) (not (a=b)). Extract Inlined Constant coreVar_eq => "(==)". -Axiom coreVar_eq_refl : forall v, (coreVar_eq v v) = (left _ (refl_equal v)). -Instance CoreVarEqDecidable : EqDecidable CoreVar := { eqd_dec := coreVar_eq }. - +Variable CoreVar : Type. Extract Inlined Constant CoreVar => "Var.Var". +Variable coreVar_eq : forall (a b:CoreVar), sumbool (a=b) (not (a=b)). Extract Inlined Constant coreVar_eq => "(==)". +Variable coreVarToString : CoreVar -> string. Extract Inlined Constant coreVarToString => "outputableToString". +Instance CoreVarEqDecidable : EqDecidable CoreVar := { eqd_dec := coreVar_eq }. +Instance CoreVarToString : ToString CoreVar := { toString := coreVarToString }.