import UIKit

class View<V:ViewMain, M:Model<V>, C:Controller<V, M>>:UIView
{
    private(set) weak var controller:C!
    
    required init(controller:C)
    {
        super.init(frame:CGRect.zero)
        clipsToBounds = true
        backgroundColor = UIColor.clear
        translatesAutoresizingMaskIntoConstraints = false
        self.controller = controller
    }
    
    required init?(coder:NSCoder)
    {
        return nil
    }
}

import UIKit

class View<V, M, C:Controller<V, M>>:UIView
{
    private(set) weak var controller:C!
    
    required init(controller:C)
    {
        super.init(frame:CGRect.zero)
        clipsToBounds = true
        backgroundColor = UIColor.clear
        translatesAutoresizingMaskIntoConstraints = false
        self.controller = controller
    }
    
    required init?(coder:NSCoder)
    {
        return nil
    }
}

Update generics to swift 4
Update generics to swift 4
