     ///   - to: Target object
     ///   - multiplier: The multiplier (default = 1)
     ///   - constant: The constant value (default = 0)
-    public func constrainEqual(attribute: NSLayoutAttribute, to: UIView, multiplier: CGFloat = 1, constant: CGFloat = 0) {
-        constrain(attribute, to: to, attribute: attribute, relation: .equal, multiplier: multiplier, constant: constant)
+    /// - Returns: The constraint that has been set
+    @discardableResult public func constrainEqual(attribute: NSLayoutAttribute, to: UIView, multiplier: CGFloat = 1, constant: CGFloat = 0) -> NSLayoutConstraint {
+        return constrain(attribute, to: to, attribute: attribute, relation: .equal, multiplier: multiplier, constant: constant)
     }
     
     /// Add an equal constraint from this view to a constant

    ///   - to: Target object
    ///   - multiplier: The multiplier (default = 1)
    ///   - constant: The constant value (default = 0)
    public func constrainLessThanOrEqual(attribute: NSLayoutAttribute, to: UIView, multiplier: CGFloat = 1, constant: CGFloat = 0) {
        constrain(attribute, to: to, attribute: attribute, relation: .lessThanOrEqual, multiplier: multiplier, constant: constant)
    }
    
    /// Add a greaterThanOrEqual constraint from this view to another view

    ///   - to: Target object
    ///   - multiplier: The multiplier (default = 1)
    ///   - constant: The constant value (default = 0)
    /// - Returns: The constraint that has been set
    @discardableResult public func constrainGreaterThanOrEqual(attribute: NSLayoutAttribute, to: UIView, multiplier: CGFloat = 1, constant: CGFloat = 0) -> NSLayoutConstraint {
        return constrain(attribute, to: to, attribute: attribute, relation: .greaterThanOrEqual, multiplier: multiplier, constant: constant)
    }
    
    /// Add a constraint from this view to another view
