     }
 }
 
-public extension MatrixGroup where CoeffField == ComplexNumber {
+public extension MatrixGroup where CoeffRing == ComplexNumber {
     public var adjoint: Self {
         return Self(matrix.adjoint)
     }

        return Self( matrix.transposed )
    }
    
    public var asGL: GeneralLinearGroup<Size, CoeffField> {
        return GeneralLinearGroup( matrix )
    }
    


public protocol MatrixGroup: Group {
    associatedtype Size: _Int
    associatedtype CoeffRing: Field
    init(_ g: SquareMatrix<Size, CoeffRing>)
    
    var size: Int { get }
    var matrix: SquareMatrix<Size, CoeffRing> { get }
    var asGL: GeneralLinearGroup<Size, CoeffRing> { get }
    
    var transposed: Self { get }
    var determinant: CoeffRing { get }
    var trace: CoeffRing { get }
    
    static func contains(_ g: GeneralLinearGroup<Size, CoeffRing>) -> Bool
    static func *(a: CoeffRing, b: Self) -> Self
    static func *(a: Self, b: CoeffRing) -> Self
}

public extension MatrixGroup {
    public init(grid: [CoeffRing]) {
        self.init(Matrix(grid: grid))
    }
    
    public init(generator g: (Int, Int) -> CoeffRing) {
        self.init(Matrix(generator: g))
    }
    
