         return constraintsForAnchors(anchor, constant: c, priority: priority, builder: constraintBuilder)
     }
 
-    private subscript (edge: LayoutEdge) -> LayoutAnchorType {
+    fileprivate subscript (edge: LayoutEdge) -> LayoutAnchorType {
         switch edge {
         case .top:      return top
         case .leading:  return leading


// MARK: - Equality Constraints

infix operator == {
    associativity none
    precedence 130
}

@discardableResult public func == (lhs: NSLayoutDimension, rhs: CGFloat) -> NSLayoutConstraint {
    return activateConstraint(lhs.constraint(equalToConstant: rhs))
}


public struct LayoutExpression<T : LayoutAnchorType> {

    fileprivate var anchor: T?
    fileprivate var constant: CGFloat
    fileprivate var multiplier: CGFloat
    fileprivate var priority: UILayoutPriority

    fileprivate init(anchor: T? = nil, constant: CGFloat = 0.0, multiplier: CGFloat = 1.0, priority: UILayoutPriority = UILayoutPriorityRequired) {
        self.anchor = anchor
        self.constant = constant
        self.multiplier = multiplier
