code: function build() {
      // Start creating the body of the new Type constructor, first calling super()
      var _ret = buildIdentity.call(this);
      var typeId = _ret.typeId;
      var typeName = _ret.typeName;
      var body =
          '\tvar opts = options ? options : {};\n' +
          '\tthis.constructor.util._extend(this, opts.props);\n' +
          '\tthis.constructor.super_.call(this, opts.buffer, opts.offset' +
          (typeId ? '' : ', true') +
          ');\n';
      // Init fields
      body += _ret.body;
      body += buildSerialize.call(this);
      body += buildDeserialize.call(this);
      // Add to body all the read/write methods
      for (var i = 0; i < this._methods.length; i++) {
          body += this._methods[i];
      }
      if (logger.isDebugEnabled()) {
          logger.debug('Body for %s type constructor:', typeName);
          logger.debug('\n' + body);
      }
      return createConstructor(body, typeId, typeName);
  }
docs: This function builds a new `TypeLanguage` class (a `TypeObject` sub-class) parsing the `TL-Schema constructor`