anchor.diff:        (error "No asset loader defined for loading ~S as a ~S~%" filename type))
       loader))
   
  -(defun defasset (asset-type (extensions :any) load &optional unload)
  -  "Defines an asset loader for ASSET-TYPE."
  +(defun defasset (asset-type extensions load &optional unload)
  +  "Defines an asset loader for ASSET-TYPE. Extension check will be done upon loading
  +against unless EXTENSIONS is :ANY."
     (push (make-asset-loader :load load :unload unload
                              :extensions extensions)
           (gethash asset-type *asset-loaders*)))
  
positive.code:     (push (make-asset :type type
                        :name (key-value :name props)
                        :filename (key-value :file props)
                        :properties props)
            *assets*)))
  
  
negative.code: (defvar *assets* nil)
  
  (defstruct asset
    "Holds assets meta-data."
    type
    name
    alias ;; if non-NIL, should contain the real asset name
    filename
    properties)
  
  (defun find-asset (name)
    (find-if (lambda (it)
               (equal (asset-name it) name))
             *assets*))
  