     }
     
     @discardableResult
-    public mutating func solve(column i: Int, degree n: Int) -> Object? {
-        sequence.solve(seqIndex(i, n))
-        return self[i, n]
+    public mutating func solve(_ n: Int, _ i: Int) -> Object? {
+        sequence.solve(seqIndex(n, i))
+        return self[n, i]
     }
     
     @discardableResult
     public mutating func solve(column i: Int) -> [Object?] {
         return (bottomDegree ... topDegree).map { n in
-            self.solve(column: i, degree: n)
+            self.solve(n, i)
         }
     }
     

        return sequence.solve()
    }
    
    public func assertExactness(column i: Int, degree n: Int) {
        let k = seqIndex(i, n)
        sequence.assertExactness(at: k)
    }
    

        return (topDegree - bottomDegree + 1) * 3
    }
    
    internal func seqIndex(_ n: Int, _ i: Int) -> Int {
        return T.descending ? (topDegree - n) * 3 + i : (n - bottomDegree) * 3 + i
    }
    
    internal func gridIndex(_ k: Int) -> (Int, Int) {
        let (i, j) = (k >= 0) ? (k % 3, k / 3) : (k % 3 + 3, k / 3 - 1)
        return (T.descending ? topDegree - j : bottomDegree + j, i)
    }
    
    internal var degrees: [Int] {
