source
prog
defn
FUN
1:1-1:3
fun
ID
1:5-1:5
f
LBRACKET
1:6-1:6
(
RBRACKET
1:7-1:7
)
COLON
1:9-1:9
:
type
VOID
1:11-1:14
void
EQUALS
1:16-1:16
=
expr
LET
2:9-2:11
let
defn
FUN
3:17-3:19
fun
ID
3:21-3:21
g
LBRACKET
3:22-3:22
(
RBRACKET
3:23-3:23
)
COLON
3:25-3:25
:
type
VOID
3:27-3:30
void
EQUALS
3:32-3:32
=
expr
expr
ID
4:25-4:25
h
LBRACKET
4:26-4:26
(
RBRACKET
4:27-4:27
)
COMMA
4:28-4:28
,
expr
LET
5:25-5:27
let
defn
FUN
6:33-6:35
fun
ID
6:37-6:37
f
LBRACKET
6:38-6:38
(
RBRACKET
6:39-6:39
)
COLON
6:41-6:41
:
type
VOID
6:43-6:46
void
EQUALS
6:48-6:48
=
expr
expr
ID
6:50-6:50
g
LBRACKET
6:51-6:51
(
RBRACKET
6:52-6:52
)
defn
FUN
7:33-7:35
fun
ID
7:37-7:37
g
LBRACKET
7:38-7:38
(
RBRACKET
7:39-7:39
)
COLON
7:41-7:41
:
type
VOID
7:43-7:46
void
defn
FUN
8:33-8:35
fun
ID
8:37-8:37
x
LBRACKET
8:38-8:38
(
RBRACKET
8:39-8:39
)
COLON
8:41-8:41
:
type
VOID
8:43-8:46
void
IN
9:25-9:26
in
expr
expr
ID
10:33-10:33
f
LBRACKET
10:34-10:34
(
RBRACKET
10:35-10:35
)
COMMA
10:36-10:36
,
expr
expr
ID
11:33-11:33
g
LBRACKET
11:34-11:34
(
RBRACKET
11:35-11:35
)
COMMA
11:36-11:36
,
expr
expr
ID
12:33-12:33
h
LBRACKET
12:34-12:34
(
RBRACKET
12:35-12:35
)
END
13:25-13:27
end
defn
FUN
14:17-14:19
fun
ID
14:21-14:21
h
LBRACKET
14:22-14:22
(
RBRACKET
14:23-14:23
)
COLON
14:25-14:25
:
type
VOID
14:27-14:30
void
IN
15:9-15:10
in
expr
ID
16:17-16:17
f
COMMA
16:18-16:18
,
expr
ID
16:20-16:20
g
COMMA
16:21-16:21
,
expr
ID
16:23-16:23
h
END
17:9-17:11
end
EOF