docs: function Rect( xmin , ymin , xmax , ymax ) {
  	var src = xmin ;
  
  	this.xmin = 0 ;
  	this.xmax = 0 ;
  	this.ymin = 0 ;
  	this.ymax = 0 ;
  	this.width = 0 ;
  	this.height = 0 ;
  	this.isNull = true ;
  
  	if ( src && ( typeof src === 'object' || typeof src === 'function' ) ) {
  		if ( src instanceof termkit.Terminal ) {
  			this.set( {
  				xmin: 1 ,
  				ymin: 1 ,
  				xmax: src.width ,
  				ymax: src.height
  			} ) ;
  		}
  		else if ( src instanceof termkit.ScreenBuffer ) {
  			this.set( {
  				xmin: 0 ,
  				ymin: 0 ,
  				xmax: src.width - 1 ,
  				ymax: src.height - 1
  			} ) ;
  		}
  		else if ( src instanceof termkit.TextBuffer ) {
  			this.set( {
  				xmin: 0 ,
  				ymin: 0 ,
  				xmax: src.width - 1 ,
  				ymax: src.height - 1
  			} ) ;
  		}
  		else if ( src instanceof Rect ) {
  			this.set( src ) ;
  		}
  		else if ( src.xmin || src.ymin || src.xmax || src.ymax ) {
  			this.set( {
  				xmin: src.xmin !== undefined ? src.xmin : 0 ,
  				ymin: src.ymin !== undefined ? src.ymin : 0 ,
  				xmax: src.xmax !== undefined ? src.xmax : 1 ,
  				ymax: src.ymax !== undefined ? src.ymax : 1
  			} ) ;
  		}
  		else if ( src.x || src.y || src.width || src.height ) {
  			this.set( {
  				xmin: src.x !== undefined ? src.x : 0 ,
  				ymin: src.y !== undefined ? src.y : 0 ,
  				xmax: src.width !== undefined ? src.x + src.width - 1 : 1 ,
  				ymax: src.height !== undefined ? src.y + src.height - 1 : 1
  			} ) ;
  		}
  	}
  	else {
  		this.set( {
  			xmin: xmin !== undefined ? xmin : 0 ,
  			ymin: ymin !== undefined ? ymin : 0 ,
  			xmax: xmax !== undefined ? xmax : 1 ,
  			ymax: ymax !== undefined ? ymax : 1
  		} ) ;
  	}
  }