čet 12 mar 2026 14:58:52 CET e


barbara

fun f() : void = 
    ^a^
 A8: Nodes<Defn> 
 LOCATION 
 A7: DefFunDefn f 
 LOCATION 
 A4: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType VOID 
 LOCATION 
 A6: Exprs 
 LOCATION 
 A5: Nodes<Expr> 
 LOCATION 
 A3: PfxExpr PTR 
 LOCATION 
 A2: SfxExpr PTR 
 LOCATION 
 A1: NameExpr a 
 LOCATION 

fak

var id : (((((((int)))))))
 A2: Nodes<Defn> 
 LOCATION 
 A1: VarDefn id 
 LOCATION 
 A0: AtomType INT 
 LOCATION 

prog1

fun a(b: int): int =

    b * if b then b + 1 end
 A16: Nodes<Defn> 
 LOCATION 
 A15: DefFunDefn a 
 LOCATION 
 A12: Nodes<ParDefn> 
 LOCATION 
 A1: ParDefn b 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A2: AtomType INT 
 LOCATION 
 A14: Exprs 
 LOCATION 
 A13: Nodes<Expr> 
 LOCATION 
 A11: BinExpr MUL 
 LOCATION 
 A3: NameExpr b 
 LOCATION 
 A10: IfThenExpr 
 LOCATION 
 A4: NameExpr b 
 LOCATION 
 A9: Exprs 
 LOCATION 
 A8: Nodes<Expr> 
 LOCATION 
 A7: BinExpr ADD 
 LOCATION 
 A5: NameExpr b 
 LOCATION 
 A6: AtomExpr 1 
 LOCATION 

prog2

fun a(b: int): int =

    b * while b do b + 1 end
 A16: Nodes<Defn> 
 LOCATION 
 A15: DefFunDefn a 
 LOCATION 
 A12: Nodes<ParDefn> 
 LOCATION 
 A1: ParDefn b 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A2: AtomType INT 
 LOCATION 
 A14: Exprs 
 LOCATION 
 A13: Nodes<Expr> 
 LOCATION 
 A11: BinExpr MUL 
 LOCATION 
 A3: NameExpr b 
 LOCATION 
 A10: WhileExpr 
 LOCATION 
 A4: NameExpr b 
 LOCATION 
 A9: Exprs 
 LOCATION 
 A8: Nodes<Expr> 
 LOCATION 
 A7: BinExpr ADD 
 LOCATION 
 A5: NameExpr b 
 LOCATION 
 A6: AtomExpr 1 
 LOCATION 

synan

