             return nil
         }
     }
-    
+
+    func append(element: A) -> Affix? {
+        switch self {
+        case .One(let a):
+            return Two(a, element)
+        case .Two(let a, let b):
+            return Three(a, b, element)
+        case .Three(let a, let b, let c):
+            return Four(a, b, c, element)
+        case .Four:
+            return nil
+        }
+    }
+
     var toArray: [A] {
         switch self {
         case .One(let a):

            return "Four \(a) \(b) \(c) \(d)"
        }
    }
    
    func prepend(element: A) -> Affix? {
        switch self {
        case .One(let a):

        deeper: FingerTreePointer<ActualAny>,
        suffix: Affix<A>
    )

    var pointer: FingerTreePointer<A> {
        return FingerTreePointer(self)
    }

    func prepend(element: A) -> FingerTree<A> {
        switch self {
        case .Empty:
