docs: function encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {
  	if(typeof ce === 'undefined' || typeof ce === 'number') {
  /*:: if(!(cs instanceof Range)) throw "unreachable"; */
  		return encode_range(cs.s, cs.e);
  	}
  /*:: if((cs instanceof Range)) throw "unreachable"; */
  	if(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));
  	if(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));
  /*:: if(typeof cs !== 'string') throw "unreachable"; */
  /*:: if(typeof ce !== 'string') throw "unreachable"; */
  	return cs == ce ? cs : cs + ":" + ce;
  }