MSL syntax consists of prelude, machine , world , stream , view, canon, atom, selector, value, transform, hash, and comment elements.
An MSL program is any series of MSL expressions in order which are themselves valid. An MSL expression whose hash value does not equate to the hash of the previous expression is also invalid and cannot be interpreted.
MSL is built from Lisp style s-expressions. MSL differs from Lisp in the way it processes functions and arguments, so Lisp expressions cannot be directly included inside MSL nor vice-versa. MSL code can only contain other MSL. The beginning of MSL expressions inside a text file can be indicated by a prelude but this is not required to interpret a file or fragment.
When conflicts arose, compromises were made in this order of priority.