1
+ package dummy
2
+
3
+ import language .experimental .captureChecking
4
+ import caps .*
5
+
6
+ trait Nested :
7
+ val c : AnyRef ^
8
+ val next : Nested
9
+
10
+ trait Arrows :
11
+ val a : AnyRef ^
12
+ val b : AnyRef ^
13
+ val c : AnyRef ^
14
+
15
+ val purev : Int -> Int
16
+ val purev2 : Int -> {} Int
17
+ val impurev : Int => Int
18
+ val impurev2 : Int -> {a,b,c} Int
19
+ val impurev3 : Int -> {a,b,c} Int => Int
20
+ val impureCap : Int -> {cap} Int
21
+ val impureCap2 : Int -> {cap, a, b, c} Int
22
+ val contextPureV : Int ?-> Int
23
+ val contextPureV2 : Int ?-> {} Int
24
+ val contextImpureV : Int ?=> Int
25
+ val contextImpureV2 : Int ?-> {a,b,c} Int
26
+ val contextImpureV3 : Int ?-> {a,b,c} Int ?=> Int
27
+ val contextImpureCap : Int ?-> {cap} Int
28
+ val contextImpureCap2 : Int ?-> {cap, a, b, c} Int
29
+
30
+ def pure (f : Int -> Int ): Int
31
+ def pure2 (f : Int -> {} Int ): Int
32
+ def impure (f : Int => Int ): Int
33
+ def impure2 (f : Int -> {a,b,c} Int ): Int
34
+ def impure3 (f : Int -> {a,b,c} Int => Int ): Int
35
+
36
+ def consumes (@ consume a : AnyRef ^ ): Any
37
+ def consumes2 (@ consume x : AnyRef ^ {a}, @ consume y : AnyRef ^ {b}): Any
38
+
39
+ def reachThis : AnyRef ^ {this * }
40
+
41
+ def byNamePure (f : -> Int ): Int
42
+ def byNameImpure (f : -> {a,b,c} Int ): Int
43
+ def byNameImpure2 (f : => Int ): Int
44
+
45
+ def pathDependent (n : Nested ^ )(g : AnyRef ^ {n.c} => Any ): Any
46
+ def pathDependent2 (n : Nested ^ )(g : AnyRef ^ {n.next.c} => Any ): Any
47
+ def pathDependent3 (n : Nested ^ )(g : AnyRef ^ {n.c} => AnyRef ^ {n.next.c} -> {n.c} Any ): Any
48
+ def pathDependent4 (n : Nested ^ )(g : AnyRef ^ {n.c} => AnyRef ^ {n.next.c} -> {n.c} Any ): AnyRef ^ {n.next.next.c}
49
+ def pathDependent5 (n : Nested ^ )(g : AnyRef ^ {n.c} => AnyRef ^ {n.next.c} -> {n.c} Any ): AnyRef ^ {n.next.next.c* , n.c, cap}
50
+
51
+ def contextPure (f : AnyRef ^ {a} ?-> Int ): Int
52
+ def contextImpure (f : AnyRef ^ {a} ?=> Int ): Int
53
+ def contextImpure2 (f : AnyRef ^ {a} ?-> {b,c} Int ): Int
54
+ def contextImpure3 (f : AnyRef ^ {a} ?-> {b,c} Int => AnyRef ^ {a} ?=> Int ): Int
55
+
56
+ val noParams : () -> () -> Int
57
+ val noParams2 : () -> {} () -> {} Int
58
+ val noParamsImpure : () => () => Int => Unit
59
+
60
+ val uncurried : (x : AnyRef ^ , y : AnyRef ^ ) -> AnyRef ^ {x,y} => Int -> {x,y} Int
61
+ val uncurried2 : (x : AnyRef ^ , y : AnyRef ^ ) -> AnyRef => Int -> {x,y} Int
62
+ val uncurried3 : (x : AnyRef ^ , y : AnyRef ^ ) => AnyRef
63
+ val uncurried4 : (x : AnyRef ^ , y : AnyRef ^ ) -> {a,b} AnyRef ^ => Int -> {x,y} Int
64
+
65
+ val contextUncurried : (x : AnyRef ^ {a}, y : AnyRef ^ {b}) ?-> AnyRef ^ {x,y} ?-> Int ?-> {x,y} Int
66
+ val contextUncurried2 : (x : AnyRef ^ {a}, y : AnyRef ^ {b}) ?-> AnyRef ?-> Int ?-> {x,y} Int
67
+ val contextUncurried3 : (x : AnyRef ^ {a}, y : AnyRef ^ {b}) ?=> AnyRef
68
+ val contextUncurried4 : (x : AnyRef ^ {a}, y : AnyRef ^ {b}) ?-> {a,b} AnyRef ^ ?=> Int ?-> {x,y} Int
69
+
70
+ def polyPure [A ](f : A -> Int ): Int
71
+ def polyPure2 [A ](f : A -> {} Int ): Int
72
+ def polyImpure [A ](f : A => Int ): Int
73
+ def polyImpure2 [A ](f : A -> {a,b,c} Int ): Int
74
+ def polyImpure3 [A ](f : A -> {a,b,c} Int => Int ): Int
75
+
76
+ def polyContextPure [A ](f : A ?-> Int ): Int
77
+ def polyContextPure2 [A ](f : A ?-> {} Int ): Int
78
+ def polyContextImpure [A ](f : A ?=> Int ): Int
79
+ def polyContextImpure2 [A ](f : A ?-> {a,b,c} Int ): Int
80
+ def polyContextImpure3 [A ](f : A ?-> {a,b,c} Int => Int ): Int
81
+
82
+ val polyPureV : [A ] => A -> Int
83
+ val polyPureV2 : [A ] => Int => A -> {a,b,c} Int
84
+ val polyImpureV : [A ] -> A => Int
85
+ val polyImpureV2 : [A ] -> A => Int
0 commit comments