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

    return .bool(a == b)
}

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


let t = ErasedTable(name: "lala")
let c = ErasedColumn(name: "qwe", in: t)

let p:Predicate = 1 <= 2 || 2 > c//(c == "b" && "b" != c || c != c && 1 == c) != (c == "a")
print(p)

/*let driver = SQLiteDriver()