typ stevilka = int
var globalnast : stevilka
fun funkcija (prviarg : stevilka, drugiarg : bool) : int =
	nvoaspr = a + -b - c,
	nvoaspr = nvoaspr * 3 + 2,
	nvoaspr = nvoaspr + 3 * 2,
	nvoaspr = 1 - 3 + 2,
	nvoaspr = 1 / 3 * 2 + 1 * 3 / 2,
	if 1 == 2 then 666 end
 A62: Nodes<Defn> 
 LOCATION 
 A1: TypDefn stevilka 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A3: VarDefn globalnast 
 LOCATION 
 A2: NameType stevilka 
 LOCATION 
 A61: DefFunDefn funkcija 
 LOCATION 
 A58: Nodes<ParDefn> 
 LOCATION 
 A5: ParDefn prviarg 
 LOCATION 
 A4: NameType stevilka 
 LOCATION 
 A7: ParDefn drugiarg 
 LOCATION 
 A6: AtomType BOOL 
 LOCATION 
 A8: AtomType INT 
 LOCATION 
 A60: Exprs 
 LOCATION 
 A59: Nodes<Expr> 
 LOCATION 
 A16: AsgnExpr 
 LOCATION 
 A9: NameExpr nvoaspr 
 LOCATION 
 A15: BinExpr SUB 
 LOCATION 
 A13: BinExpr ADD 
 LOCATION 
 A10: NameExpr a 
 LOCATION 
 A12: PfxExpr SUB 
 LOCATION 
 A11: NameExpr b 
 LOCATION 
 A14: NameExpr c 
 LOCATION 
 A23: AsgnExpr 
 LOCATION 
 A17: NameExpr nvoaspr 
 LOCATION 
 A22: BinExpr ADD 
 LOCATION 
 A20: BinExpr MUL 
 LOCATION 
 A18: NameExpr nvoaspr 
 LOCATION 
 A19: AtomExpr 3 
 LOCATION 
 A21: AtomExpr 2 
 LOCATION 
 A30: AsgnExpr 
 LOCATION 
 A24: NameExpr nvoaspr 
 LOCATION 
 A29: BinExpr ADD 
 LOCATION 
 A25: NameExpr nvoaspr 
 LOCATION 
 A28: BinExpr MUL 
 LOCATION 
 A26: AtomExpr 3 
 LOCATION 
 A27: AtomExpr 2 
 LOCATION 
 A37: AsgnExpr 
 LOCATION 
 A31: NameExpr nvoaspr 
 LOCATION 
 A36: BinExpr ADD 
 LOCATION 
 A34: BinExpr SUB 
 LOCATION 
 A32: AtomExpr 1 
 LOCATION 
 A33: AtomExpr 3 
 LOCATION 
 A35: AtomExpr 2 
 LOCATION 
 A50: AsgnExpr 
 LOCATION 
 A38: NameExpr nvoaspr 
 LOCATION 
 A49: BinExpr ADD 
 LOCATION 
 A43: BinExpr MUL 
 LOCATION 
 A41: BinExpr DIV 
 LOCATION 
 A39: AtomExpr 1 
 LOCATION 
 A40: AtomExpr 3 
 LOCATION 
 A42: AtomExpr 2 
 LOCATION 
 A48: BinExpr DIV 
 LOCATION 
 A46: BinExpr MUL 
 LOCATION 
 A44: AtomExpr 1 
 LOCATION 
 A45: AtomExpr 3 
 LOCATION 
 A47: AtomExpr 2 
 LOCATION 
 A57: IfThenExpr 
 LOCATION 
 A53: BinExpr EQU 
 LOCATION 
 A51: AtomExpr 1 
 LOCATION 
 A52: AtomExpr 2 
 LOCATION 
 A56: Exprs 
 LOCATION 
 A55: Nodes<Expr> 
 LOCATION 
 A54: AtomExpr 666 
 LOCATION 

test10

typ id = T

var id : T

fun id (par1 : { a: {}, b: (:{a: ( g : int)}:bool)}) : {}

