+Open Scope string_scope.
+Fixpoint kindToString (k:Kind) : string :=
+ match k with
+ | KindStar => "*"
+ | KindArrow KindStar k2 => "*=>"+++kindToString k2
+ | KindArrow k1 k2 => "("+++kindToString k1+++")=>"+++kindToString k2
+ | KindUnliftedType => "#"
+ | KindUnboxedTuple => "(#)"
+ | KindArgType => "??"
+ | KindOpenType => "?"
+ end.
+Instance KindToString : ToString Kind := { toString := kindToString }.
+
+Notation "'★'" := KindStar.
+Notation "a ⇛ b" := (KindArrow a b).