docs: function R(first) {
          if (R.is(first, "function")) {
              return loaded ? first() : eve.on("raphael.DOMload", first);
          } else if (R.is(first, array)) {
              return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);
          } else {
              var args = Array.prototype.slice.call(arguments, 0);
              if (R.is(args[args.length - 1], "function")) {
                  var f = args.pop();
                  return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () {
                      f.call(R._engine.create[apply](R, args));
                  });
              } else {
                  return R._engine.create[apply](R, arguments);
              }
          }
      }