 extension Dictionary where Value: Equatable {
     /// EZSE: Difference of self and the input dictionaries.
     /// Two dictionaries are considered equal if they contain the same [key: value] pairs.
-    func difference(dictionaries: [Key: Value]...) -> [Key: Value] {
+    public func difference(dictionaries: [Key: Value]...) -> [Key: Value] {
         var result = self
         for dictionary in dictionaries {
             for (key, value) in dictionary {

    
    /// EZSE: Creates a Dictionary with keys and values generated by running
    /// each [key: value] of self through the mapFunction discarding nil return values.
    func mapFilter<K, V>(map: (Key, Value) -> (K, V)?) -> [K: V] {
        var mapped: [K: V] = [:]
        forEach {
            if let value = map($0, $1) {

    }
    
    /// EZSE: Union of self and the input dictionaries.
    public func union(dictionaries: Dictionary...) -> Dictionary {
        var result = self
        dictionaries.forEach { (dictionary) -> Void in
            dictionary.forEach { (key, value) -> Void in
