         }
         
         throw ConversionError.ConvertibleFailed(from: T.self, type: self)
+    }
+    
+    public func serialize() throws -> AnyObject {
+        var ret = self as! AnyObject
+        
+        // Recursively ask elements to serialize themselves iff they're convertibles
+        if let _ = Element.self as? Convertible.Type {
+            let serialized = try self.map() { (element: Element) throws -> AnyObject in
+                let serializable = element as! Convertible
+                return try serializable.serialize()
+            }
+            
+             ret = serialized
+        }
+        
+        return ret
     }
 }
 

        
        throw ConversionError.ConvertibleFailed(from: T.self, type: self)
    }
}

extension Array: Convertible {

        }
        
        throw ConversionError.ConvertibleFailed(from: T.self, type: self)
    }
    
    // TODO: Implement me once the objects are all set up and dandy
    public func serialize() throws -> AnyObject {
        let ret = self as! AnyObject
        return ret
    }
}

