function IRTupleType(tuple_entries) {
  if (!tuple_entries.length) {
    throw new Error("Must provide at least one type for the tuple");
  }

  for (var i = 0; i < tuple_entries.length; i++) {
    var tuple_entry = tuple_entries[i];
    if (!(tuple_entry instanceof IRType)) {
      throw new Error("All parameters given to the tuple must be IRTypes");
    }
    if (tuple_entry instanceof IRVoidType) {
      throw new Error("Cannot use void to represent a required tuple parameter");
    }
  }

  this._tuple_entries = tuple_entries;
}
/**
 * @constructor
 * @extends IRType
 * @param {Array.<IRType>} tuple_entries The type requirements for each entry the tuple must have.
 */
@constructor
@extends IRType
@param {Array.} tuple_entries The type requirements for each entry the tuple must have.
@constructor @extends IRType @param { Array . } tuple_entries The type requirements for each entry the tuple must have .
function IRTupleType(tuple_entries) {
  if (!tuple_entries.length) {
    throw new Error("Must provide at least one type for the tuple");
  }
  for (var i = 0; i < tuple_entries.length; i++) {
    var tuple_entry = tuple_entries[i];
    if (!(tuple_entry instanceof IRType)) {
      throw new Error("All parameters given to the tuple must be IRTypes");
    }
    if (tuple_entry instanceof IRVoidType) {
      throw new Error("Cannot use void to represent a required tuple parameter");
    }
  }
  this._tuple_entries = tuple_entries;
}
function IRTupleType ( tuple_entries ) { if ( ! tuple_entries . length ) { throw new Error ( "Must provide at least one type for the tuple" ) ; } for ( var i = 0 ; i < tuple_entries . length ; i ++ ) { var tuple_entry = tuple_entries [ i ] ; if ( ! ( tuple_entry instanceof IRType ) ) { throw new Error ( "All parameters given to the tuple must be IRTypes" ) ; } if ( tuple_entry instanceof IRVoidType ) { throw new Error ( "Cannot use void to represent a required tuple parameter" ) ; } } this . _tuple_entries = tuple_entries ; }
@constructor
 @extends IRType
 @param {Array.<IRType>} tuple_entries The type requirements for each entry the tuple must have.
@constructor @extends IRType @param { Array . <IRType > } tuple_entries The type requirements for each entry the tuple must have .