 infix operator ~ {}
 
 public func ~(lhs: ViewExpression, rhs: Int) -> ViewExpression {
-    switch lhs {
-    case .Predicate(let p):
+    if case let .Predicate(p) = lhs {
         return .Predicate(LayoutPredicate(relation: p.relation, object: p.object, priority: rhs))
-    default:
-        fatalError("Error")
-    }
+    }
+    fatalError("Error")
 }
 
 public func ~(lhs: LayoutOrientation, rhs: VisualFormat) -> [AnyObject] {


    public var description: String {
        let d = relation.rawValue + object.description
        if let p = priority {
            return d + "@\(p)"
        }
        return d
    }
}

// MARK: <relation>

public enum LayoutRelation : String {
    case Equal = "=="
    case GreaterThanOrEqual = ">="
    case LessThanOrEqual = "<="
}

// MARK: <objectOfPredicate>


    public var description: String {
        switch self {
        case Constant(let n): return String(n)
        case View(let view):  return view.description
        }
    }
