         
         return lhs.age > rhs.age
     }
+    
+    // allow to "override the operator"
+    static func ==(lhs: Son, rhs: Son) -> Bool {
+        
+        return lhs.age == rhs.age
+    }
 }
 
 let larry2 = Son(name: "Larry", age: 2, truck: "Blue Dump")

    }
}

let runnerWalker = RunnerWalker(walker: Walker(direction: "North"))

runnerWalker.run(speed: 4.5)
/*:

    print("same father")
} else {
    print("not the same father")
}

if moe1 != curly {
    print("not the same father")
} else {
    print("same father")
}
/*:
 Above we created a `Father` class conforming to the `Equatable` protocol. The `Equatable` protocol requires us to implement `public func ==(lhs: Self, rhs: Self) -> Bool`, which we have with `func ==(lhs: Father, rhs: Father) -> Bool {...}`. Next we created three instances of `Father`, two of which are actually equals according to our implementation of `public func ==(lhs: Self, rhs: Self) -> Bool`. Also notice the use of the *identity Operator* `===`.
