    Constraints top of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func top(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.top, to: anchor, constant: offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func top(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.top, to: anchor, relationer: relationer, constant: offset)
   }
   
   /**
    Constraints left of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func left(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.left, to: anchor, constant: offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func left(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.left, to: anchor, relationer: relationer, constant: offset)
   }
   
   /**
    Constraints right of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func right(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.right, to: anchor, constant: -offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func right(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.right, to: anchor, relationer: relationer, constant: -offset)
   }
   
   /**
    Constraints leading of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func leading(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.leading, to: anchor, constant: offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func leading(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.leading, to: anchor, relationer: relationer, constant: offset)
   }
   
   /**
    Constraints trailing of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func trailing(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.trailing, to: anchor, constant: -offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func trailing(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.trailing, to: anchor, relationer: relationer, constant: -offset)
   }
   
   /**
    Constraints bottom of the view to the given anchor.
    - Parameter _ anchor: A LayoutAnchorable.
    - Parameter _ offset: A CGFloat offset.
-   - Returns: A Layout instance to allow chaining.
-   */
-  @discardableResult
-  func bottom(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0) -> Layout {
-    return constraint(.bottom, to: anchor, constant: -offset)
+   - Parameter _ relationer: A LayoutRelationer.
+   - Returns: A Layout instance to allow chaining.
+   */
+  @discardableResult
+  func bottom(_ anchor: LayoutAnchorable, _ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
+    return constraint(.bottom, to: anchor, relationer: relationer, constant: -offset)
   }
   
   /**

  /**
   Constraints top of the view to its parent's safeArea.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func topSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.top, constant: offset, useSafeArea: true)
  }
  
  /**
   Constraints left of the view to its parent's safeArea.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func leftSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.left, constant: offset, useSafeArea: true)
  }
  
  /**
   Constraints right of the view to its parent.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func rightSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.right, constant: -offset, useSafeArea: true)
  }
  
  /**
   Constraints leading of the view to its parent's safeArea.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func leadingSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.leading, constant: offset, useSafeArea: true)
  }
  
  /**
   Constraints trailing of the view to its parent.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func trailingSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.trailing, constant: -offset, useSafeArea: true)
  }
  
  /**
   Constraints bottom of the view to its parent's safeArea.
   - Parameter _ offset: A CGFloat offset.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func bottomSafe(_ offset: CGFloat = 0) -> Layout {
    return constraint(.bottom, constant: -offset, useSafeArea: true)
  }
  
  /**

  /**
   Constraints horizontal center of the view to its parent's.
   - Parameter _ offset: A CGFloat offset.
   - Parameter _ relationer: A LayoutRelationer.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func centerX(_ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
    return constraint(.centerX, relationer: relationer, constant: offset)
  }
  
  /**
   Constraints vertical center of the view to its parent's.
   - Parameter _ offset: A CGFloat offset.
   - Parameter _ relationer: A LayoutRelationer.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func centerY(_ offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
    return constraint(.centerY, relationer: relationer, constant: offset)
  }
  
  /**
   Constraints width of the view to its parent's.
   - Parameter offset: A CGFloat offset.
   - Parameter _ relationer: A LayoutRelationer.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func width(offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
    return constraint(.width, relationer: relationer, constant: offset)
  }
  
  /**
   Constraints height of the view to its parent's.
   - Parameter offset: A CGFloat offset.
   - Parameter _ relationer: A LayoutRelationer.
   - Returns: A Layout instance to allow chaining.
   */
  @discardableResult
  func height(offset: CGFloat = 0, _ relationer: LayoutRelationer = LayoutRelationerStruct.equal) -> Layout {
    return constraint(.height, relationer: relationer, constant: offset)
  }
  
  /**
