     return .bool(a == b)
 }
 
-public func !=<T>(column:Column, value:T?) -> Predicate {
+public func !=<T : RDBCEquatable>(column:Column, value:T?) -> Predicate {
     return .comparison(op: .neq, a: MetaValue<Any>.column(column), b: value.map {MetaValue.static($0)})
 }
 

    t1["id"] == t2["id"]
}.map { t1, t2 in
    [t1["firstname"], t2["comment"]]
}.filter { t1, _ in
    t1["firstname"] == "Daniel" || t1["lastname"] == "McCartney"
}.filter { t1, t2 in
    t1["lastname"] == "Leping" || t2["comment"] == "Cool"
}.execute(on: pool).flatMap{$0}.flatMap { results in

            return "(" + a + " != " + b + ")"
        case .eq:
            return "(" + a + " == " + b + ")"
        case .gt:
            return "(" + a + " > " + b + ")"
        case .lt:
            return "(" + a + " < " + b + ")"
        case .gte:
            return "(" + a + " >= " + b + ")"
        case .lte:
            return "(" + a + " <= " + b + ")"
        default:
            fatalError("Not implemented")
        }
