add splitKind to HaskKind
authorAdam Megacz <megacz@cs.berkeley.edu>
Mon, 14 Mar 2011 22:10:13 +0000 (15:10 -0700)
committerAdam Megacz <megacz@cs.berkeley.edu>
Mon, 14 Mar 2011 22:10:13 +0000 (15:10 -0700)
src/HaskKinds.v

index 1452045..b5cc2ff 100644 (file)
@@ -50,3 +50,10 @@ Instance KindEqDecidable : EqDecidable Kind.
     destruct v2; try (right; intro q; inversion q; fail) ; left ; auto.
   Defined.
 
+(* splits a kind into a list of arguments and a result *)
+Fixpoint splitKind (k:Kind) : ((list Kind) * Kind) :=
+  match k with
+    | a ⇛ b => let (args,res) := splitKind b in ((a::args),res)
+    | _     => (nil, k)
+  end.
+