             return layouts[v].flatMap { $0.origin.y + $0.size.height/2 }
         }
     }
+    
+    var view: UIView? {
+        switch self {
+        case .Parent:
+            return nil
+        case .Top(let v):
+            return v
+        case .Bottom(let v):
+            return v
+        case .VCenter(let v):
+            return v
+        }
+    }
 }
 
 public struct Viewport {

        let toFollowView = anchorToFollow.view
        let followerView = followerAnchor.view
        
        assert(toFollowView.superview == followerView.superview)
        
        let anchorToFollowFrame = frameForView(toFollowView, layouts: &layouts)
        let followerAnchorFrame = frameForView(followerView, layouts: &layouts)

            }
            
            if let v = view?.superview {
                
                if !(superview == nil || v == superview) {
                    print("[LayoutOps:WARNING] Put operation will produce undefined results for views with different superview")
                    print("Correct Superview: \(superview)")
                    print("Wrong Superview: \(v)")
                }
                superview = v;
            }
        }
