 
 #endif
 
-
-infix operator ~ {
-    precedence 100
-    associativity none
-}
+precedencegroup LayoutPriorityPrecedence {
+    associativity: right
+    higherThan: AssignmentPrecedence
+}
+infix operator ~ : LayoutPriorityPrecedence
+
 
 public func ~ (lhs: NSLayoutConstraint, rhs: LayoutPriority) -> NSLayoutConstraint {
     lhs.priority = rhs


// MARK: - x >= y
public func >= (lhs: ConstraintTerm, rhs: ConstraintTerm) -> NSLayoutConstraint {
    return createLayoutConstraint(lhs, relatedBy: .GreaterThanOrEqual, rhs: rhs)
}

// MARK: - x >= c
public func >= (lhs: ConstraintTerm, rhs: CGFloat) -> NSLayoutConstraint {
    return createLayoutConstraint(lhs, relatedBy: .GreaterThanOrEqual, rhs: rhs)
}

public func >= (lhs: ConstraintTerm, rhs: Int) -> NSLayoutConstraint {


// MARK: - x == y
public func == (lhs: ConstraintTerm, rhs: ConstraintTerm) -> NSLayoutConstraint {
    return createLayoutConstraint(lhs: lhs, relatedBy: .equal, rhs: rhs)
}

// MARK: - x == c
public func == (lhs: ConstraintTerm, rhs: CGFloat) -> NSLayoutConstraint {
    return createLayoutConstraint(lhs: lhs, relatedBy: .equal, rhs: rhs)
}

public func == (lhs: ConstraintTerm, rhs: Int) -> NSLayoutConstraint {
