// From copies a T from a generic.T implementation. func From(other generic.T) T { r := Ident cols := other.Cols() rows := other.Rows() if !((cols == 2 && rows == 2) || (cols == 3 && rows == 3) || (cols == 4 && rows == 4)) { panic("Unsupported type") } for col := 0; col < cols; col++ { for row := 0; row < rows; row++ { r[col][row] = other.Get(col, row) } } return r }