         
         do {
             let decoder = JSONDecoder()
-            let decoded = try decoder.decode(T.self, from: data)
+            let decoded = try decoder.decode(ValueType.self, from: data)
             return decoded
         } catch {
             #if DEGBUG

    /// - Parameters:
    ///   - some: The value to set.
    ///   - key: The associated `Key`.
    public func set<T: Codable>(_ some: T, for key: Key<T>) {
        if isPrimitive(type: T.self) {
            self.userDefaults.set(some, forKey: key._key)
            return
        }

    ///
    /// - Parameter key: The key to look for.
    /// - Returns: A boolean value indicating if a value exists for the specified key.
    public func has<ValueType>(key: Key<ValueType>) -> Bool {
        return userDefaults.value(forKey: key._key) != nil
    }
    
