so unfortunately mongoose doesn't handle this case well either:
```coffee
coffee> y = new Schema { type: { type: [Function: String], required: true } }
coffee> y.tree
{ type: { required: true, type: [ [Object] ] },
  _id: { auto: true, type: [Function: ObjectId] },
  id:
   { path: 'id',
     getters: [ [Function: idGetter] ],
     setters: [],
     options: {} } }
coffee> y.tree.type
{ required: true,
  type: [ { Function: [Function: String] } ] }
```