summaryrefslogtreecommitdiff
path: root/testsuite/runtime/eval/Test.gf
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 ;

}