fun id () : void = not true, +100, -100, 1+2, 1-3, 1*3, 4*22, 5/2, 35%23, true and false, false or true, assignme = 1,  a == b, 234 >= 123, 23<235, 34>2 , 3<5, 2<=2
 A81: Nodes<Defn> 
 LOCATION 
 A1: TypDefn id 
 LOCATION 
 A0: NameType T 
 LOCATION 
 A3: VarDefn id 
 LOCATION 
 A2: NameType T 
 LOCATION 
 A24: ExtFunDefn id 
 LOCATION 
 A23: Nodes<ParDefn> 
 LOCATION 
 A20: ParDefn par1 
 LOCATION 
 A19: UniType 
 LOCATION 
 A18: Nodes<CompDefn> 
 LOCATION 
 A6: CompDefn a 
 LOCATION 
 A5: UniType 
 LOCATION 
 A4: Nodes<CompDefn> 
 LOCATION 
 A17: CompDefn b 
 LOCATION 
 A16: FunType 
 LOCATION 
 A15: Nodes<Type> 
 LOCATION 
 A13: UniType 
 LOCATION 
 A12: Nodes<CompDefn> 
 LOCATION 
 A11: CompDefn a 
 LOCATION 
 A10: StrType 
 LOCATION 
 A9: Nodes<CompDefn> 
 LOCATION 
 A8: CompDefn g 
 LOCATION 
 A7: AtomType INT 
 LOCATION 
 A14: AtomType BOOL 
 LOCATION 
 A22: UniType 
 LOCATION 
 A21: Nodes<CompDefn> 
 LOCATION 
 A80: DefFunDefn id 
 LOCATION 
 A77: Nodes<ParDefn> 
 LOCATION 
 A25: AtomType VOID 
 LOCATION 
 A79: Exprs 
 LOCATION 
 A78: Nodes<Expr> 
 LOCATION 
 A27: PfxExpr NOT 
 LOCATION 
 A26: AtomExpr true 
 LOCATION 
 A29: PfxExpr ADD 
 LOCATION 
 A28: AtomExpr 100 
 LOCATION 
 A31: PfxExpr SUB 
 LOCATION 
 A30: AtomExpr 100 
 LOCATION 
 A34: BinExpr ADD 
 LOCATION 
 A32: AtomExpr 1 
 LOCATION 
 A33: AtomExpr 2 
 LOCATION 
 A37: BinExpr SUB 
 LOCATION 
 A35: AtomExpr 1 
 LOCATION 
 A36: AtomExpr 3 
 LOCATION 
 A40: BinExpr MUL 
 LOCATION 
 A38: AtomExpr 1 
 LOCATION 
 A39: AtomExpr 3 
 LOCATION 
 A43: BinExpr MUL 
 LOCATION 
 A41: AtomExpr 4 
 LOCATION 
 A42: AtomExpr 22 
 LOCATION 
 A46: BinExpr DIV 
 LOCATION 
 A44: AtomExpr 5 
 LOCATION 
 A45: AtomExpr 2 
 LOCATION 
 A49: BinExpr MOD 
 LOCATION 
 A47: AtomExpr 35 
 LOCATION 
 A48: AtomExpr 23 
 LOCATION 
 A52: BinExpr AND 
 LOCATION 
 A50: AtomExpr true 
 LOCATION 
 A51: AtomExpr false 
 LOCATION 
 A55: BinExpr OR 
 LOCATION 
 A53: AtomExpr false 
 LOCATION 
 A54: AtomExpr true 
 LOCATION 
 A58: AsgnExpr 
 LOCATION 
 A56: NameExpr assignme 
 LOCATION 
 A57: AtomExpr 1 
 LOCATION 
 A61: BinExpr EQU 
 LOCATION 
 A59: NameExpr a 
 LOCATION 
 A60: NameExpr b 
 LOCATION 
 A64: BinExpr GEQ 
 LOCATION 
 A62: AtomExpr 234 
 LOCATION 
 A63: AtomExpr 123 
 LOCATION 
 A67: BinExpr LTH 
 LOCATION 
 A65: AtomExpr 23 
 LOCATION 
 A66: AtomExpr 235 
 LOCATION 
 A70: BinExpr GTH 
 LOCATION 
 A68: AtomExpr 34 
 LOCATION 
 A69: AtomExpr 2 
 LOCATION 
 A73: BinExpr LTH 
 LOCATION 
 A71: AtomExpr 3 
 LOCATION 
 A72: AtomExpr 5 
 LOCATION 
 A76: BinExpr LEQ 
 LOCATION 
 A74: AtomExpr 2 
 LOCATION 
 A75: AtomExpr 2 
 LOCATION 

test11

fun funny() : void = ^a[b].c^ as { a: {}, b: (:{a: ( g : int)}:bool)}, sizeof { a: {}, b: (:{a: ( g : int)}:bool)}


typ t = (::t)
 A49: Nodes<Defn> 
 LOCATION 
 A44: DefFunDefn funny 
 LOCATION 
 A41: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType VOID 
 LOCATION 
 A43: Exprs 
 LOCATION 
 A42: Nodes<Expr> 
 LOCATION 
 A23: CastExpr 
 LOCATION 
 A6: PfxExpr PTR 
 LOCATION 
 A5: SfxExpr PTR 
 LOCATION 
 A4: CompExpr c 
 LOCATION 
 A3: ArrExpr 
 LOCATION 
 A1: NameExpr a 
 LOCATION 
 A2: NameExpr b 
 LOCATION 
 A22: UniType 
 LOCATION 
 A21: Nodes<CompDefn> 
 LOCATION 
 A9: CompDefn a 
 LOCATION 
 A8: UniType 
 LOCATION 
 A7: Nodes<CompDefn> 
 LOCATION 
 A20: CompDefn b 
 LOCATION 
 A19: FunType 
 LOCATION 
 A18: Nodes<Type> 
 LOCATION 
 A16: UniType 
 LOCATION 
 A15: Nodes<CompDefn> 
 LOCATION 
 A14: CompDefn a 
 LOCATION 
 A13: StrType 
 LOCATION 
 A12: Nodes<CompDefn> 
 LOCATION 
 A11: CompDefn g 
 LOCATION 
 A10: AtomType INT 
 LOCATION 
 A17: AtomType BOOL 
 LOCATION 
 A40: SizeExpr 
 LOCATION 
 A39: UniType 
 LOCATION 
 A38: Nodes<CompDefn> 
 LOCATION 
 A26: CompDefn a 
 LOCATION 
 A25: UniType 
 LOCATION 
 A24: Nodes<CompDefn> 
 LOCATION 
 A37: CompDefn b 
 LOCATION 
 A36: FunType 
 LOCATION 
 A35: Nodes<Type> 
 LOCATION 
 A33: UniType 
 LOCATION 
 A32: Nodes<CompDefn> 
 LOCATION 
 A31: CompDefn a 
 LOCATION 
 A30: StrType 
 LOCATION 
 A29: Nodes<CompDefn> 
 LOCATION 
 A28: CompDefn g 
 LOCATION 
 A27: AtomType INT 
 LOCATION 
 A34: AtomType BOOL 
 LOCATION 
 A48: TypDefn t 
 LOCATION 
 A47: FunType 
 LOCATION 
 A46: Nodes<Type> 
 LOCATION 
 A45: NameType t 
 LOCATION 

