(label) @1
(label) @2
(label) @begin
(label) @end
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = (byte*) 1024
(void()) do10((void()*) do10::fn)
(label) do10::@1
(label) do10::@return
(void()*) do10::fn
(void()*) do10::fn#3 fn zp ZP_WORD:2
(byte) do10::i
(byte) do10::i#1 i zp ZP_BYTE:4 16.5
(byte) do10::i#2 i zp ZP_BYTE:4 11.0
(void()) hello()
(label) hello::@return
(const string) hello::msg msg = (string) "hello "
(byte) idx
(byte) idx#11 idx zp ZP_BYTE:7 17.5
(byte) idx#12 idx zp ZP_BYTE:7 7.333333333333333
(byte) idx#16 idx zp ZP_BYTE:7 1.3333333333333333
(void()) main()
(label) main::@1
(label) main::@return
(void()) print((byte*) print::msg)
(label) print::@1
(label) print::@return
(byte) print::i
(byte) print::i#1 reg byte y 16.5
(byte) print::i#2 reg byte y 11.0
(byte*) print::msg
(byte*) print::msg#3 msg zp ZP_WORD:5 3.6666666666666665
(void()) world()
(label) world::@return
(const string) world::msg msg = (string) "world "

zp ZP_WORD:2 [ do10::fn#3 ]
zp ZP_BYTE:4 [ do10::i#2 do10::i#1 ]
zp ZP_WORD:5 [ print::msg#3 ]
reg byte y [ print::i#2 print::i#1 ]
zp ZP_BYTE:7 [ idx#11 idx#16 idx#12 ]
