     }
     
     public func valueForKey<A: ValueType>(key: KeyType) throws -> Set<A> {
-        let any = try anyForKey(key)
+        let any = try self.anyForKey(key)
         do {
             return try Set<A>.value(any)
         }

    }
    
    public func valueForKey<A: ValueType>(key: KeyType) throws -> [A] {
        let any = try anyForKey(key)
        do {
            return try Array<A>.value(any)
        }

public protocol MarshaledObject {
    subscript(key: KeyType) -> Any? { get }
    func anyForKey(key: KeyType) throws -> Any
}

public extension MarshaledObject {