test12

fun f() : void = let fun f():void in let fun f():void in (a, b, c) end, let fun f():int = 5+5 in sizeof [10]int end end
 A39: Nodes<Defn> 
 LOCATION 
 A38: DefFunDefn f 
 LOCATION 
 A35: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType VOID 
 LOCATION 
 A37: Exprs 
 LOCATION 
 A36: Nodes<Expr> 
 LOCATION 
 A34: LetExpr 
 LOCATION 
 A31: Nodes<Defn> 
 LOCATION 
 A3: ExtFunDefn f 
 LOCATION 
 A2: Nodes<ParDefn> 
 LOCATION 
 A1: AtomType VOID 
 LOCATION 
 A33: Exprs 
 LOCATION 
 A32: Nodes<Expr> 
 LOCATION 
 A15: LetExpr 
 LOCATION 
 A12: Nodes<Defn> 
 LOCATION 
 A6: ExtFunDefn f 
 LOCATION 
 A5: Nodes<ParDefn> 
 LOCATION 
 A4: AtomType VOID 
 LOCATION 
 A14: Exprs 
 LOCATION 
 A13: Nodes<Expr> 
 LOCATION 
 A11: Exprs 
 LOCATION 
 A10: Nodes<Expr> 
 LOCATION 
 A7: NameExpr a 
 LOCATION 
 A8: NameExpr b 
 LOCATION 
 A9: NameExpr c 
 LOCATION 
 A30: LetExpr 
 LOCATION 
 A27: Nodes<Defn> 
 LOCATION 
 A23: DefFunDefn f 
 LOCATION 
 A20: Nodes<ParDefn> 
 LOCATION 
 A16: AtomType INT 
 LOCATION 
 A22: Exprs 
 LOCATION 
 A21: Nodes<Expr> 
 LOCATION 
 A19: BinExpr ADD 
 LOCATION 
 A17: AtomExpr 5 
 LOCATION 
 A18: AtomExpr 5 
 LOCATION 
 A29: Exprs 
 LOCATION 
 A28: Nodes<Expr> 
 LOCATION 
 A26: SizeExpr 
 LOCATION 
 A25: ArrType ArrType[10] 
 LOCATION 
 A24: AtomType INT 
 LOCATION 

test13

fun a():ab = if if E4 then E5, E6 else E7, E8 end then while E9 do E10, "QWERHBEQR ", (if E4 then E5, E6 else E7, E8 end), E3 end end
 A37: Nodes<Defn> 
 LOCATION 
 A36: DefFunDefn a 
 LOCATION 
 A33: Nodes<ParDefn> 
 LOCATION 
 A0: NameType ab 
 LOCATION 
 A35: Exprs 
 LOCATION 
 A34: Nodes<Expr> 
 LOCATION 
 A32: IfThenExpr 
 LOCATION 
 A10: IfThenElseExpr 
 LOCATION 
 A1: NameExpr E4 
 LOCATION 
 A7: Exprs 
 LOCATION 
 A6: Nodes<Expr> 
 LOCATION 
 A2: NameExpr E5 
 LOCATION 
 A3: NameExpr E6 
 LOCATION 
 A9: Exprs 
 LOCATION 
 A8: Nodes<Expr> 
 LOCATION 
 A4: NameExpr E7 
 LOCATION 
 A5: NameExpr E8 
 LOCATION 
 A31: Exprs 
 LOCATION 
 A30: Nodes<Expr> 
 LOCATION 
 A29: WhileExpr 
 LOCATION 
 A11: NameExpr E9 
 LOCATION 
 A28: Exprs 
 LOCATION 
 A27: Nodes<Expr> 
 LOCATION 
 A12: NameExpr E10 
 LOCATION 
 A13: AtomExpr "QWERHBEQR " 
 LOCATION 
 A25: Exprs 
 LOCATION 
 A24: Nodes<Expr> 
 LOCATION 
 A23: IfThenElseExpr 
 LOCATION 
 A14: NameExpr E4 
 LOCATION 
 A20: Exprs 
 LOCATION 
 A19: Nodes<Expr> 
 LOCATION 
 A15: NameExpr E5 
 LOCATION 
 A16: NameExpr E6 
 LOCATION 
 A22: Exprs 
 LOCATION 
 A21: Nodes<Expr> 
 LOCATION 
 A17: NameExpr E7 
 LOCATION 
 A18: NameExpr E8 
 LOCATION 
 A26: NameExpr E3 
 LOCATION 

