actually it means that the compiler believed that (ulong[])(MapResult!(_funcliteral3,Box[]))
was the template parameter instead of ulong[]
nest your parenthesis properly and it should be fixed
return array!(ulong[])(map!(function ulong(Box x) {return x.val;})(a));