put stuff in llvm/ast, better sizeof, better closures