test14

fun f() : bool = not a+b*b+a-c % 10 as int
 A19: Nodes<Defn> 
 LOCATION 
 A18: DefFunDefn f 
 LOCATION 
 A15: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType BOOL 
 LOCATION 
 A17: Exprs 
 LOCATION 
 A16: Nodes<Expr> 
 LOCATION 
 A14: CastExpr 
 LOCATION 
 A12: BinExpr SUB 
 LOCATION 
 A8: BinExpr ADD 
 LOCATION 
 A6: BinExpr ADD 
 LOCATION 
 A2: PfxExpr NOT 
 LOCATION 
 A1: NameExpr a 
 LOCATION 
 A5: BinExpr MUL 
 LOCATION 
 A3: NameExpr b 
 LOCATION 
 A4: NameExpr b 
 LOCATION 
 A7: NameExpr a 
 LOCATION 
 A11: BinExpr MOD 
 LOCATION 
 A9: NameExpr c 
 LOCATION 
 A10: AtomExpr 10 
 LOCATION 
 A13: AtomType INT 
 LOCATION 

test15

fun f() : void = a = b   or false and true != false + 2 * 4 ^
 A19: Nodes<Defn> 
 LOCATION 
 A18: DefFunDefn f 
 LOCATION 
 A15: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType VOID 
 LOCATION 
 A17: Exprs 
 LOCATION 
 A16: Nodes<Expr> 
 LOCATION 
 A14: AsgnExpr 
 LOCATION 
 A1: NameExpr a 
 LOCATION 
 A13: BinExpr OR 
 LOCATION 
 A2: NameExpr b 
 LOCATION 
 A12: BinExpr AND 
 LOCATION 
 A3: AtomExpr false 
 LOCATION 
 A11: BinExpr NEQ 
 LOCATION 
 A4: AtomExpr true 
 LOCATION 
 A10: BinExpr ADD 
 LOCATION 
 A5: AtomExpr false 
 LOCATION 
 A9: BinExpr MUL 
 LOCATION 
 A6: AtomExpr 2 
 LOCATION 
 A8: SfxExpr PTR 
 LOCATION 
 A7: AtomExpr 4 
 LOCATION 

test1

typ test = (a: int, b: char)
 A7: Nodes<Defn> 
 LOCATION 
 A6: TypDefn test 
 LOCATION 
 A5: StrType 
 LOCATION 
 A4: Nodes<CompDefn> 
 LOCATION 
 A1: CompDefn a 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A3: CompDefn b 
 LOCATION 
 A2: AtomType CHAR 
 LOCATION 

test2

// defnList test
fun f() : int = let typ a = int typ b = int in a, b end

 A15: Nodes<Defn> 
 LOCATION 
 A14: DefFunDefn f 
 LOCATION 
 A11: Nodes<ParDefn> 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A13: Exprs 
 LOCATION 
 A12: Nodes<Expr> 
 LOCATION 
 A10: LetExpr 
 LOCATION 
 A7: Nodes<Defn> 
 LOCATION 
 A2: TypDefn a 
 LOCATION 
 A1: AtomType INT 
 LOCATION 
 A4: TypDefn b 
 LOCATION 
 A3: AtomType INT 
 LOCATION 
 A9: Exprs 
 LOCATION 
 A8: Nodes<Expr> 
 LOCATION 
 A5: NameExpr a 
 LOCATION 
 A6: NameExpr b 
 LOCATION 

test3

typ idt = int

var idv : [10]idt

fun idf ( id1 : T1 , id2 : T2 , id3 : T3 ) : idt

