No side effects, no surprises.

Itemizing HTML Bulleted list fussing Tired ul Itemizing When it comes to word processors, it seems like bulleted lists are never quite right — there's always a bit too much fiddling around with the paragraphs above and below. And nested lists? ... forget it!

Rule validator

Understanding the details of the rule validator is important because effective use of the V language is only possible when this step's work is understood.

The rule validator processes each prepared object (objects that are composed, evaluated, and substituted), in dependency order: here is where the real work of the VLI runtime occurs.

Note that in many common scenarios, a prepared object is unchanged from its original parsed form. (Furthermore, conceptually, the system administrator can view all objects from this simplistic point of view and use the V language without undue consideration to the detailed processing sketched out in the previous pages.)

Plug-in modules

The validator conducts its work through the use of plug-in modules. Plug-in modules are the executable components of the VLI that correspond to an object's type keyword. In the earlier examples the types glob, file, and resource were introduced.

Plug-in developers can extend the V language by defining new types.

Each object defined in the V language must include a type statement, which is used to instruct the VLI to load and execute a corresponding plug-in module.

All modules follow a general set of steps for processing each object, plus a specific set of steps defined by the module developer. The general steps include: checking for required keywords, checking for misspelled keywords, verifying the existence of the referent object(s), checking that user-defined assertions are true, tracing the object's timeline, and emitting success or failure.