blob: 748f974f95e8a7ce1fea9f95f28d68c862c7994a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
abstract Test = {
fun f : Int -> Int -> Int ;
fun g : Int -> Int ;
def g 1 = 2 ;
fun g2 : Int -> Int -> Int ;
def g2 1 x = x ;
fun g0 : Int -> Int -> Int ;
def g0 = g2 ;
fun g3 : Int -> (Int -> Int) ;
def g3 3 = g ;
fun const : Float -> String -> Float ;
def const x _ = x ;
cat Nat ;
data zero : Nat ;
succ : Nat -> Nat ;
err : Nat ;
fun zeroF : Nat ;
succF : Nat -> Nat ;
fun dec : Nat -> Nat ;
def dec zero = zero ;
dec (succ n) = n ;
dec n = err ; -- for fall through checking
fun plus : Nat -> Nat -> Nat ;
def plus err zero = err ;
plus m err = err ;
plus m zero = m ;
plus m (succ n) = plus (succ m) n ;
fun dec2 : Int -> Nat -> Nat ;
def dec2 0 zero = err ;
dec2 _ (succ n) = n ;
}
|