tipo não nominal X não suporta inicialização explícita

Estou tentando entender o que estou fazendo de errado com os genéricos rapidamente.

Eu criei esse playground de amostra

import UIKit

public protocol MainControllerToModelInterface : class {
    func addGoal()
    init()
}

public protocol MainViewControllerInterface : class {
    associatedtype MODELVIEW
    var modelView: MODELVIEW? {get set}

    init(modelView: MODELVIEW)
}

public class MainViewController<M> : UIViewController, MainViewControllerInterface where M : MainControllerToModelInterface {
    public weak var modelView: M?

    required public init(modelView: M) {
        self.modelView = modelView
        super.init(nibName: String(describing: MainViewController.self), bundle: Bundle.main)
    }

    required public init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

public class Other<C, M> : NSObject where C : MainViewControllerInterface, C : UIViewController, M : MainControllerToModelInterface, C.MODELVIEW == M {
    var c : C?

    override init() {
        let m = M()
        self.c = C(modelView: m)
        super.init()
    }
}

a linhaself.c = C(modelView: m) me dá esse erronon-nominal type 'C' does not support explicit initialization

Deesse outro estouro de pilha pergunta, vejo que esse erro nas versões mais antigas do Xcode significa

cannot invoke initializer for type '%type' with an argument list of type '...' expected an argument list of type '...'

Mas no playground acima, o que está faltando no compilador?

Estou no swift4 / xcode9.

Atualizar

Depois de seguir a sugestãoUse C.init(modelView: m) rather than C(modelView: m) o erro muda em:

No 'C.Type.init' candidates produce the expected contextual result type '_?'

Than @ vini-app sugeriu remover o UIViewController para fazê-lo funcionar. Ainda não entendo por que o compilador não está satisfeito quando o UIViewController está lá. Não é suficiente saber que C possui esse método init válido?

questionAnswers(3)

yourAnswerToTheQuestion