fun idff ( abc : id) : idt = 1, 2, 3, while 2 do 1, 2, 3 end
 A31: Nodes<Defn> 
 LOCATION 
 A1: TypDefn idt 
 LOCATION 
 A0: AtomType INT 
 LOCATION 
 A4: VarDefn idv 
 LOCATION 
 A3: ArrType ArrType[10] 
 LOCATION 
 A2: NameType idt 
 LOCATION 
 A13: ExtFunDefn idf 
 LOCATION 
 A12: Nodes<ParDefn> 
 LOCATION 
 A6: ParDefn id1 
 LOCATION 
 A5: NameType T1 
 LOCATION 
 A8: ParDefn id2 
 LOCATION 
 A7: NameType T2 
 LOCATION 
 A10: ParDefn id3 
 LOCATION 
 A9: NameType T3 
 LOCATION 
 A11: NameType idt 
 LOCATION 
 A30: DefFunDefn idff 
 LOCATION 
 A27: Nodes<ParDefn> 
 LOCATION 
 A15: ParDefn abc 
 LOCATION 
 A14: NameType id 
 LOCATION 
 A16: NameType idt 
 LOCATION 
 A29: Exprs 
 LOCATION 
 A28: Nodes<Expr> 
 LOCATION 
 A17: AtomExpr 1 
 LOCATION 
 A18: AtomExpr 2 
 LOCATION 
 A19: AtomExpr 3 
 LOCATION 
 A26: WhileExpr 
 LOCATION 
 A20: AtomExpr 2 
 LOCATION 
 A25: Exprs 
 LOCATION 
 A24: Nodes<Expr> 
 LOCATION 
 A21: AtomExpr 1 
 LOCATION 
 A22: AtomExpr 2 
 LOCATION 
 A23: AtomExpr 3 
 LOCATION 

test4

typ id = ^^^^^^^^^^^^^^void
typ id2 = [1][2][4]bool

var id3 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, d : int, e : bool, f : char, g : { h : ^^int, i: void} )
 A62: Nodes<Defn> 
 LOCATION 
 A15: TypDefn id 
 LOCATION 
 A14: PtrType 
 LOCATION 
 A13: PtrType 
 LOCATION 
 A12: PtrType 
 LOCATION 
 A11: PtrType 
 LOCATION 
 A10: PtrType 
 LOCATION 
 A9: PtrType 
 LOCATION 
 A8: PtrType 
 LOCATION 
 A7: PtrType 
 LOCATION 
 A6: PtrType 
 LOCATION 
 A5: PtrType 
 LOCATION 
 A4: PtrType 
 LOCATION 
 A3: PtrType 
 LOCATION 
 A2: PtrType 
 LOCATION 
 A1: PtrType 
 LOCATION 
 A0: AtomType VOID 
 LOCATION 
 A20: TypDefn id2 
 LOCATION 
 A19: ArrType ArrType[1] 
 LOCATION 
 A18: ArrType ArrType[2] 
 LOCATION 
 A17: ArrType ArrType[4] 
 LOCATION 
 A16: AtomType BOOL 
 LOCATION 
 A61: VarDefn id3 
 LOCATION 
 A60: StrType 
 LOCATION 
 A59: Nodes<CompDefn> 
 LOCATION 
 A25: CompDefn a 
 LOCATION 
 A24: ArrType ArrType[1] 
 LOCATION 
 A23: ArrType ArrType[2] 
 LOCATION 
 A22: ArrType ArrType[4] 
 LOCATION 
 A21: AtomType BOOL 
 LOCATION 
 A41: CompDefn b 
 LOCATION 
 A40: PtrType 
 LOCATION 
 A39: PtrType 
 LOCATION 
 A38: PtrType 
 LOCATION 
 A37: PtrType 
 LOCATION 
 A36: PtrType 
 LOCATION 
 A35: PtrType 
 LOCATION 
 A34: PtrType 
 LOCATION 
 A33: PtrType 
 LOCATION 
 A32: PtrType 
 LOCATION 
 A31: PtrType 
 LOCATION 
 A30: PtrType 
 LOCATION 
 A29: PtrType 
 LOCATION 
 A28: PtrType 
 LOCATION 
 A27: PtrType 
 LOCATION 
 A26: AtomType VOID 
 LOCATION 
 A43: CompDefn c 
 LOCATION 
 A42: NameType randomid 
 LOCATION 
 A45: CompDefn d 
 LOCATION 
 A44: AtomType INT 
 LOCATION 
 A47: CompDefn e 
 LOCATION 
 A46: AtomType BOOL 
 LOCATION 
 A49: CompDefn f 
 LOCATION 
 A48: AtomType CHAR 
 LOCATION 
 A58: CompDefn g 
 LOCATION 
 A57: UniType 
 LOCATION 
 A56: Nodes<CompDefn> 
 LOCATION 
 A53: CompDefn h 
 LOCATION 
 A52: PtrType 
 LOCATION 
 A51: PtrType 
 LOCATION 
 A50: AtomType INT 
 LOCATION 
 A55: CompDefn i 
 LOCATION 
 A54: AtomType VOID 
 LOCATION 

