     return expr
 }
 
-public func + <T: AnchorType>(lhs: T, rhs: CGFloat) -> LayoutExpression<T> {
+public func + <T: LayoutAnchorType>(lhs: T, rhs: CGFloat) -> LayoutExpression<T> {
     return LayoutExpression(anchor: lhs, constant: rhs)
 }
 
-public func + <T: AnchorType>(lhs: CGFloat, rhs: T) -> LayoutExpression<T> {
+public func + <T: LayoutAnchorType>(lhs: CGFloat, rhs: T) -> LayoutExpression<T> {
     return LayoutExpression(anchor: rhs, constant: lhs)
 }
 
-public func + <T: AnchorType>(lhs: LayoutExpression<T>, rhs: CGFloat) -> LayoutExpression<T> {
+public func + <T: LayoutAnchorType>(lhs: LayoutExpression<T>, rhs: CGFloat) -> LayoutExpression<T> {
     var expr = lhs
     expr.constant += rhs
     return expr
 }
 
-public func + <T: AnchorType>(lhs: CGFloat, rhs: LayoutExpression<T>) -> LayoutExpression<T> {
+public func + <T: LayoutAnchorType>(lhs: CGFloat, rhs: LayoutExpression<T>) -> LayoutExpression<T> {
     var expr = rhs
     expr.constant += lhs
     return expr
 }
 
-public func - <T: AnchorType>(lhs: T, rhs: CGFloat) -> LayoutExpression<T> {
+public func - <T: LayoutAnchorType>(lhs: T, rhs: CGFloat) -> LayoutExpression<T> {
     return LayoutExpression(anchor: lhs, constant: -rhs)
 }
 
-public func - <T: AnchorType>(lhs: CGFloat, rhs: T) -> LayoutExpression<T> {
+public func - <T: LayoutAnchorType>(lhs: CGFloat, rhs: T) -> LayoutExpression<T> {
     return LayoutExpression(anchor: rhs, constant: -lhs)
 }
 
-public func - <T: AnchorType>(lhs: LayoutExpression<T>, rhs: CGFloat) -> LayoutExpression<T> {
+public func - <T: LayoutAnchorType>(lhs: LayoutExpression<T>, rhs: CGFloat) -> LayoutExpression<T> {
     var expr = lhs
     expr.constant -= rhs
     return expr
 }
 
-public func - <T: AnchorType>(lhs: CGFloat, rhs: LayoutExpression<T>) -> LayoutExpression<T> {
+public func - <T: LayoutAnchorType>(lhs: CGFloat, rhs: LayoutExpression<T>) -> LayoutExpression<T> {
     var expr = rhs
     expr.constant -= lhs
     return expr
 }
 
-public struct LayoutExpression<T : AnchorType> {
+public struct LayoutExpression<T : LayoutAnchorType> {
 
     private var anchor: T?
     private var constant: CGFloat

        return constraintsForAnchors(anchor, constant: c, priority: priority, builder: constraintBuilder)
    }

    private subscript (edge: LayoutEdge) -> NSLayoutAnchor<AnyObject> {
        switch edge {
        case .top:      return top
        case .leading:  return leading


// MARK: - EdgeAnchors

public struct EdgeAnchors: LayoutAnchorType {

    private var top: NSLayoutYAxisAnchor
    private var leading: NSLayoutXAxisAnchor
