think of functions as ast transformations