test5

var id4 : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )
 A44: Nodes<Defn> 
 LOCATION 
 A43: VarDefn id4 
 LOCATION 
 A42: StrType 
 LOCATION 
 A41: Nodes<CompDefn> 
 LOCATION 
 A4: CompDefn a 
 LOCATION 
 A3: ArrType ArrType[1] 
 LOCATION 
 A2: ArrType ArrType[2] 
 LOCATION 
 A1: ArrType ArrType[4] 
 LOCATION 
 A0: AtomType BOOL 
 LOCATION 
 A20: CompDefn b 
 LOCATION 
 A19: PtrType 
 LOCATION 
 A18: PtrType 
 LOCATION 
 A17: PtrType 
 LOCATION 
 A16: PtrType 
 LOCATION 
 A15: PtrType 
 LOCATION 
 A14: PtrType 
 LOCATION 
 A13: PtrType 
 LOCATION 
 A12: PtrType 
 LOCATION 
 A11: PtrType 
 LOCATION 
 A10: PtrType 
 LOCATION 
 A9: PtrType 
 LOCATION 
 A8: PtrType 
 LOCATION 
 A7: PtrType 
 LOCATION 
 A6: PtrType 
 LOCATION 
 A5: AtomType VOID 
 LOCATION 
 A22: CompDefn c 
 LOCATION 
 A21: NameType randomid 
 LOCATION 
 A40: CompDefn x 
 LOCATION 
 A39: StrType 
 LOCATION 
 A38: Nodes<CompDefn> 
 LOCATION 
 A24: CompDefn d 
 LOCATION 
 A23: AtomType INT 
 LOCATION 
 A26: CompDefn e 
 LOCATION 
 A25: AtomType BOOL 
 LOCATION 
 A28: CompDefn f 
 LOCATION 
 A27: AtomType CHAR 
 LOCATION 
 A37: CompDefn g 
 LOCATION 
 A36: UniType 
 LOCATION 
 A35: Nodes<CompDefn> 
 LOCATION 
 A32: CompDefn h 
 LOCATION 
 A31: PtrType 
 LOCATION 
 A30: PtrType 
 LOCATION 
 A29: AtomType INT 
 LOCATION 
 A34: CompDefn i 
 LOCATION 
 A33: AtomType VOID 
 LOCATION 

test6

var rav : { a: {}, b: (:{a: ( g : int)}:bool)}
 A17: Nodes<Defn> 
 LOCATION 
 A16: VarDefn rav 
 LOCATION 
 A15: UniType 
 LOCATION 
 A14: Nodes<CompDefn> 
 LOCATION 
 A2: CompDefn a 
 LOCATION 
 A1: UniType 
 LOCATION 
 A0: Nodes<CompDefn> 
 LOCATION 
 A13: CompDefn b 
 LOCATION 
 A12: FunType 
 LOCATION 
 A11: Nodes<Type> 
 LOCATION 
 A9: UniType 
 LOCATION 
 A8: Nodes<CompDefn> 
 LOCATION 
 A7: CompDefn a 
 LOCATION 
 A6: StrType 
 LOCATION 
 A5: Nodes<CompDefn> 
 LOCATION 
 A4: CompDefn g 
 LOCATION 
 A3: AtomType INT 
 LOCATION 
 A10: AtomType BOOL 
 LOCATION 

test7

