         self.value = value
     }
     public init<S : Sequence>(_ elements: S) {
-        self.value = elements.map { ($0 as? Json)?.value! ?? $0 }
+        self.value = elements.map { Json.unwrap($0) }
     }
     public init(_ elements: [String: Any]) {
         var dictionary = [String: Any](minimumCapacity: elements.count)
         for (key, value) in elements {
-            dictionary[key] = (value as? Json)?.value! ?? value
+            dictionary[key] = Json.unwrap(value)
         }
         self.value = dictionary
     }

    fileprivate init(value: Any?) {
        self.value = value
    }
}

extension Json {

    public init(dictionaryLiteral elements: (String, Any) ...) {
        var dictionary = [String: Any](minimumCapacity: elements.count)
        for (key, value) in elements {
            dictionary[key] = Json.unwrap(value)
        }
        self.init(value: dictionary)
    }
