X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=src%2FHaskKinds.v;h=2200f517165589a3c832dba14e2d1cf205aec3cf;hp=b61ed0752aac28ba04e694ac19bbd889d8d90c8f;hb=b4857a6f575dffd5c9c9d5decbc21ff63a338270;hpb=97552c1a6dfb32098d4491951929ab1d4aca96a0 diff --git a/src/HaskKinds.v b/src/HaskKinds.v index b61ed07..2200f51 100644 --- a/src/HaskKinds.v +++ b/src/HaskKinds.v @@ -12,7 +12,6 @@ Variable Note : Type. Extract Inlined Con Variable natToString : nat -> string. Extract Inlined Constant natToString => "natToString". Instance NatToStringInstance : ToString nat := { toString := natToString }. -(* Figure 7: production κ, ι *) Inductive Kind : Type := | KindStar : Kind (* ★ - the kind of coercions and the kind of types inhabited by [boxed] values *) | KindArrow : Kind -> Kind -> Kind (* ⇛ - type-function-space; things of kind X⇛Y are NOT inhabited by expressions*) @@ -38,6 +37,10 @@ Instance KindToString : ToString Kind := { toString := kindToString }. Notation "'★'" := KindStar. Notation "a ⇛ b" := (KindArrow a b). +(* the kind of environment classifiers *) +Definition ECKind := ★ . +Opaque ECKind. + Fixpoint kindToLatexMath (k:Kind) : LatexMath := match k with | ★ => rawLatexMath "\star"