diff --git a/demo/rank2 b/demo/rank2 new file mode 100755 index 0000000..4ee812a Binary files /dev/null and b/demo/rank2 differ diff --git a/demo/rank2.crf b/demo/rank2.crf new file mode 100644 index 0000000..f52060b --- /dev/null +++ b/demo/rank2.crf @@ -0,0 +1,8 @@ + +applyId : (forall a. a -> a) -> b -> b +applyId f x = f x + +id : a -> a +id x = x + +main = applyId id 145 diff --git a/demo/rank4 b/demo/rank4 new file mode 100755 index 0000000..ae8b3d7 Binary files /dev/null and b/demo/rank4 differ diff --git a/demo/rank4.crf b/demo/rank4.crf new file mode 100644 index 0000000..f6452b3 --- /dev/null +++ b/demo/rank4.crf @@ -0,0 +1,20 @@ + +.+ : Int -> Int -> Int +.+ x y = 0 + +const : a -> b -> a +const x y = x + +applyapplyapplyId : (forall c. c -> (forall b. (forall a. a -> a) -> b -> b) -> c) -> d -> d +applyapplyapplyId f x = f x applyId + +applyapplyId : c -> (forall b. (forall a. a -> a) -> b -> b) -> c +applyapplyId x f = f id x + +applyId : (forall a. a -> a) -> b -> b +applyId f x = f x + +id : a -> a +id x = x + +main = applyapplyapplyId applyapplyId 50 + const 100 (applyapplyapplyId applyapplyId 'G') diff --git a/sample-programs/working/rank2.crf b/sample-programs/working/rank2.crf new file mode 100644 index 0000000..f52060b --- /dev/null +++ b/sample-programs/working/rank2.crf @@ -0,0 +1,8 @@ + +applyId : (forall a. a -> a) -> b -> b +applyId f x = f x + +id : a -> a +id x = x + +main = applyId id 145