There are several naming conventions is the Lisp world when it comes to identifiers. For an overview see: http://www.cliki.net/Naming+conventions
Making objects or structures can be done with system generated functions. DEFSTRUCT
will create a MAKE-FOO
function with init values for the slots as keyword arguments.
Sometimes people prefer functions with normal positional arguments - it's shorter to write and the arguments have to be given when calling the function - you can't omit them.
Here in this case there is the need to name the DEFSTRUCT
generated function in such a way that it does not collide with the name, which the user should use. So %MAKE-FOO
says that is an internal helper function to the library and is expected to NOT be called by user-level code.