         if ABGroupAddMember(storage, member.storage, &error) {
             return .None
         }
-        return AddressBook.Error(error: error)
+        return AddressBook.Error.AddGroupMember(NSError.from(error))
     }
 
     public func remove<P: AddressBook_PersonType where P.Storage == PersonStorage>(member: P) -> ErrorType? {

        if ABAddressBookAddRecord(addressBook, record.storage, &error) {
            return .None
        }
        return AddressBook.Error(error: error)
    }

    public func removeRecord<R: AddressBookRecordType where R.Storage == RecordStorage>(record: R) -> ErrorType? {

    return LabeledValue.write(value)
}

extension NSError {

    static func from(ref: Unmanaged<CFErrorRef>?) -> NSError? {
        return ref.map { unsafeBitCast($0.takeUnretainedValue(), NSError.self) }
    }
}



