I am reading about local definitions in the book, and I came across this example-

```
(local ((define (f x) (+ x 5))
    (define (g alon)
      (cond
        [(empty? alon) empty]
        [else (cons (f (first alon)) (g (rest alon)))])))
  (g (list 1 2 3)))

```

what exactly does `local` do here?