     
     func validate() -> Errors
     func validators() -> [String: Validator]
+}
+
+extension ActiveRecord {
+    var rawType: String { return "ActiveRecord" }
+}
+
+extension ActiveRecord {
+    // TODO: Don't have any other opportunities to compare hashes
+    var hashValue: AnyType? {
+        return self.id
+    }
 }
 
 extension ActiveRecord {

    var rawType: String { return "Float" }
}

public protocol ActiveRecord {
    var id: AnyType? {set get}
    init()
    init(attributes: [String:Any?])

}

public func ==(lhs: AnyType?, rhs: AnyType?) -> Bool {
    if let left = lhs {
        if let right = rhs {
            if left.rawType != right.rawType { return false }
            switch left.rawType {
            case "String": return (left as! String) == (right as! String)
            case "Int": return (left as! Int) == (right as! Int)
            case "Float": return (left as! Float) == (right as! Float)
            case "ActiveRecord": return (left as! ActiveRecord).hashValue == (right as! ActiveRecord).hashValue
            default: return false
            }
        }
        return false
    }
    return true
}

extension String: AnyType {
