All these types are otherwise not different than normal types to the compiler. Regarding class , I have not made a decision yet. But I don't really want to reserve a useful name such as 'class' for a keyword. Last, my current preferred alternative, is to make class a built-in type with reflective behavior. What matter is that the current syntax supports using class without requiring a modification of the compiler or language.
Information hiding is important.
In LX, private implementation details are really hidden, they are not in the source code. The LX approach allows you to use all the scoping rules to perform information hiding. Functional programming is defined by two essential characteristics. LX does qualify for the second aspect. Functions as objects are a necessity for convenient use of reflection.