code: func NewCSVReader(writer io.Writer, csvReader *csv.Reader, hasHeader bool) (*Table, error) {
  	t := NewWriter(writer)
  	if hasHeader {
  		// Read the first row
  		headers, err := csvReader.Read()
  		if err != nil {
  			return &Table{}, err
  		}
  		t.SetHeader(headers)
  	}
  	for {
  		record, err := csvReader.Read()
  		if err == io.EOF {
  			break
  		} else if err != nil {
  			return &Table{}, err
  		}
  		t.Append(record)
  	}
  	return t, nil
  }
docs: //  Start a New Table Writer with csv.Reader
  // This enables customisation such as reader.Comma = ';'
  // See http://golang.org/src/pkg/encoding/csv/reader.go?s=3213:3671#L94