 // `ArraySlice` is used for performance optimization.
 // See https://gist.github.com/norio-nomura/d9ec7212f2cfde3fb662.
 private func valueFor<C: Collection>(_ keyPathComponents: C, _ JSON: Any) -> Any? where C.Iterator.Element == String, C.SubSequence == C {
-    #if os(Linux)
     guard
         let first = keyPathComponents.first,
         let nativeDict = JSON as? [String: Any],

    {
        return nil
    }
    #else
    guard let first = keyPathComponents.first, case let nested?? = (JSON as AnyObject)[first], !(nested is NSNull) else {
        return nil
    }
    #endif

    if keyPathComponents.count == 1 {
        return nested

//  Copyright (c) 2015 Syo Ikeda. All rights reserved.
//

import class Foundation.NSNull

public struct Extractor {
    public let rawValue: Any
