code: function createObject (type, options) {
      // retrieve the test functions for each of the objects properties
      var tests = {},
          prop;
      for (prop in type) {
        if (type.hasOwnProperty(prop)) {
          tests[prop] = ducktype(type[prop]).test;
        }
      }
  
      // non-empty object
      var isObject = basic.object.test;
      return new DuckType({
        name: options && options.name || null,
        test: function test (object) {
          var prop;
          
          // test whether we have an object
          if (!isObject(object)) {
            return false;
          }
  
          // test each of the defined properties
          for (prop in tests) {
            if (tests.hasOwnProperty(prop)) {
              if (!tests[prop](object[prop])) {
                return false;
              }
            }
          }
          return true;
        }
      });
    }
docs: TODO: add types like phone number, postcode, ... 
  Create a ducktype handling an object
  @param {Object} type
  @param {{name: String}} [options]
  @returns {*}