﻿:: { i4:i4, i8:i8, si4:i4*, si8:i8* }

[0,-3,5] ++ [1,2,3]
[0,-3,5] ++ []
[] ++ [1,2,3]

i4 ++ [1,2,3]
[1,2,3] ++ i4
i4 ++ []
[] ++ i4
[i4] ++ [1,2,3]
[1,2,3] ++ [i4]
[i4] ++ []
[] ++ [i4]

si4 ++ [1,2,3]
[1,2,3] ++ si4
si4 ++ []
[] ++ si4

si8 ++ [1,2,3]
[1,2,3] ++ si8
si8 ++ []
[] ++ si8

si4 ++ si4 ++ null ++ si4 ++ [] ++ si4
si4 ++ si4 ++ null ++ si8 ++ [] ++ si4

null ++ null
null ++ [] ++ null
[] ++ null ++ []

null ++ ([] if true else [1])
([] if true else [1]) ++ null
