         //  0 --> c1{1,1} ---> c ---> c0 --> 0 (exact)
         //
         
-        let (c1, c, c0) = (L1.KhChainComplex(R.self, reduced: r, normalized: false, shifted: (1, 1)),
-                           L .KhChainComplex(R.self, reduced: r, normalized: false),
-                           L0.KhChainComplex(R.self, reduced: r, normalized: false))
+        let (c1, c, c0) = (L1.KhChainComplex(R.self, reduced: reduced, normalized: false, shifted: (1, 1)),
+                           L .KhChainComplex(R.self, reduced: reduced, normalized: false),
+                           L0.KhChainComplex(R.self, reduced: reduced, normalized: false))
         
         let i = M { (e: KhTensorElement) in
             C.Chain(e.stateModified(n, .I))

    
    // MEMO currently supports only unnormalized degrees.
    
    public func skeinExactSequence<R>(_ type: R.Type, atCrossing i: Int? = nil, reduced r: Bool = false) -> CohomologyExactSequence<R> {
        typealias C = CochainComplex<KhTensorElement, R>
        typealias M = CochainMap<KhTensorElement, KhTensorElement, R>
        

            }
        }
        
        print( L.KhHomology(c) , "\n")
        print(L0.KhHomology(c0), "\n")
        print(L1.KhHomology(c1), "\n")

        let S = CochainComplexSES(c1, i, c, j, c0, d)
        var H = CohomologyExactSequence(S)
        
        if solved {
            H.fill(columns: 0, 1, 2)
            H.solve()
        }
        
        return H
    }
