To clarify, my original idea was to write this part like
```

function colormap(cname::String, N::Int=100; mid=0.5, logscale=false, kvs...)

    cname = lowercase(cname)
    if haskey(colormaps_sequential, cname)
        h, w, d, c, s, b, wcolor, dcolor = colormaps_sequential[cname]

        for (k,v) in kvs
            if k in [:h, :w, :d, :c, :s, :b, :wcolor, :dcolor]
                @eval $k = $v
            end
        end

        return sequential_palette(p[1], N, w=w d=d, c=c, s=s, b=b, wcolor=wcolor, dcolor=dcolor, logscale=logscale)
```

But the part where I use the `eval` to set the new value to the variable does not take effect.