Hi Andrew,

[Joseph beat me to answering but the following might add something to the discussion.]

Thanks for pointing this out — .set:N was (once upon a time) the old name for .tl_set:N. I’ve fixed it up.
Basically you shouldn’t need to distinguish package options from other keys — it’s all up to how the keys are processed. To be more explicit, let’s say that you did want to distinguish between package option keys and other keys; it would be quite natural to write

 \keys_define:nn { mymodule / pkgoptkeys }
   { option .tl_set:N = \l_module_variable_tl }

 \keys_define:nn { mymodule / otherkeys }
   { another-option .tl_set:N = \l_module_another_variable_tl }

Hope this helps,
Will

> On 22 Jan 2017, at 11:51 am, Andrew Parsloe <[log in to unmask]> wrote:
> 
> I am confused by the illustration
> 
> \keys_define:nn { module }
> { option .set:N = \l_module_variable_tl }
> 
> in the l3keys2e documentation. I thought, "Ah, this is how you distinguish package options from keys defined within a package", but when I try this it doesn't work. But
> 
> \keys_define:nn { module }
> { option .tl_set:N = \l_module_variable_tl }
> 
> does.
> 
> Andrew
> 
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus