# Standard Library - avram - a virtual machine code interpreter
avram - a virtual machine code interpreter

##### 2.7.4.3 Standard Library

`silly` programs may be linked with library modules, which consist of `silly` source text to be concatenated with the user program prior to the preprocessing phase. Most `silly` programs are linked with the standard `silly` prelude, which contains the following declarations among others.

         nil           = ()
         identity      = (nil,(nil,nil))
         left          = (nil,((nil,nil),nil))
         right         = (nil,(nil,(nil,nil)))
         meta          = (((nil,(nil,nil)),nil),nil)
         constant_nil  = ((nil,nil),nil)
         couple        = ((((left,nil),constant_nil),nil),right)
         compose       = couple(identity,constant_nil)
         constant      = couple(couple(constant_nil,identity),constant_nil)
         conditional   =
            couple(couple(left,compose(left,right)),compose(right,right))

There is a close correspondence between these declarations and the properties described in A Minimal Set of Properties. A fitting analogy would be that the properties of the operator specify the virtual machine instruction set in a language independent way, and the `silly` library defines the instruction mnemonics for a virtual assembly language. The relationship of some mnemonics to their corresponding instructions may be less clear than that of others, so they are all discussed next.