typ t = (((id)))
typ t2 = (id: (int))
typ t3 = (((({}))))
 A10: Nodes<Defn> 
 LOCATION 
 A1: TypDefn t 
 LOCATION 
 A0: NameType id 
 LOCATION 
 A6: TypDefn t2 
 LOCATION 
 A5: StrType 
 LOCATION 
 A4: Nodes<CompDefn> 
 LOCATION 
 A3: CompDefn id 
 LOCATION 
 A2: AtomType INT 
 LOCATION 
 A9: TypDefn t3 
 LOCATION 
 A8: UniType 
 LOCATION 
 A7: Nodes<CompDefn> 
 LOCATION 

test8

fun abc () : (a:[1][2][4]bool, b: ^^^^^^^^^^^^^^void, c: randomid, x: (d : int, e : bool, f : char, g : { h : ^^int, i: void}) )

 A45: Nodes<Defn> 
 LOCATION 
 A44: ExtFunDefn abc 
 LOCATION 
 A43: Nodes<ParDefn> 
 LOCATION 
 A42: StrType 
 LOCATION 
 A41: Nodes<CompDefn> 
 LOCATION 
 A4: CompDefn a 
 LOCATION 
 A3: ArrType ArrType[1] 
 LOCATION 
 A2: ArrType ArrType[2] 
 LOCATION 
 A1: ArrType ArrType[4] 
 LOCATION 
 A0: AtomType BOOL 
 LOCATION 
 A20: CompDefn b 
 LOCATION 
 A19: PtrType 
 LOCATION 
 A18: PtrType 
 LOCATION 
 A17: PtrType 
 LOCATION 
 A16: PtrType 
 LOCATION 
 A15: PtrType 
 LOCATION 
 A14: PtrType 
 LOCATION 
 A13: PtrType 
 LOCATION 
 A12: PtrType 
 LOCATION 
 A11: PtrType 
 LOCATION 
 A10: PtrType 
 LOCATION 
 A9: PtrType 
 LOCATION 
 A8: PtrType 
 LOCATION 
 A7: PtrType 
 LOCATION 
 A6: PtrType 
 LOCATION 
 A5: AtomType VOID 
 LOCATION 
 A22: CompDefn c 
 LOCATION 
 A21: NameType randomid 
 LOCATION 
 A40: CompDefn x 
 LOCATION 
 A39: StrType 
 LOCATION 
 A38: Nodes<CompDefn> 
 LOCATION 
 A24: CompDefn d 
 LOCATION 
 A23: AtomType INT 
 LOCATION 
 A26: CompDefn e 
 LOCATION 
 A25: AtomType BOOL 
 LOCATION 
 A28: CompDefn f 
 LOCATION 
 A27: AtomType CHAR 
 LOCATION 
 A37: CompDefn g 
 LOCATION 
 A36: UniType 
 LOCATION 
 A35: Nodes<CompDefn> 
 LOCATION 
 A32: CompDefn h 
 LOCATION 
 A31: PtrType 
 LOCATION 
 A30: PtrType 
 LOCATION 
 A29: AtomType INT 
 LOCATION 
 A34: CompDefn i 
 LOCATION 
 A33: AtomType VOID 
 LOCATION 

test9

fun id ( id : idt ) : (a:[1][2][4][12]void) = ide, 1, true, false, 'a', "niz", "niz spet", none, nil
 A23: Nodes<Defn> 
 LOCATION 
 A22: DefFunDefn id 
 LOCATION 
 A19: Nodes<ParDefn> 
 LOCATION 
 A1: ParDefn id 
 LOCATION 
 A0: NameType idt 
 LOCATION 
 A9: StrType 
 LOCATION 
 A8: Nodes<CompDefn> 
 LOCATION 
 A7: CompDefn a 
 LOCATION 
 A6: ArrType ArrType[1] 
 LOCATION 
 A5: ArrType ArrType[2] 
 LOCATION 
 A4: ArrType ArrType[4] 
 LOCATION 
 A3: ArrType ArrType[12] 
 LOCATION 
 A2: AtomType VOID 
 LOCATION 
 A21: Exprs 
 LOCATION 
 A20: Nodes<Expr> 
 LOCATION 
 A10: NameExpr ide 
 LOCATION 
 A11: AtomExpr 1 
 LOCATION 
 A12: AtomExpr true 
 LOCATION 
 A13: AtomExpr false 
 LOCATION 
 A14: AtomExpr 'a' 
 LOCATION 
 A15: AtomExpr "niz" 
 LOCATION 
 A16: AtomExpr "niz spet" 
 LOCATION 
 A17: AtomExpr none 
 LOCATION 
 A18: AtomExpr nil 
 LOCATION