Problem with `@dlsym` (from the manual) for calling C

The manual’s “Calling C and Fortran Code > Indirect Calls” section provides the following macro to allow using a non-constant function spec with ccall:

macro dlsym(func, lib)
    z = Ref{Ptr{Cvoid}}(C_NULL)
    quote
        let zlocal = $z[]
            if zlocal == C_NULL
                zlocal = dlsym($(esc(lib))::Ptr{Cvoid}, $(esc(func)))::Ptr{Cvoid}
                $z[] = $zlocal
            end
            zlocal
        end
    end
end

When I tried using it I got an error:

ERROR: LoadError: LoadError: LoadError: UndefVarError: zlocal not defined

I’m just getting started with Julia and have barely ventured into macros but I think the fix $z[] = zlocal is needed. Is this just a typo in the manual?