start supporting unary expressions in array bounds and improve error handling