Module pl.strict
Checks uses of undeclared global variables.
 All global variables must be 'declared' through a regular assignment
 (even assigning nil will do) in a main chunk before being used
 anywhere or assigned to inside a function. Existing metatables __newindex and __index
 metamethods are respected.
You can set any table to have strict behaviour using strict.module. Creating a new module with strict.closed_module makes the module immune to monkey-patching, if you don't wish to encourage monkey business.
 If the global PENLIGHT_NO_GLOBAL_STRICT is defined, then this module won't make the
 global environment strict - if you just want to explicitly set table strictness.
Functions
| module ([name[, mod[, predeclared]]]) | make an existing table strict. | 
| make_all_strict (T) | make all tables in a table strict. | 
| closed_module (mod, name) | make a new module table which is closed to further changes. | 
Functions
- module ([name[, mod[, predeclared]]])
- 
    make an existing table strict.
    Parameters:- name string name of table (optional)
- mod
            tab
         the table to protect - if nilthen we'll return a new table (optional)
- predeclared
            tab
- table of variables that are to be considered predeclared.
 
 Returns:- 
        the given table, or a new table
    
 Usage:local M = { hello = "world" } strict.module ("Awesome_Module", M, { Lua = true, -- defines allowed keys }) assert(M.hello == "world") assert(M.Lua == nil) -- access allowed, but has no value yet M.Lua = "Rocks" assert(M.Lua == "Rocks") M.not_allowed = "bad boy" -- throws an error 
- make_all_strict (T)
- 
    make all tables in a table strict.
 So strict.make_all_strict(_G)prevents monkey-patching of any global tableParameters:- T
            tab
         the table containing the tables to protect. Table Titself will NOT be protected.
 
- T
            tab
         the table containing the tables to protect. Table 
- closed_module (mod, name)
- 
    make a new module table which is closed to further changes.
    Parameters:- mod tab module table
- name string module name