code: function Month(month, year) {
  	var me = this;
  	month = c.monthNum(month);
  	if (typeof month != 'number') {
  		throw new TE('month to Hebcal.Month is not a valid type');
  	}
  	if (typeof year != 'number') {
  		throw new TE('year to Hebcal.Month is not a number');
  	}
  	me.month = month;
  	me.year = year;
  
  	me.days = c.range(1, c.daysInMonth(month, year))[map](function(i){
  		var d = new HDate(i, month, year);
  		defProp(d, '__month', {
  			configurable: true,
  			writable: true,
  			value: me
  		});
  		return d;
  	});
  
  	me[length] = me.days[length];
  
  	me.holidays = c.filter(holidays.year(year), function(h){
  		return h[0].date[getMonth]() == month;
  	});
  
  	defProp(me, 'il', getset(function(){
  		return me[getDay](1).il;
  	}, function(il){
  		me.days.forEach(function(d){
  			d.il = il;
  		});
  	}));
  
  	defProp(me, 'lat', getset(function(){
  		return me[getDay](1).lat;
  	}, function(lat){
  		me.days.forEach(function(d){
  			d.lat = lat;
  		});
  	}));
  	defProp(me, 'long', getset(function(){
  		return me[getDay](1).long;
  	}, function(lon){
  		me.days.forEach(function(d){
  			d.long = lon;
  		});
  	}));
  
  	return me;
  }
docs: Months