 ///
 /// This is a shortcut to create for example: `object1.top | left | right ~<= object2.top | left | right.`
 public func ~<= <Value1: AnyObject, Value2: AnyObject, L: LayoutConstraintType where L.Value == Value2>(lhs: Value1, rhs: [L]) -> [NSLayoutConstraint] {
-    return rhs.map { return LhsLayoutConstraint(lhs, constraint: $0) ~<= $0 }
+    let left = rhs.map { LhsLayoutConstraint(lhs, constraint: $0) }
+    return left ~<= rhs
 }
 
 /// Initializes an **activates** `NSLayoutConstraint` array, where `lhs` values are taken from

///
/// This is a shortcut to create for example: `object1.top | left | right ~<= object2.top | left | right.`
public func ~<= <Value1: AnyObject, Value2: AnyObject>(lhs: [LhsLayoutConstraint<Value1>], rhs: Value2) -> [NSLayoutConstraint] {
    return lhs.map { return $0 ~<= RhsLayoutConstraint(rhs, constraint: $0) }
}

/// Initializes an **activates** `NSLayoutConstraint` array, where `lhs` values are taken from

///
/// This is a shortcut to create for example: `object1.top | left | right ~<= object2.top | left | right.`
public func ~<= <Value1: AnyObject, Value2: AnyObject, L: LayoutConstraintType where L.Value == Value2?>(lhs: Value1, rhs: [L]) -> [NSLayoutConstraint] {
    let left = rhs.map { LhsLayoutConstraint(lhs, constraint: $0) }
    return left ~<= rhs
}

/// Initializes an **activates** `NSLayoutConstraint` array,
/// applying `~<=` for each element in `lhs` to each element in `rhs.`
public func ~<= <Value1: AnyObject, Value2: AnyObject, L: LayoutConstraintType where L.Value == Value2>(lhs: [LhsLayoutConstraint<Value1>], rhs: [L]) -> [NSLayoutConstraint] {
    return lhs ~<= rhs.map { RhsLayoutConstraint(constraint: $0) }
}

/// Initializes an **activates** `NSLayoutConstraint` array,
/// applying `~<=` for each element in `lhs` to each element in `rhs.`
public func ~<= <Value1: AnyObject, Value2: AnyObject, L: LayoutConstraintType where L.Value == Value2?>(lhs: [LhsLayoutConstraint<Value1>], rhs: [L]) -> [NSLayoutConstraint] {
    precondition(lhs.count == rhs.count)
    
    var constraints = [NSLayoutConstraint]()
