code: function wrapValue (val, type) {
    var basetype = type.type ? type.type : type;
    if(basetype == '@' || basetype == '#') return createObject(val, basetype);
    else if (basetype[0] == '@') return createObject(val, '@');
    else if (basetype == '@?') return createObject(createBlock(val, '@'));
    else if (basetype == '^?') return createUnwrapperFunction(val, type);
    else if (basetype == ':') return objc.sel_getName(val);
    else if (basetype == 'B') return val ? true : false;
    else if (basetype == 'c' && val === 1) return true;
    else if (basetype == 'c' && val === 0) return false;
    else return val;
  }
docs: Wraps up a node-ffi pointer if needed (not needed for Numbers, etc.)