compile now returns a closure