all primitives now use defprimitive; added :rest''; more tests for primitives dsl