Error de Swift 2 al usar la función de mutación en la extensión de protocolo "No se puede usar el miembro mutante en un valor inmutable: 'self' es inmutable

No estoy seguro de lo que está pasando aquí, parece que debería ser bastante sencillo. Tengo un protocolo que var mutable, una extensión con una función mutante. Las cosas se están cagando en eltestClass.testFunc, cuando intento usarmtkAnimQueAppend declarado en la extensión, me sale este error:"No se puede usar un miembro mutante en un valor inmutable: 'self' es inmutable.

protocol MTKAnimateValueDelegate {
    var mtkAnimQue:[MTKAnimateValue]? {get set}
}

extension MTKAnimateValueDelegate {
    ///Adds element to que
    mutating func mtkAnimQueAppend(element:MTKAnimateValue) {

        if mtkAnimQue != nil {
          mtkAnimQue?.append(element)
        } else {
          mtkAnimQue = [element]
        }
    }
}

class testClass: MTKAnimateValueDelegate {

  var mtkAnimQue:[MTKAnimateValue]?

  func testFunc() {
    var animValue = MTKAnimateValue(fromValue: 10, toValue: 20, inSeconds: 2)
    animValue.isAnimating = true
    mtkAnimQueAppend(animValue) //ERROR: "Cannot use mutating member on immutable value: 'self' is immutable
  }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta