It turns out functions are more complicated than procs