Merge pull request #5237 from xedin/SR-2484

SR-2484: Improve diagnostic for incorrectly called private init
diff --git a/.pep8 b/.pep8
index 13fadb1..8d2e668 100644
--- a/.pep8
+++ b/.pep8
@@ -1,2 +1,2 @@
 [flake8]
-filename = *.py,80+-check,backtrace-check,Benchmark_Driver,Benchmark_DTrace.in,Benchmark_GuardMalloc.in,Benchmark_RuntimeLeaksRunner.in,build-script,check-incremental,clang++,coverage-build-db,coverage-generate-data,coverage-query-db,coverage-touch-tests,gyb,ld,line-directive,mock-distcc,ns-html2rst,PathSanitizingFileCheck,recursive-lipo,rth,run-test,submit-benchmark-results,update-checkout,viewcfg,symbolicate-linux-fatal
+filename = *.py,80+-check,backtrace-check,Benchmark_Driver,Benchmark_DTrace.in,Benchmark_GuardMalloc.in,Benchmark_RuntimeLeaksRunner.in,build-script,check-incremental,clang++,coverage-build-db,coverage-generate-data,coverage-query-db,coverage-touch-tests,gyb,ld,line-directive,mock-distcc,ns-html2rst,PathSanitizingFileCheck,recursive-lipo,rth,run-test,scale-test,submit-benchmark-results,update-checkout,viewcfg,symbolicate-linux-fatal
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7702272..ecedaa1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -275,6 +275,10 @@
     "Build the standard libraries and overlays with resilience enabled; see docs/LibraryEvolution.rst"
     FALSE)
 
+option(SWIFT_STDLIB_ENABLE_SIL_OWNERSHIP
+  "Build the standard libraries and overlays with sil ownership enabled."
+  FALSE)
+
 option(SWIFT_STDLIB_SIL_SERIALIZE_ALL
     "Build the standard libraries and overlays serializing all method bodies"
     TRUE)
@@ -562,23 +566,6 @@
     set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
   endif()
 
-  # Compatible cross-compile SDKS for LINUX: ANDROID (arch always armv7)
-  is_sdk_requested(ANDROID swift_build_android)
-  if("${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
-    set(swift_can_crosscompile_stdlib_android FALSE)
-  else()
-    set(swift_can_crosscompile_stdlib_android TRUE)
-  endif()
-
-  if(swift_build_android AND ${swift_can_crosscompile_stdlib_android})
-    configure_sdk_unix(ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH}")
-    # If we're not building for the host, the cross-compiled target should be the 'primary variant'.
-    if("${swift_build_linux}" STREQUAL "FALSE")
-      set(SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID")
-      set(SWIFT_PRIMARY_VARIANT_ARCH_default "armv7")
-    endif()
-  endif()
-
 elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
   
   set(CMAKE_EXECUTABLE_FORMAT "ELF")
@@ -723,6 +710,28 @@
   set(SWIFT_PRIMARY_VARIANT_ARCH "${SWIFT_PRIMARY_VARIANT_ARCH_default}")
 endif()
 
+# Should we cross-compile the standard library for Android?
+is_sdk_requested(ANDROID swift_build_android)
+if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
+  configure_sdk_unix(ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH}")
+
+  if (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux"))
+    message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android")
+  elseif(("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT swift_build_osx) OR
+         ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT swift_build_linux))
+    set(SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID")
+    set(SWIFT_PRIMARY_VARIANT_ARCH_default "armv7")
+  endif()
+
+  if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
+    set(_swift_android_prebuilt_suffix "darwin-x86_64")
+  elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+    set(_swift_android_prebuilt_suffix "linux-x86_64")
+  endif()
+  set(SWIFT_ANDROID_PREBUILT_PATH
+      "${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}")
+endif()
+
 # Should we cross-compile the standard library for Windows?
 is_sdk_requested(WINDOWS swift_build_windows)
 if(swift_build_windows)
diff --git a/README.md b/README.md
index 726c750..d0ef443 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@
 |**Ubuntu 14.04** |[![Build Status](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-14_04/badge/icon)](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-14_04)|[![Build Status](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-14_04/badge/icon)](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-14_04)|
 |**Ubuntu 15.10** |[![Build Status](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-15_10/badge/icon)](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-15_10)|[![Build Status](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-15_10/badge/icon)](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-15_10)|
 |**Ubuntu 16.04** |[![Build Status](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-16_04/badge/icon)](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-16_04)|[![Build Status](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-16_04/badge/icon)](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-16_04)|
+|**Ubuntu 16.10** |[![Build Status](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-16_10/badge/icon)](https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-16_10)|[![Build Status](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-16_10/badge/icon)](https://ci.swift.org/job/oss-swift-package-linux-ubuntu-16_10)|
 
 **Welcome to Swift!**
 
diff --git a/apinotes/Foundation.apinotes b/apinotes/Foundation.apinotes
index e9f2544..34b9729 100644
--- a/apinotes/Foundation.apinotes
+++ b/apinotes/Foundation.apinotes
@@ -157,7 +157,7 @@
   Methods:
   - Selector: 'notificationCenterForType:'
     MethodKind: Class
-    FactoryAsInit: C
+    SwiftName: 'forType(_:)'
 - Name: NSHTTPCookie
   SwiftName: HTTPCookie
 - Name: NSHTTPCookieStorage
@@ -209,10 +209,6 @@
 - Name: NSProcessInfo
   SwiftName: ProcessInfo
   Methods:
-  - Selector: processInfo
-    MethodKind: Class
-    NullabilityOfRet: N
-    FactoryAsInit: C
   - Selector: 'isOperatingSystemAtLeastVersion:'
     SwiftName: isOperatingSystemAtLeast(_:)
     MethodKind: Instance
diff --git a/apinotes/GameKit.apinotes b/apinotes/GameKit.apinotes
index 86bb8ba..04df70b 100644
--- a/apinotes/GameKit.apinotes
+++ b/apinotes/GameKit.apinotes
@@ -5,7 +5,7 @@
     Methods:
       - Selector:        'localPlayer'
         MethodKind:      Class
-        FactoryAsInit:   C
+        SwiftName:       'localPlayer()'
 Tags:
 - Name: GKErrorCode
   NSErrorDomain: GKErrorDomain
diff --git a/apinotes/NotificationCenter.apinotes b/apinotes/NotificationCenter.apinotes
index 756e6a0..beaeeea 100644
--- a/apinotes/NotificationCenter.apinotes
+++ b/apinotes/NotificationCenter.apinotes
@@ -4,4 +4,4 @@
     Methods:
       - Selector:        'widgetController'
         MethodKind:      Class
-        FactoryAsInit:   C
+        SwiftName:       'widgetController()'
diff --git a/apinotes/UIKit.apinotes b/apinotes/UIKit.apinotes
index 6ff86f6..7908b37 100644
--- a/apinotes/UIKit.apinotes
+++ b/apinotes/UIKit.apinotes
@@ -10,7 +10,7 @@
   Methods:
   - Selector: printInfo
     MethodKind: Class
-    FactoryAsInit: C
+    SwiftName: 'printInfo()'
 - Name: UIPrintInteractionController
   Properties:
   - Name: 'sharedPrintController'
diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake
index 7e840b7..aed826d 100644
--- a/cmake/modules/AddSwift.cmake
+++ b/cmake/modules/AddSwift.cmake
@@ -122,7 +122,7 @@
     list(APPEND result
       "--sysroot=${SWIFT_ANDROID_SDK_PATH}"
       # Use the linker included in the Android NDK.
-      "-B" "${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/linux-x86_64/arm-linux-androideabi/bin/")
+      "-B" "${SWIFT_ANDROID_PREBUILT_PATH}/arm-linux-androideabi/bin/")
   endif()
 
   if("${CFLAGS_SDK}" STREQUAL "WINDOWS")
@@ -315,7 +315,7 @@
   elseif("${LFLAGS_SDK}" STREQUAL "ANDROID")
     list(APPEND result
         "-ldl"
-        "-L${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION}.x"
+        "-L${SWIFT_ANDROID_PREBUILT_PATH}/lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION}.x"
         "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so")
   else()
     list(APPEND result "-lobjc")
diff --git a/cmake/modules/SwiftSource.cmake b/cmake/modules/SwiftSource.cmake
index b18ea54..96b2b60 100644
--- a/cmake/modules/SwiftSource.cmake
+++ b/cmake/modules/SwiftSource.cmake
@@ -225,6 +225,10 @@
     list(APPEND swift_flags "-Xfrontend" "-enable-resilience")
   endif()
 
+  if(SWIFT_STDLIB_ENABLE_SIL_OWNERSHIP AND SWIFTFILE_IS_STDLIB)
+    list(APPEND swift_flags "-Xfrontend" "-enable-sil-ownership")
+  endif()
+
   if(SWIFT_EMIT_SORTED_SIL_OUTPUT)
     list(APPEND swift_flags "-Xfrontend" "-emit-sorted-sil")
   endif()
diff --git a/docs/ARCOptimization.rst b/docs/ARCOptimization.rst
index 6d71dac..ed4ecf6 100644
--- a/docs/ARCOptimization.rst
+++ b/docs/ARCOptimization.rst
@@ -861,3 +861,69 @@
 Thus is_unique is guaranteed to return false introducing a copy that was not
 needed. We wish to avoid that if it is at all possible.
 
+Deinit Model
+============
+
+The semantics around deinits in swift are a common area of confusion. This
+section is not attempting to state where the deinit model may be in the future,
+but is just documenting where things are today in the hopes of improving
+clarity.
+
+The following characteristics of deinits are important to the optimizer:
+
+1. deinits run on the same thread and are not asynchronous like Java
+   finalizers.
+2. deinits are not sequenced with regards to each other or code in normal
+   control flow.
+3. If the optimizer takes advantage of the lack of sequencing it must do so in a
+   way that preserves memory safety.
+
+Consider the following pseudo-Swift example::
+
+  class D {}
+  class D1 : D {}
+  class D2 : D {}
+
+  var GLOBAL_D : D = D1()
+
+  class C { deinit { GLOBAL_D = D2 } }
+
+  func main() {
+    let c = C()
+    let d = GLOBAL_D
+    useC(c)
+    useD(d)
+  }
+
+  main()
+
+Assume that useC does not directly in any way touch an instance of class D
+except via the destructor.
+
+Since memory operations in normal control flow are not sequenced with respect to
+deinits, there are two correct programs here that the optimizer can produce: the
+original and the one where useC(c) and GLOBAL_D are swapped, i.e.::
+
+  func main() {
+    let c = C()
+    useC(c)
+    let d = GLOBAL_D
+    useD(d)
+  }
+
+In the first program, d would be an instance of class D1. In the second, it
+would be an instance of class D2. Notice how in both programs though, no
+deinitialized object is accessed. On the other hand, imagine if we had split
+main like so::
+
+  func main() {
+    let c = C()
+    let d = unsafe_unowned_load(GLOBAL_D)
+    useC(c)
+    let owned_d = retain(d)
+    useD(owned_d)
+  }
+
+In this case, we would be passing off to useD a deallocated instance of class D1
+which would be undefined behavior. An optimization that produced such code would
+be a miscompile.
diff --git a/docs/Testing.rst b/docs/Testing.rst
index d18ac6a..c84c30e 100644
--- a/docs/Testing.rst
+++ b/docs/Testing.rst
@@ -16,6 +16,8 @@
 
 * LLVM lit-based testsuites for the compiler, runtime and the standard library.
 
+* Unit tests for sub-tools.
+
 * A selection of open source projects written in Swift.
 
 The LLVM lit-based testsuite
@@ -36,12 +38,14 @@
 Testsuite subsets
 -----------------
 
-The testsuite is split into three subsets:
+The testsuite is split into four subsets:
 
 * Primary testsuite, located under ``swift/test``.
 
 * Validation testsuite, located under ``swift/validation-test``.
 
+* Unit tests, located under ``swift/unittests``.
+
 * Long tests, which are marked with ``REQUIRES: long_test``.
 
   Unlike other tests, every long test should also include either
@@ -91,6 +95,11 @@
 
   Runs all tests (primary, validation, and long).
 
+* ``SwiftUnitTests``
+
+  Builds all unit tests.  Executables are located under
+  ``${SWIFT_BUILD_ROOT}/unittests`` and must be run individually.
+
 For every target above, there are variants for different optimizations:
 
 * the target itself (e.g., ``check-swift``) -- runs all tests from the primary
diff --git a/include/swift/AST/ASTContext.h b/include/swift/AST/ASTContext.h
index 1f01d87..36cdd6f 100644
--- a/include/swift/AST/ASTContext.h
+++ b/include/swift/AST/ASTContext.h
@@ -784,6 +784,9 @@
                             clang::ObjCInterfaceDecl *classDecl,
                             bool forInstance);
 
+  /// Whether our effective Swift version is in the Swift 3 family
+  bool isSwiftVersion3() const { return LangOpts.isSwiftVersion3(); }
+
 private:
   friend class Decl;
   Optional<RawComment> getRawComment(const Decl *D);
diff --git a/include/swift/AST/ArchetypeBuilder.h b/include/swift/AST/ArchetypeBuilder.h
index e87993f2..819e616 100644
--- a/include/swift/AST/ArchetypeBuilder.h
+++ b/include/swift/AST/ArchetypeBuilder.h
@@ -254,21 +254,11 @@
                            GenericEnvironment *genericEnv,
                            bool treatRequirementsAsExplicit = false);
 
-  /// \brief Get a generic signature based on the provided complete list
-  /// of generic parameter types.
-  ///
-  /// \returns a generic signature built from the provided list of
-  ///          generic parameter types.
-  GenericSignature *
-  getGenericSignature(ArrayRef<GenericTypeParamType *> genericParamsTypes);
+  /// \brief Build the generic signature.
+  GenericSignature *getGenericSignature();
 
-  /// \brief Get a generic context based on the complete list of generic
-  /// parameter types.
-  ///
-  /// \returns a generic context built from the provided list of
-  ///          generic parameter types.
-  GenericEnvironment *getGenericEnvironment(
-      ArrayRef<GenericTypeParamType *> genericParamsTypes);
+  /// \brief Build the generic environment.
+  GenericEnvironment *getGenericEnvironment();
 
   /// Infer requirements from the given type, recursively.
   ///
diff --git a/include/swift/AST/Attr.h b/include/swift/AST/Attr.h
index a4739f5..96bfc22 100644
--- a/include/swift/AST/Attr.h
+++ b/include/swift/AST/Attr.h
@@ -21,6 +21,7 @@
 #include "swift/Basic/UUID.h"
 #include "swift/Basic/STLExtras.h"
 #include "swift/Basic/Range.h"
+#include "swift/Basic/Version.h"
 #include "swift/AST/Identifier.h"
 #include "swift/AST/AttrKind.h"
 #include "swift/AST/ConcreteDeclRef.h"
@@ -542,33 +543,33 @@
 };
 
 /// Determine the result of comparing an availability attribute to a specific
-/// minimum platform version.
-enum class MinVersionComparison {
+/// platform or language version.
+enum class AvailableVersionComparison {
   /// The entity is guaranteed to be available.
   Available,
 
   /// The entity is never available.
   Unavailable,
 
-  /// The entity might be unavailable, because it was introduced after
-  /// the minimum version.
+  /// The entity might be unavailable at runtime, because it was introduced
+  /// after the requested minimum platform version.
   PotentiallyUnavailable,
 
   /// The entity has been obsoleted.
   Obsoleted,
 };
 
-/// Describes the unconditional availability of a declaration.
-enum class UnconditionalAvailabilityKind {
-  /// The declaration is not unconditionally unavailable.
+/// Describes the platform-agnostic availability of a declaration.
+enum class PlatformAgnosticAvailabilityKind {
+  /// The associated availability attribute is not platform-agnostic.
   None,
   /// The declaration is deprecated, but can still be used.
   Deprecated,
   /// The declaration is unavailable in Swift, specifically
   UnavailableInSwift,
-  /// The declaration is unavailable in the current version of Swift,
-  /// but was available in previous Swift versions.
-  UnavailableInCurrentSwift,
+  /// The declaration is available in some but not all versions
+  /// of Swift, as specified by the VersionTuple members.
+  SwiftVersionSpecific,
   /// The declaration is unavailable for other reasons.
   Unavailable,
 };
@@ -585,14 +586,14 @@
                    const clang::VersionTuple &Introduced,
                    const clang::VersionTuple &Deprecated,
                    const clang::VersionTuple &Obsoleted,
-                   UnconditionalAvailabilityKind Unconditional,
+                   PlatformAgnosticAvailabilityKind PlatformAgnostic,
                    bool Implicit)
     : DeclAttribute(DAK_Available, AtLoc, Range, Implicit),
       Message(Message), Rename(Rename),
       INIT_VER_TUPLE(Introduced),
       INIT_VER_TUPLE(Deprecated),
       INIT_VER_TUPLE(Obsoleted),
-      Unconditional(Unconditional),
+      PlatformAgnostic(PlatformAgnostic),
       Platform(Platform)
   {}
 
@@ -618,21 +619,24 @@
   /// Indicates when the symbol was obsoleted.
   const Optional<clang::VersionTuple> Obsoleted;
 
-  /// Indicates if the declaration has unconditional availability.
-  const UnconditionalAvailabilityKind Unconditional;
+  /// Indicates if the declaration has platform-agnostic availability.
+  const PlatformAgnosticAvailabilityKind PlatformAgnostic;
 
   /// The platform of the availability.
   const PlatformKind Platform;
 
+  /// Whether this is a language-version-specific entity.
+  bool isLanguageVersionSpecific() const;
+
   /// Whether this is an unconditionally unavailable entity.
   bool isUnconditionallyUnavailable() const;
 
   /// Whether this is an unconditionally deprecated entity.
   bool isUnconditionallyDeprecated() const;
 
-  /// Returns the unconditional unavailability.
-  UnconditionalAvailabilityKind getUnconditionalAvailability() const {
-    return Unconditional;
+  /// Returns the platform-agnostic availability.
+  PlatformAgnosticAvailabilityKind getPlatformAgnosticAvailability() const {
+    return PlatformAgnostic;
   }
 
   /// Determine if a given declaration should be considered unavailable given
@@ -660,17 +664,19 @@
   /// Returns true if this attribute is active given the current platform.
   bool isActivePlatform(const ASTContext &ctx) const;
 
-  /// Compare this attribute's version information against the minimum platform
-  /// version (assuming the this attribute pertains to the active platform).
-  MinVersionComparison getMinVersionAvailability(
-                         clang::VersionTuple minVersion) const;
+  /// Compare this attribute's version information against the platform or
+  /// language version (assuming the this attribute pertains to the active
+  /// platform).
+  AvailableVersionComparison getVersionAvailability(const ASTContext &ctx) const;
 
   /// Create an AvailableAttr that indicates specific availability
   /// for all platforms.
   static AvailableAttr *
-  createUnconditional(ASTContext &C, StringRef Message, StringRef Rename = "",
-                      UnconditionalAvailabilityKind Reason
-                        = UnconditionalAvailabilityKind::Unavailable);
+  createPlatformAgnostic(ASTContext &C, StringRef Message, StringRef Rename = "",
+                      PlatformAgnosticAvailabilityKind Reason
+                         = PlatformAgnosticAvailabilityKind::Unavailable,
+                         clang::VersionTuple Obsoleted
+                         = clang::VersionTuple());
 
   static bool classof(const DeclAttribute *DA) {
     return DA->getKind() == DAK_Available;
@@ -1081,9 +1087,11 @@
     return getUnavailable(ctx) != nullptr;
   }
 
-  /// Determine whether there is an "unavailable in current Swift"
-  /// attribute.
-  bool isUnavailableInCurrentSwift() const;
+  /// Determine whether there is a swiftVersionSpecific attribute that's
+  /// unavailable relative to the provided language version (defaulting to
+  /// current language version).
+  bool isUnavailableInSwiftVersion(const version::Version &effectiveVersion =
+           version::Version::getCurrentLanguageVersion()) const;
 
   /// Returns the first @available attribute that indicates
   /// a declaration is unavailable, or null otherwise.
diff --git a/include/swift/AST/AvailabilitySpec.h b/include/swift/AST/AvailabilitySpec.h
index c9bbc05..c893de5 100644
--- a/include/swift/AST/AvailabilitySpec.h
+++ b/include/swift/AST/AvailabilitySpec.h
@@ -28,12 +28,15 @@
 enum class VersionComparison { GreaterThanEqual };
 
 enum class AvailabilitySpecKind {
-    /// A version constraint of the form PlatformName X.Y.Z
-    VersionConstraint,
+    /// A platform-version constraint of the form "PlatformName X.Y.Z"
+    PlatformVersionConstraint,
 
     /// A wildcard constraint, spelled '*', that is be equivalent
     /// to CurrentPlatformName >= MinimumDeploymentTargetVersion
-    OtherPlatform
+    OtherPlatform,
+
+    /// A language-version constraint of the form "swift X.Y.Z"
+    LanguageVersionConstraint,
 };
 
 /// The root class for specifications of API availability in availability
@@ -57,7 +60,7 @@
 
 /// \brief An availability specification that guards execution based on the
 /// run-time platform and version, e.g., OS X >= 10.10.
-class VersionConstraintAvailabilitySpec : public AvailabilitySpec {
+class PlatformVersionConstraintAvailabilitySpec : public AvailabilitySpec {
   PlatformKind Platform;
   SourceLoc PlatformLoc;
 
@@ -65,14 +68,14 @@
   SourceRange VersionSrcRange;
 
 public:
-  VersionConstraintAvailabilitySpec(PlatformKind Platform,
-                                    SourceLoc PlatformLoc,
-                                    clang::VersionTuple Version,
-                                    SourceRange VersionSrcRange)
-      : AvailabilitySpec(AvailabilitySpecKind::VersionConstraint),
-        Platform(Platform),
-        PlatformLoc(PlatformLoc), Version(Version),
-        VersionSrcRange(VersionSrcRange) {}
+  PlatformVersionConstraintAvailabilitySpec(PlatformKind Platform,
+                                            SourceLoc PlatformLoc,
+                                            clang::VersionTuple Version,
+                                            SourceRange VersionSrcRange)
+    : AvailabilitySpec(AvailabilitySpecKind::PlatformVersionConstraint),
+      Platform(Platform),
+      PlatformLoc(PlatformLoc), Version(Version),
+      VersionSrcRange(VersionSrcRange) {}
 
   /// The required platform.
   PlatformKind getPlatform() const { return Platform; }
@@ -87,12 +90,49 @@
   void print(raw_ostream &OS, unsigned Indent) const;
   
   static bool classof(const AvailabilitySpec *Spec) {
-    return Spec->getKind() == AvailabilitySpecKind::VersionConstraint;
+    return Spec->getKind() == AvailabilitySpecKind::PlatformVersionConstraint;
   }
 
   void *
   operator new(size_t Bytes, ASTContext &C,
-               unsigned Alignment = alignof(VersionConstraintAvailabilitySpec)){
+               unsigned Alignment = alignof(PlatformVersionConstraintAvailabilitySpec)){
+    return AvailabilitySpec::operator new(Bytes, C, Alignment);
+  }
+};
+
+/// \brief An availability specification that guards execution based on the
+/// compile-time language version, e.g., swift >= 3.0.1.
+class LanguageVersionConstraintAvailabilitySpec : public AvailabilitySpec {
+  SourceLoc SwiftLoc;
+
+  clang::VersionTuple Version;
+  SourceRange VersionSrcRange;
+
+public:
+  LanguageVersionConstraintAvailabilitySpec(SourceLoc SwiftLoc,
+                                            clang::VersionTuple Version,
+                                            SourceRange VersionSrcRange)
+    : AvailabilitySpec(AvailabilitySpecKind::LanguageVersionConstraint),
+      SwiftLoc(SwiftLoc), Version(Version),
+      VersionSrcRange(VersionSrcRange) {}
+
+  SourceLoc getSwiftLoc() const { return SwiftLoc; }
+
+  // The platform version to compare against.
+  clang::VersionTuple getVersion() const { return Version; }
+  SourceRange getVersionSrcRange() const { return VersionSrcRange; }
+
+  SourceRange getSourceRange() const;
+
+  void print(raw_ostream &OS, unsigned Indent) const;
+
+  static bool classof(const AvailabilitySpec *Spec) {
+    return Spec->getKind() == AvailabilitySpecKind::LanguageVersionConstraint;
+  }
+
+  void *
+  operator new(size_t Bytes, ASTContext &C,
+               unsigned Alignment = alignof(LanguageVersionConstraintAvailabilitySpec)){
     return AvailabilitySpec::operator new(Bytes, C, Alignment);
   }
 };
diff --git a/include/swift/AST/DiagnosticsParse.def b/include/swift/AST/DiagnosticsParse.def
index 494771a..36b3982 100644
--- a/include/swift/AST/DiagnosticsParse.def
+++ b/include/swift/AST/DiagnosticsParse.def
@@ -1380,6 +1380,12 @@
 ERROR(availability_query_wildcard_required, none,
       "must handle potential future platforms with '*'", ())
 
+ERROR(availability_swift_must_occur_alone, none,
+      "'swift' version-availability must be specified alone", ())
+
+ERROR(pound_available_swift_not_allowed, none,
+      "Swift language version checks not allowed in #available(...)", ())
+
 ERROR(availability_query_repeated_platform, none,
       "version for '%0' already specified", (StringRef))
 
diff --git a/include/swift/AST/DiagnosticsSema.def b/include/swift/AST/DiagnosticsSema.def
index 5233aca..5587370 100644
--- a/include/swift/AST/DiagnosticsSema.def
+++ b/include/swift/AST/DiagnosticsSema.def
@@ -547,6 +547,9 @@
 ERROR(invalid_member_type_suggest,none,
       "%0 does not have a member type named %1; did you mean %2?",
       (Type, Identifier, Identifier))
+ERROR(invalid_member_reference,none,
+      "%0 %1 is not a member type of %2",
+      (DescriptiveDeclKind, Identifier, Type))
 ERROR(invalid_member_type_alias,none,
       "typealias %0 is too complex to be used as a generic constraint; "
       "use an associatedtype instead", (Identifier))
@@ -2413,11 +2416,8 @@
         "string interpolation produces a debug description for an optional "
         "value; did you mean to make this explicit?",
         ())
-NOTE(silence_optional_in_interpolation_segment_cast,none,
-     "use 'as' to explicitly cast to %0 to silence this warning",
-     (Type))
 NOTE(silence_optional_in_interpolation_segment_call,none,
-     "use '.debugDescription' to silence this warning", ())
+     "use 'String(describing:)' to silence this warning", ())
 
 ERROR(invalid_noescape_use,none,
       "non-escaping %select{value|parameter}1 %0 may only be called",
@@ -3111,6 +3111,10 @@
 NOTE(availability_marked_unavailable, none,
   "%0 has been explicitly marked unavailable here", (DeclName))
 
+NOTE(availability_introduced_in_swift, none,
+     "%0 was introduced in Swift %1",
+    (DeclName, clang::VersionTuple))
+
 NOTE(availability_obsoleted, none,
      "%0 was obsoleted in %1 %2",
     (DeclName, StringRef, clang::VersionTuple))
diff --git a/include/swift/AST/Expr.h b/include/swift/AST/Expr.h
index 2828a9e..89c8a4e 100644
--- a/include/swift/AST/Expr.h
+++ b/include/swift/AST/Expr.h
@@ -2055,8 +2055,7 @@
   SourceLoc getLParenLoc() const { return LParenLoc; }
   SourceLoc getRParenLoc() const { return RParenLoc; }
 
-  SourceLoc getStartLoc() const;
-  SourceLoc getEndLoc() const;
+  SourceRange getSourceRange() const;
 
   /// \brief Whether this expression has a trailing closure as its argument.
   bool hasTrailingClosure() const { return TupleExprBits.HasTrailingClosure; }
@@ -4249,11 +4248,13 @@
   SourceLoc getLoc() const { return EqualLoc; }
   SourceLoc getStartLoc() const {
     if (!isFolded()) return EqualLoc;
-    return (Dest->isImplicit() ? Src->getStartLoc() : Dest->getStartLoc());
+    return ( Dest->getStartLoc().isValid()
+           ? Dest->getStartLoc()
+           : Src->getStartLoc());
   }
   SourceLoc getEndLoc() const {
     if (!isFolded()) return EqualLoc;
-    return (Src->isImplicit() ? Dest->getEndLoc() : Src->getEndLoc());
+    return (Src->getEndLoc().isValid() ? Src->getEndLoc() : Dest->getEndLoc());
   }
   
   /// True if the node has been processed by binary expression folding.
diff --git a/include/swift/AST/GenericEnvironment.h b/include/swift/AST/GenericEnvironment.h
index f983191..9c5ec2c 100644
--- a/include/swift/AST/GenericEnvironment.h
+++ b/include/swift/AST/GenericEnvironment.h
@@ -28,10 +28,15 @@
 /// Describes the mapping between archetypes and interface types for the
 /// generic parameters of a DeclContext.
 class GenericEnvironment final {
+  SmallVector<GenericTypeParamType *, 4> GenericParams;
   TypeSubstitutionMap ArchetypeToInterfaceMap;
   TypeSubstitutionMap InterfaceToArchetypeMap;
 
 public:
+  ArrayRef<GenericTypeParamType *> getGenericParams() const {
+    return GenericParams;
+  }
+
   const TypeSubstitutionMap &getArchetypeToInterfaceMap() const {
     return ArchetypeToInterfaceMap;
   }
@@ -40,10 +45,13 @@
     return InterfaceToArchetypeMap;
   }
 
-  explicit GenericEnvironment(TypeSubstitutionMap interfaceToArchetypeMap);
+  GenericEnvironment(ArrayRef<GenericTypeParamType *> genericParamTypes,
+                     TypeSubstitutionMap interfaceToArchetypeMap);
 
-  static GenericEnvironment *get(ASTContext &ctx,
-                                 TypeSubstitutionMap interfaceToArchetypeMap);
+  static
+  GenericEnvironment * get(ASTContext &ctx,
+                           ArrayRef<GenericTypeParamType *> genericParamTypes,
+                           TypeSubstitutionMap interfaceToArchetypeMap);
 
   /// Make vanilla new/delete illegal.
   void *operator new(size_t Bytes) = delete;
@@ -62,6 +70,9 @@
   /// Map a generic parameter type to a contextual type.
   Type mapTypeIntoContext(GenericTypeParamType *type) const;
 
+  /// Get the sugared form of a generic parameter type.
+  GenericTypeParamType *getSugaredType(GenericTypeParamType *type) const;
+
   /// Derive a contextual type substitution map from a substitution array.
   /// This is just like GenericSignature::getSubstitutionMap(), except
   /// with contextual types instead of interface types.
diff --git a/include/swift/AST/SILOptions.h b/include/swift/AST/SILOptions.h
index bf7e6de..245e3e0 100644
--- a/include/swift/AST/SILOptions.h
+++ b/include/swift/AST/SILOptions.h
@@ -113,6 +113,9 @@
 
   /// The name of the SIL outputfile if compiled with SIL debugging (-gsil).
   std::string SILOutputFileNameForDebugging;
+
+  /// If set to true, compile with the SIL Ownership Model enabled.
+  bool EnableSILOwnership = false;
 };
 
 } // end namespace swift
diff --git a/include/swift/AST/Types.h b/include/swift/AST/Types.h
index d5ea5a7..36f1f17 100644
--- a/include/swift/AST/Types.h
+++ b/include/swift/AST/Types.h
@@ -434,6 +434,10 @@
     return getRecursiveProperties().hasTypeVariable();
   }
 
+  /// \brief Determine where this type is a type variable or a dependent
+  /// member root in a type variable.
+  bool isTypeVariableOrMember();
+
   /// \brief Determine whether this type involves a UnresolvedType.
   bool hasUnresolvedType() const {
     return getRecursiveProperties().hasUnresolvedType();
@@ -987,8 +991,6 @@
     : TypeBase(TypeKind::Unresolved, &C,
        RecursiveTypeProperties(RecursiveTypeProperties::HasUnresolvedType)) { }
 public:
-  static Type get(const ASTContext &C);
-  
   // Implement isa/cast/dyncast/etc.
   static bool classof(const TypeBase *T) {
     return T->getKind() == TypeKind::Unresolved;
@@ -2162,6 +2164,11 @@
 ///
 /// This is a superset of FunctionTypeRepresentation. The common representations
 /// must share an enum value.
+///
+/// TODO: The overlap of SILFunctionTypeRepresentation and
+/// FunctionTypeRepresentation is a total hack necessitated by the way SIL
+/// TypeLowering is currently written. We ought to refactor TypeLowering so that
+/// it is not necessary to distinguish these cases.
 enum class SILFunctionTypeRepresentation : uint8_t {
   /// A freestanding thick function.
   Thick = uint8_t(FunctionTypeRepresentation::Swift),
@@ -2190,6 +2197,9 @@
   
   /// A Swift protocol witness.
   WitnessMethod,
+  
+  /// A closure invocation function that has not been bound to a context.
+  Closure,
 };
 
 /// Can this calling convention result in a function being called indirectly
@@ -2200,6 +2210,7 @@
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::CFunctionPointer:
   case SILFunctionTypeRepresentation::Block:
+  case SILFunctionTypeRepresentation::Closure:
     return false;
   case SILFunctionTypeRepresentation::ObjCMethod:
   case SILFunctionTypeRepresentation::Method:
@@ -2221,6 +2232,7 @@
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Method:
   case SILFunctionTypeRepresentation::WitnessMethod:
+  case SILFunctionTypeRepresentation::Closure:
     return SILFunctionLanguage::Swift;
   }
 }
@@ -2300,6 +2312,7 @@
       case SILFunctionTypeRepresentation::Block:
       case SILFunctionTypeRepresentation::Thin:
       case SILFunctionTypeRepresentation::CFunctionPointer:
+      case SILFunctionTypeRepresentation::Closure:
         return false;
       case SILFunctionTypeRepresentation::ObjCMethod:
       case SILFunctionTypeRepresentation::Method:
@@ -2319,6 +2332,7 @@
       case SILFunctionTypeRepresentation::ObjCMethod:
       case SILFunctionTypeRepresentation::WitnessMethod:
       case SILFunctionTypeRepresentation::CFunctionPointer:
+      case SILFunctionTypeRepresentation::Closure:
         return false;
       }
     }
@@ -3021,6 +3035,7 @@
       case Representation::Block:
       case Representation::Thin:
       case Representation::CFunctionPointer:
+      case Representation::Closure:
         return false;
       case Representation::ObjCMethod:
       case Representation::Method:
@@ -3036,6 +3051,7 @@
       case Representation::Thin:
       case Representation::CFunctionPointer:
       case Representation::ObjCMethod:
+      case Representation::Closure:
         return false;
       case Representation::Method:
       case Representation::WitnessMethod:
@@ -3054,6 +3070,7 @@
       case Representation::ObjCMethod:
       case Representation::Method:
       case Representation::WitnessMethod:
+      case Representation::Closure:
         return false;
       }
     }
@@ -4343,10 +4360,6 @@
   static TypeVariableType *getNew(const ASTContext &C, unsigned ID,
                                   Args &&...args);
   
-  /// \brief If possible, retrieve the TypeBase object that was opened to create
-  /// this type variable.
-  TypeBase *getBaseBeingSubstituted();
-
   /// \brief Retrieve the implementation data corresponding to this type
   /// variable.
   ///
@@ -4379,6 +4392,15 @@
 };
 DEFINE_EMPTY_CAN_TYPE_WRAPPER(TypeVariableType, Type)
 
+inline bool TypeBase::isTypeVariableOrMember() {
+  if (is<TypeVariableType>())
+    return true;
+
+  if (auto depMemTy = getAs<DependentMemberType>())
+    return depMemTy->getBase()->isTypeVariableOrMember();
+
+  return false;
+}
 
 inline bool TypeBase::isTypeParameter() {
   if (is<GenericTypeParamType>())
diff --git a/include/swift/Basic/LangOptions.h b/include/swift/Basic/LangOptions.h
index b92807b..7ac76eb 100644
--- a/include/swift/Basic/LangOptions.h
+++ b/include/swift/Basic/LangOptions.h
@@ -227,6 +227,11 @@
       return CustomConditionalCompilationFlags;
     }
 
+    /// Whether our effective Swift version is in the Swift 3 family
+    bool isSwiftVersion3() const {
+      return EffectiveLanguageVersion.isVersion3();
+    }
+
     /// Returns true if the 'os' platform condition argument represents
     /// a supported target operating system.
     ///
diff --git a/include/swift/Basic/STLExtras.h b/include/swift/Basic/STLExtras.h
index 063be82..5517de2 100644
--- a/include/swift/Basic/STLExtras.h
+++ b/include/swift/Basic/STLExtras.h
@@ -180,6 +180,14 @@
   set_union_for_each(C1.begin(), C1.end(), C2.begin(), C2.end(), f);
 }
 
+/// Takes an iterator and an iterator pointing to the end of the iterator range.
+/// If the iterator already points to the end of its range, simply return it,
+/// otherwise return the next element.
+template <typename Iterator>
+inline Iterator next_or_end(Iterator it, Iterator end) {
+  return (it == end) ? end : std::next(it);
+}
+
 /// @}
 
 /// A range of iterators.
diff --git a/include/swift/Basic/SourceManager.h b/include/swift/Basic/SourceManager.h
index 1072b8b..e5149f1 100644
--- a/include/swift/Basic/SourceManager.h
+++ b/include/swift/Basic/SourceManager.h
@@ -40,7 +40,7 @@
     int LineOffset;
   };
   std::map<const char *, VirtualFile> VirtualFiles;
-  mutable std::pair<const char *, const VirtualFile*> CachedVFile = {};
+  mutable std::pair<const char *, const VirtualFile*> CachedVFile = {nullptr, nullptr};
 
 public:
   llvm::SourceMgr &getLLVMSourceMgr() {
diff --git a/include/swift/Basic/Version.h b/include/swift/Basic/Version.h
index a19afb3..15c1ffa 100644
--- a/include/swift/Basic/Version.h
+++ b/include/swift/Basic/Version.h
@@ -24,6 +24,7 @@
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "clang/Basic/VersionTuple.h"
 #include <string>
 
 namespace swift {
@@ -89,12 +90,19 @@
     return Components.empty();
   }
 
+  /// Convert to a (maximum-4-element) clang::VersionTuple, truncating
+  /// away any 5th component that might be in this version.
+  operator clang::VersionTuple() const;
+
   /// Return whether this version is a valid Swift language version number
   /// to set the compiler to using -swift-version; this is not the same as
   /// the set of Swift versions that have ever existed, just those that we
   /// are attempting to maintain backward-compatibility support for.
   bool isValidEffectiveLanguageVersion() const;
 
+  /// Whether this version is in the Swift 3 family
+  bool isVersion3() const { return !empty() && Components[0] == 3; }
+
   /// Parse a version in the form used by the _compiler_version \#if condition.
   static Version parseCompilerVersionString(StringRef VersionString,
                                             SourceLoc Loc,
diff --git a/include/swift/Option/FrontendOptions.td b/include/swift/Option/FrontendOptions.td
index a000e89..601728b 100644
--- a/include/swift/Option/FrontendOptions.td
+++ b/include/swift/Option/FrontendOptions.td
@@ -227,6 +227,9 @@
 def emit_verbose_sil : Flag<["-"], "emit-verbose-sil">,
   HelpText<"Emit locations during SIL emission">;
 
+def enable_sil_ownership : Flag<["-"], "enable-sil-ownership">,
+  HelpText<"Enable the SIL Ownership Model">;
+
 def enable_experimental_property_behaviors :
   Flag<["-"], "enable-experimental-property-behaviors">,
   HelpText<"Enable experimental property behaviors">;
diff --git a/include/swift/Parse/Parser.h b/include/swift/Parse/Parser.h
index 4b225f2..cd2bae0 100644
--- a/include/swift/Parse/Parser.h
+++ b/include/swift/Parse/Parser.h
@@ -1245,7 +1245,10 @@
   parseAvailabilitySpecList(SmallVectorImpl<AvailabilitySpec *> &Specs);
 
   ParserResult<AvailabilitySpec> parseAvailabilitySpec();
-  ParserResult<VersionConstraintAvailabilitySpec> parseVersionConstraintSpec();
+  ParserResult<PlatformVersionConstraintAvailabilitySpec>
+  parsePlatformVersionConstraintSpec();
+  ParserResult<LanguageVersionConstraintAvailabilitySpec>
+  parseLanguageVersionConstraintSpec();
 };
 
 /// Describes a parsed declaration name.
@@ -1315,6 +1318,9 @@
 /// Parse a stringified Swift declaration name, e.g. "init(frame:)".
 DeclName parseDeclName(ASTContext &ctx, StringRef name);
 
+/// Whether a given token can be the start of a decl.
+bool isKeywordPossibleDeclStart(const Token &Tok);
+
 } // end namespace swift
 
 #endif
diff --git a/include/swift/Runtime/Config.h b/include/swift/Runtime/Config.h
index b62fc66..ddc4497 100644
--- a/include/swift/Runtime/Config.h
+++ b/include/swift/Runtime/Config.h
@@ -219,7 +219,7 @@
 #define SWIFT_RT_ENTRY_IMPL_VISIBILITY LLVM_LIBRARY_VISIBILITY
 
 // Prefix of wrappers generated for runtime functions.
-#define SWIFT_WRAPPER_PREFIX "rt_"
+#define SWIFT_WRAPPER_PREFIX "swift_rt_"
 
 #else
 
diff --git a/include/swift/Runtime/RuntimeFunctions.def b/include/swift/Runtime/RuntimeFunctions.def
index 5a18465..291c700 100644
--- a/include/swift/Runtime/RuntimeFunctions.def
+++ b/include/swift/Runtime/RuntimeFunctions.def
@@ -1037,6 +1037,8 @@
          RETURNS(VoidTy),
          ARGS(TypeMetadataPtrTy),
          ATTRS(NoUnwind))
+FUNCTION(ObjCAllocWithZone, objc_allocWithZone, C_CC,
+         RETURNS(ObjCPtrTy), ARGS(ObjCClassPtrTy), ATTRS(NoUnwind))
 FUNCTION(ObjCRetain, objc_retain, C_CC,
          RETURNS(ObjCPtrTy), ARGS(ObjCPtrTy), ATTRS(NoUnwind))
 FUNCTION(ObjCRelease, objc_release, C_CC,
diff --git a/include/swift/SIL/SILBuilder.h b/include/swift/SIL/SILBuilder.h
index e99b814..4fd6544 100644
--- a/include/swift/SIL/SILBuilder.h
+++ b/include/swift/SIL/SILBuilder.h
@@ -445,15 +445,19 @@
         getSILDebugLocation(Loc), text.toStringRef(Out), encoding, F));
   }
 
-  LoadInst *createLoad(SILLocation Loc, SILValue LV) {
+  LoadInst *createLoad(
+      SILLocation Loc, SILValue LV,
+      LoadOwnershipQualifier Qualifier = LoadOwnershipQualifier::Unqualified) {
     assert(LV->getType().isLoadable(F.getModule()));
     return insert(new (F.getModule())
-                      LoadInst(getSILDebugLocation(Loc), LV));
+                      LoadInst(getSILDebugLocation(Loc), LV, Qualifier));
   }
 
-  StoreInst *createStore(SILLocation Loc, SILValue Src, SILValue DestAddr) {
-    return insert(new (F.getModule())
-                      StoreInst(getSILDebugLocation(Loc), Src, DestAddr));
+  StoreInst *createStore(SILLocation Loc, SILValue Src, SILValue DestAddr,
+                         StoreOwnershipQualifier Qualifier =
+                             StoreOwnershipQualifier::Unqualified) {
+    return insert(new (F.getModule()) StoreInst(getSILDebugLocation(Loc), Src,
+                                                DestAddr, Qualifier));
   }
   AssignInst *createAssign(SILLocation Loc, SILValue Src, SILValue DestAddr) {
     return insert(new (F.getModule())
diff --git a/include/swift/SIL/SILCloner.h b/include/swift/SIL/SILCloner.h
index 3155ce8..85b5ffd 100644
--- a/include/swift/SIL/SILCloner.h
+++ b/include/swift/SIL/SILCloner.h
@@ -78,7 +78,7 @@
   void visit##CLASS(CLASS *I) {                                       \
     llvm_unreachable("SILCloner visiting non-instruction?");          \
   }
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR) \
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
   void visit##CLASS(CLASS *I);
 #include "swift/SIL/SILNodes.def"
 
diff --git a/include/swift/SIL/SILFunction.h b/include/swift/SIL/SILFunction.h
index c742f09..ec0cd2d 100644
--- a/include/swift/SIL/SILFunction.h
+++ b/include/swift/SIL/SILFunction.h
@@ -694,7 +694,8 @@
 
   /// verify - Run the IR verifier to make sure that the SILFunction follows
   /// invariants.
-  void verify(bool SingleFunction=true) const;
+  void verify(bool SingleFunction = true,
+              bool EnforceSILOwnership = false) const;
 
   /// Pretty-print the SILFunction.
   void dump(bool Verbose) const;
diff --git a/include/swift/SIL/SILInstruction.h b/include/swift/SIL/SILInstruction.h
index c509839..145a6b8 100644
--- a/include/swift/SIL/SILInstruction.h
+++ b/include/swift/SIL/SILInstruction.h
@@ -55,6 +55,14 @@
 
 template <typename ImplClass> class SILClonerWithScopes;
 
+// An enum class for SILInstructions that enables exhaustive switches over
+// instructions.
+enum class SILInstructionKind : std::underlying_type<ValueKind>::type {
+#define INST(Id, Parent, TextualName, MemoryBehavior, ReleasingBehavior)       \
+  Id = static_cast<std::underlying_type<ValueKind>::type>(ValueKind::Id),
+#include "SILNodes.def"
+};
+
 /// This is the root class for all instructions that can be used as the contents
 /// of a Swift SILBasicBlock.
 class SILInstruction : public ValueBase,public llvm::ilist_node<SILInstruction>{
@@ -1659,21 +1667,42 @@
   return llvm::hash_value(size_t(E));
 }
 
+// *NOTE* When serializing, we can only represent up to 4 values here. If more
+// qualifiers are added, SIL serialization must be updated.
+enum class LoadOwnershipQualifier {
+  Unqualified, Take, Copy, Trivial
+};
+
 /// LoadInst - Represents a load from a memory location.
 class LoadInst
   : public UnaryInstructionBase<ValueKind::LoadInst>
 {
   friend class SILBuilder;
 
+  LoadOwnershipQualifier OwnershipQualifier;
+
   /// Constructs a LoadInst.
   ///
   /// \param DebugLoc The location of the expression that caused the load.
   ///
   /// \param LValue The SILValue representing the lvalue (address) to
   ///        use for the load.
-  LoadInst(SILDebugLocation DebugLoc, SILValue LValue)
+  LoadInst(SILDebugLocation DebugLoc, SILValue LValue,
+           LoadOwnershipQualifier Q = LoadOwnershipQualifier::Unqualified)
       : UnaryInstructionBase(DebugLoc, LValue,
-                             LValue->getType().getObjectType()) {}
+                             LValue->getType().getObjectType()),
+        OwnershipQualifier(Q) {}
+
+public:
+  LoadOwnershipQualifier getOwnershipQualifier() const {
+    return OwnershipQualifier;
+  }
+};
+
+// *NOTE* When serializing, we can only represent up to 4 values here. If more
+// qualifiers are added, SIL serialization must be updated.
+enum class StoreOwnershipQualifier {
+  Unqualified, Init, Assign, Trivial
 };
 
 /// StoreInst - Represents a store from a memory location.
@@ -1682,8 +1711,10 @@
 
 private:
   FixedOperandList<2> Operands;
+  StoreOwnershipQualifier OwnershipQualifier;
 
-  StoreInst(SILDebugLocation DebugLoc, SILValue Src, SILValue Dest);
+  StoreInst(SILDebugLocation DebugLoc, SILValue Src, SILValue Dest,
+            StoreOwnershipQualifier Qualifier);
 
 public:
   enum {
@@ -1702,6 +1733,10 @@
   static bool classof(const ValueBase *V) {
     return V->getKind() == ValueKind::StoreInst;
   }
+
+  StoreOwnershipQualifier getOwnershipQualifier() const {
+    return OwnershipQualifier;
+  }
 };
 
 /// AssignInst - Represents an abstract assignment to a memory location, which
@@ -4444,7 +4479,7 @@
 //===----------------------------------------------------------------------===//
 
 enum class TermKind {
-#define TERMINATOR(Id, Parent, MemBehavior, MayRelease) Id,
+#define TERMINATOR(Id, Parent, TextualName, MemBehavior, MayRelease) Id,
 #include "SILNodes.def"
 };
 
@@ -4453,10 +4488,10 @@
 
   ValueKindAsTermKind(ValueKind V) {
     switch (V) {
-#define TERMINATOR(Id, Parent, MemBehavior, MayRelease)                 \
-      case ValueKind::Id:                                               \
-        K = TermKind::Id;                                               \
-        break;
+#define TERMINATOR(Id, Parent, TextualName, MemBehavior, MayRelease)           \
+  case ValueKind::Id:                                                          \
+    K = TermKind::Id;                                                          \
+    break;
 #include "SILNodes.def"
     default:
       llvm_unreachable("Not a terminator kind?!");
@@ -5221,6 +5256,7 @@
     case SILFunctionTypeRepresentation::Method:
     case SILFunctionTypeRepresentation::ObjCMethod:
     case SILFunctionTypeRepresentation::WitnessMethod:
+    case SILFunctionTypeRepresentation::Closure:
       return true;
     case SILFunctionTypeRepresentation::Block:
     case SILFunctionTypeRepresentation::Thick:
diff --git a/include/swift/SIL/SILModule.h b/include/swift/SIL/SILModule.h
index 0f8aa9e..20f307a 100644
--- a/include/swift/SIL/SILModule.h
+++ b/include/swift/SIL/SILModule.h
@@ -551,7 +551,7 @@
 
   /// \brief Run the SIL verifier to make sure that all Functions follow
   /// invariants.
-  void verify() const;
+  void verify(bool EnforceSILOwnership = false) const;
 
   /// Pretty-print the module.
   void dump(bool Verbose = false) const;
diff --git a/include/swift/SIL/SILNodes.def b/include/swift/SIL/SILNodes.def
index f02595a..af28fb8 100644
--- a/include/swift/SIL/SILNodes.def
+++ b/include/swift/SIL/SILNodes.def
@@ -21,26 +21,29 @@
 #define VALUE(Id, Parent)
 #endif
 
-/// INST(Id, Parent, MemBehavior, MayRelease)
+/// INST(Id, Parent, TextualName, MemBehavior, MayRelease)
+///
 ///   The expression enumerator value is a ValueKind.  The node's class name is
 ///   Id, and the name of its base class (in the SILInstruction hierarchy) is
-///   Parent. MemBehavior is an enum value that reflects the memory behavior of
-///   the instruction. MayRelease indicates whether the execution of the
-///   instruction may result in memory being released.
+///   Parent. TextualName is the textual name of the instruction. MemBehavior is
+///   an enum value that reflects the memory behavior of the
+///   instruction. MayRelease indicates whether the execution of the instruction
+///   may result in memory being released.
 #ifndef INST
-#define INST(Id, Parent, MemBehavior, MayRelease) VALUE(Id, Parent)
+#define INST(Id, Parent, TextualName, MemBehavior, MayRelease) VALUE(Id, Parent)
 #endif
 
-/// TERMINATOR(Id, Parent, MemBehavior, MayRelease)
-///   Expands for terminator instructions. The expression enumerator value is
-///   a ValueKind.  The node's class name is Id, and the name of its base class
-///   (in the SILInstruction hierarchy) is Parent. MemBehavior is an enum value
-///   that reflects the memory behavior of the instruction. MayRelease
-///   indicates whether the execution of the instruction may result in memory
-///   being released.
+/// TERMINATOR(Id, Parent, TextualName, MemBehavior, MayRelease)
+///   Expands for terminator instructions. The expression enumerator value is a
+///   ValueKind.  The node's class name is Id, and the name of its base class
+///   (in the SILInstruction hierarchy) is Parent. TextualName is the name of
+///   the instruction in textual SIL.  MemBehavior is an enum value that
+///   reflects the memory behavior of the instruction. MayRelease indicates
+///   whether the execution of the instruction may result in memory being
+///   released.
 #ifndef TERMINATOR
-#define TERMINATOR(Id, Parent, MemBehavior, MayRelease) \
-  INST(Id, Parent, MemBehavior, MayRelease)
+#define TERMINATOR(Id, Parent, TextualName, MemBehavior, MayRelease)     \
+      INST(Id, Parent, TextualName, MemBehavior, MayRelease)
 #endif
 
 /// An abstract instruction is an abstract base class in the hierarchy;
@@ -68,204 +71,204 @@
 ABSTRACT_VALUE(SILInstruction, ValueBase)
   // Allocation instructions.
   ABSTRACT_VALUE(AllocationInst, SILInstruction)
-    INST(AllocStackInst, AllocationInst, None, DoesNotRelease)
-    INST(AllocRefInst, AllocationInst, None, DoesNotRelease)
-    INST(AllocRefDynamicInst, AllocationInst, None, DoesNotRelease)
-    INST(AllocValueBufferInst, AllocationInst, None, DoesNotRelease)
-    INST(AllocBoxInst, AllocationInst, None, DoesNotRelease)
-    INST(AllocExistentialBoxInst, AllocationInst, MayWrite, DoesNotRelease)
+    INST(AllocStackInst, AllocationInst, alloc_stack, None, DoesNotRelease)
+    INST(AllocRefInst, AllocationInst, alloc_ref, None, DoesNotRelease)
+    INST(AllocRefDynamicInst, AllocationInst, alloc_ref_dynamic, None, DoesNotRelease)
+    INST(AllocValueBufferInst, AllocationInst, alloc_value_buffer, None, DoesNotRelease)
+    INST(AllocBoxInst, AllocationInst, alloc_box, None, DoesNotRelease)
+    INST(AllocExistentialBoxInst, AllocationInst, alloc_existential_box, MayWrite, DoesNotRelease)
     VALUE_RANGE(AllocationInst, AllocStackInst, AllocExistentialBoxInst)
 
   // Deallocation instructions.
   ABSTRACT_VALUE(DeallocationInst, SILInstruction)
-    INST(DeallocStackInst, DeallocationInst, MayHaveSideEffects, DoesNotRelease)
-    INST(DeallocRefInst, DeallocationInst, MayHaveSideEffects, DoesNotRelease)
-    INST(DeallocPartialRefInst, DeallocationInst, MayHaveSideEffects,
+    INST(DeallocStackInst, DeallocationInst, dealloc_stack, MayHaveSideEffects, DoesNotRelease)
+    INST(DeallocRefInst, DeallocationInst, dealloc_ref, MayHaveSideEffects, DoesNotRelease)
+    INST(DeallocPartialRefInst, DeallocationInst, dealloc_partial_ref, MayHaveSideEffects,
          DoesNotRelease)
-    INST(DeallocValueBufferInst, DeallocationInst, MayHaveSideEffects,
+    INST(DeallocValueBufferInst, DeallocationInst, dealloc_value_buffer, MayHaveSideEffects,
          DoesNotRelease)
-    INST(DeallocBoxInst, DeallocationInst, MayHaveSideEffects, DoesNotRelease)
-    INST(DeallocExistentialBoxInst, DeallocationInst, MayHaveSideEffects,
+    INST(DeallocBoxInst, DeallocationInst, dealloc_box, MayHaveSideEffects, DoesNotRelease)
+    INST(DeallocExistentialBoxInst, DeallocationInst, dealloc_existential_box, MayHaveSideEffects,
          DoesNotRelease)
     VALUE_RANGE(DeallocationInst, DeallocStackInst, DeallocExistentialBoxInst)
 
   // Accessing memory
-  INST(LoadInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(LoadUnownedInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(LoadWeakInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(StoreInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(AssignInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(MarkUninitializedInst, SILInstruction, None, DoesNotRelease)
-  INST(MarkUninitializedBehaviorInst, SILInstruction, None, DoesNotRelease)
-  INST(MarkFunctionEscapeInst, SILInstruction, None, DoesNotRelease)
-  INST(DebugValueInst, SILInstruction, None, DoesNotRelease)
-  INST(DebugValueAddrInst, SILInstruction, None, DoesNotRelease)
-  INST(StoreUnownedInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(StoreWeakInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(CopyAddrInst, SILInstruction, MayHaveSideEffects, MayRelease)
-  INST(DestroyAddrInst, SILInstruction, MayHaveSideEffects, MayRelease)
-  INST(ProjectValueBufferInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(ProjectBoxInst, SILInstruction, None, DoesNotRelease)
-  INST(ProjectExistentialBoxInst, SILInstruction, None, DoesNotRelease)
+  INST(LoadInst, SILInstruction, load, MayRead, DoesNotRelease)
+  INST(LoadUnownedInst, SILInstruction, load_unowned, MayRead, DoesNotRelease)
+  INST(LoadWeakInst, SILInstruction, load_weak, MayRead, DoesNotRelease)
+  INST(StoreInst, SILInstruction, store, MayWrite, DoesNotRelease)
+  INST(AssignInst, SILInstruction, assign, MayWrite, DoesNotRelease)
+  INST(MarkUninitializedInst, SILInstruction, mark_uninitialized, None, DoesNotRelease)
+  INST(MarkUninitializedBehaviorInst, SILInstruction, mark_uninitialized_behavior, None, DoesNotRelease)
+  INST(MarkFunctionEscapeInst, SILInstruction, mark_function_escape, None, DoesNotRelease)
+  INST(DebugValueInst, SILInstruction, debug_value, None, DoesNotRelease)
+  INST(DebugValueAddrInst, SILInstruction, debug_value_addr, None, DoesNotRelease)
+  INST(StoreUnownedInst, SILInstruction, store_unowned, MayWrite, DoesNotRelease)
+  INST(StoreWeakInst, SILInstruction, store_weak, MayWrite, DoesNotRelease)
+  INST(CopyAddrInst, SILInstruction, copy_addr, MayHaveSideEffects, MayRelease)
+  INST(DestroyAddrInst, SILInstruction, destroy_addr, MayHaveSideEffects, MayRelease)
+  INST(ProjectValueBufferInst, SILInstruction, project_value_buffer, MayRead, DoesNotRelease)
+  INST(ProjectBoxInst, SILInstruction, project_box, None, DoesNotRelease)
+  INST(ProjectExistentialBoxInst, SILInstruction, project_existential_box, None, DoesNotRelease)
   ABSTRACT_VALUE(IndexingInst, SILInstruction)
-    INST(IndexAddrInst, IndexingInst, None, DoesNotRelease)
-    INST(TailAddrInst, IndexingInst, None, DoesNotRelease)
-    INST(IndexRawPointerInst, IndexingInst, None, DoesNotRelease)
+    INST(IndexAddrInst, IndexingInst, index_addr, None, DoesNotRelease)
+    INST(TailAddrInst, IndexingInst, tail_addr, None, DoesNotRelease)
+    INST(IndexRawPointerInst, IndexingInst, index_raw_pointer, None, DoesNotRelease)
     VALUE_RANGE(IndexingInst, IndexAddrInst, IndexRawPointerInst)
 
   // BindMemory has no physical side effect. Semantically it writes to
   // its affected memory region because any reads or writes accessing
   // that memory must be dependent on the bind operation.
-  INST(BindMemoryInst, SILInstruction, MayWrite, DoesNotRelease)
+  INST(BindMemoryInst, SILInstruction, bind_memory, MayWrite, DoesNotRelease)
 
   // Reference Counting
   ABSTRACT_VALUE(RefCountingInst, SILInstruction)
-    INST(StrongRetainInst, RefCountingInst, MayHaveSideEffects, DoesNotRelease)
-    INST(StrongReleaseInst, RefCountingInst, MayHaveSideEffects, MayRelease)
-    INST(StrongRetainUnownedInst, RefCountingInst, MayHaveSideEffects,
+    INST(StrongRetainInst, RefCountingInst, strong_retain, MayHaveSideEffects, DoesNotRelease)
+    INST(StrongReleaseInst, RefCountingInst, strong_release, MayHaveSideEffects, MayRelease)
+    INST(StrongRetainUnownedInst, RefCountingInst, strong_retain_unowned, MayHaveSideEffects,
          DoesNotRelease)
-    INST(StrongPinInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
-    INST(StrongUnpinInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
-    INST(UnownedRetainInst, RefCountingInst, MayHaveSideEffects, DoesNotRelease)
-    INST(UnownedReleaseInst, RefCountingInst, MayHaveSideEffects,
+    INST(StrongPinInst, SILInstruction, strong_pin, MayHaveSideEffects, DoesNotRelease)
+    INST(StrongUnpinInst, SILInstruction, strong_unpin, MayHaveSideEffects, DoesNotRelease)
+    INST(UnownedRetainInst, RefCountingInst, unowned_retain, MayHaveSideEffects, DoesNotRelease)
+    INST(UnownedReleaseInst, RefCountingInst, unowned_release, MayHaveSideEffects,
          MayRelease)
-    INST(RetainValueInst, RefCountingInst, MayHaveSideEffects, DoesNotRelease)
-    INST(ReleaseValueInst, RefCountingInst, MayHaveSideEffects, MayRelease)
-    INST(SetDeallocatingInst, RefCountingInst, MayHaveSideEffects,
+    INST(RetainValueInst, RefCountingInst, retain_value, MayHaveSideEffects, DoesNotRelease)
+    INST(ReleaseValueInst, RefCountingInst, release_value, MayHaveSideEffects, MayRelease)
+    INST(SetDeallocatingInst, RefCountingInst, set_deallocating, MayHaveSideEffects,
          DoesNotRelease)
-    INST(AutoreleaseValueInst, RefCountingInst, MayHaveSideEffects,
+    INST(AutoreleaseValueInst, RefCountingInst, autorelease_value, MayHaveSideEffects,
          DoesNotRelease)
     VALUE_RANGE(RefCountingInst, StrongRetainInst, AutoreleaseValueInst)
   // FIXME: Is MayHaveSideEffects appropriate?
-  INST(FixLifetimeInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
-  INST(MarkDependenceInst, SILInstruction, None, DoesNotRelease)
-  INST(CopyBlockInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
+  INST(FixLifetimeInst, SILInstruction, fix_lifetime, MayHaveSideEffects, DoesNotRelease)
+  INST(MarkDependenceInst, SILInstruction, mark_dependence, None, DoesNotRelease)
+  INST(CopyBlockInst, SILInstruction, copy_block, MayHaveSideEffects, DoesNotRelease)
 
   // IsUnique does not actually write to memory but should be modeled
   // as such. Its operand is a pointer to an object reference. The
   // optimizer should not assume that the same object is pointed to after
   // the isUnique instruction. It appears to write a new object reference.
-  INST(IsUniqueInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
-  INST(IsUniqueOrPinnedInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
+  INST(IsUniqueInst, SILInstruction, is_unique, MayHaveSideEffects, DoesNotRelease)
+  INST(IsUniqueOrPinnedInst, SILInstruction, is_unique_or_pinned, MayHaveSideEffects, DoesNotRelease)
 
-  INST(AllocGlobalInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
+  INST(AllocGlobalInst, SILInstruction, alloc_global, MayHaveSideEffects, DoesNotRelease)
 
   // Literals
   ABSTRACT_VALUE(LiteralInst, SILInstruction)
-    INST(FunctionRefInst, LiteralInst, None, DoesNotRelease)
-    INST(GlobalAddrInst, LiteralInst, None, DoesNotRelease)
-    INST(IntegerLiteralInst, LiteralInst, None, DoesNotRelease)
-    INST(FloatLiteralInst, LiteralInst, None, DoesNotRelease)
-    INST(StringLiteralInst, LiteralInst, None, DoesNotRelease)
+    INST(FunctionRefInst, LiteralInst, function_ref, None, DoesNotRelease)
+    INST(GlobalAddrInst, LiteralInst, global_addr, None, DoesNotRelease)
+    INST(IntegerLiteralInst, LiteralInst, integer_literal, None, DoesNotRelease)
+    INST(FloatLiteralInst, LiteralInst, float_literal, None, DoesNotRelease)
+    INST(StringLiteralInst, LiteralInst, string_literal, None, DoesNotRelease)
     VALUE_RANGE(LiteralInst, FunctionRefInst, StringLiteralInst)
 
   // Dynamic Dispatch
   ABSTRACT_VALUE(MethodInst, SILInstruction)
-    INST(ClassMethodInst, MethodInst, None, DoesNotRelease)
-    INST(SuperMethodInst, MethodInst, None, DoesNotRelease)
-    INST(WitnessMethodInst, MethodInst, None, DoesNotRelease)
-    INST(DynamicMethodInst, MethodInst, None, DoesNotRelease)
+    INST(ClassMethodInst, MethodInst, class_method, None, DoesNotRelease)
+    INST(SuperMethodInst, MethodInst, super_method, None, DoesNotRelease)
+    INST(WitnessMethodInst, MethodInst, witness_method, None, DoesNotRelease)
+    INST(DynamicMethodInst, MethodInst, dynamic_method, None, DoesNotRelease)
     VALUE_RANGE(MethodInst, ClassMethodInst, DynamicMethodInst)
 
   // Function Application
-  INST(ApplyInst, SILInstruction, MayHaveSideEffects, MayRelease)
-  INST(PartialApplyInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
-  INST(BuiltinInst, SILInstruction, MayHaveSideEffects, MayRelease)
+  INST(ApplyInst, SILInstruction, apply, MayHaveSideEffects, MayRelease)
+  INST(PartialApplyInst, SILInstruction, partial_apply, MayHaveSideEffects, DoesNotRelease)
+  INST(BuiltinInst, SILInstruction, builtin, MayHaveSideEffects, MayRelease)
 
   // Metatypes
-  INST(MetatypeInst, SILInstruction, None, DoesNotRelease)
-  INST(ValueMetatypeInst, SILInstruction, None, DoesNotRelease)
-  INST(ExistentialMetatypeInst, SILInstruction, None, DoesNotRelease)
-  INST(ObjCProtocolInst, SILInstruction, None, DoesNotRelease)
+  INST(MetatypeInst, SILInstruction, metatype, None, DoesNotRelease)
+  INST(ValueMetatypeInst, SILInstruction, value_metatype, None, DoesNotRelease)
+  INST(ExistentialMetatypeInst, SILInstruction, existential_metatype, None, DoesNotRelease)
+  INST(ObjCProtocolInst, SILInstruction, objc_protocol, None, DoesNotRelease)
 
   // Aggregate Types
-  INST(TupleInst, SILInstruction, None, DoesNotRelease)
-  INST(TupleExtractInst, SILInstruction, None, DoesNotRelease)
-  INST(TupleElementAddrInst, SILInstruction, None, DoesNotRelease)
-  INST(StructInst, SILInstruction, None, DoesNotRelease)
-  INST(StructExtractInst, SILInstruction, None, DoesNotRelease)
-  INST(StructElementAddrInst, SILInstruction, None, DoesNotRelease)
-  INST(RefElementAddrInst, SILInstruction, None, DoesNotRelease)
-  INST(RefTailAddrInst, SILInstruction, None, DoesNotRelease)
+  INST(TupleInst, SILInstruction, tuple, None, DoesNotRelease)
+  INST(TupleExtractInst, SILInstruction, tuple_extract, None, DoesNotRelease)
+  INST(TupleElementAddrInst, SILInstruction, tuple_element_addr, None, DoesNotRelease)
+  INST(StructInst, SILInstruction, struct, None, DoesNotRelease)
+  INST(StructExtractInst, SILInstruction, struct_extract, None, DoesNotRelease)
+  INST(StructElementAddrInst, SILInstruction, struct_element_addr, None, DoesNotRelease)
+  INST(RefElementAddrInst, SILInstruction, ref_element_addr, None, DoesNotRelease)
+  INST(RefTailAddrInst, SILInstruction, ref_tail_addr, None, DoesNotRelease)
 
   // Enums
-  INST(EnumInst, SILInstruction, None, DoesNotRelease)
-  INST(UncheckedEnumDataInst, SILInstruction, None, DoesNotRelease)
-  INST(InitEnumDataAddrInst, SILInstruction, None, DoesNotRelease)
-  INST(UncheckedTakeEnumDataAddrInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(InjectEnumAddrInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(SelectEnumInst, SILInstruction, None, DoesNotRelease)
-  INST(SelectEnumAddrInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(SelectValueInst, SILInstruction, None, DoesNotRelease)
+  INST(EnumInst, SILInstruction, enum, None, DoesNotRelease)
+  INST(UncheckedEnumDataInst, SILInstruction, unchecked_enum_data, None, DoesNotRelease)
+  INST(InitEnumDataAddrInst, SILInstruction, init_enum_data_addr, None, DoesNotRelease)
+  INST(UncheckedTakeEnumDataAddrInst, SILInstruction, unchecked_take_enum_data_addr, MayWrite, DoesNotRelease)
+  INST(InjectEnumAddrInst, SILInstruction, inject_enum_addr, MayWrite, DoesNotRelease)
+  INST(SelectEnumInst, SILInstruction, select_enum, None, DoesNotRelease)
+  INST(SelectEnumAddrInst, SILInstruction, select_enum_addr, MayRead, DoesNotRelease)
+  INST(SelectValueInst, SILInstruction, select_value, None, DoesNotRelease)
 
   // Protocol and Protocol Composition Types
-  INST(InitExistentialAddrInst, SILInstruction, MayWrite, DoesNotRelease)
-  INST(DeinitExistentialAddrInst, SILInstruction, MayHaveSideEffects,
+  INST(InitExistentialAddrInst, SILInstruction, init_existential_addr, MayWrite, DoesNotRelease)
+  INST(DeinitExistentialAddrInst, SILInstruction, deinit_existential_addr, MayHaveSideEffects,
        DoesNotRelease)
-  INST(OpenExistentialAddrInst, SILInstruction, MayRead, DoesNotRelease)
-  INST(InitExistentialRefInst, SILInstruction, None, DoesNotRelease)
-  INST(OpenExistentialRefInst, SILInstruction, None, DoesNotRelease)
-  INST(InitExistentialMetatypeInst, SILInstruction, None, DoesNotRelease)
-  INST(OpenExistentialMetatypeInst, SILInstruction, None, DoesNotRelease)
-  INST(OpenExistentialBoxInst, SILInstruction, MayRead, DoesNotRelease)
+  INST(OpenExistentialAddrInst, SILInstruction, open_existential_addr, MayRead, DoesNotRelease)
+  INST(InitExistentialRefInst, SILInstruction, init_existential_ref, None, DoesNotRelease)
+  INST(OpenExistentialRefInst, SILInstruction, open_existential_ref, None, DoesNotRelease)
+  INST(InitExistentialMetatypeInst, SILInstruction, init_existential_metatype, None, DoesNotRelease)
+  INST(OpenExistentialMetatypeInst, SILInstruction, open_existential_metatype, None, DoesNotRelease)
+  INST(OpenExistentialBoxInst, SILInstruction, open_existential_box, MayRead, DoesNotRelease)
 
   // Blocks
-  INST(ProjectBlockStorageInst, SILInstruction, None, DoesNotRelease)
-  INST(InitBlockStorageHeaderInst, SILInstruction, None, DoesNotRelease)
+  INST(ProjectBlockStorageInst, SILInstruction, project_block_storage, None, DoesNotRelease)
+  INST(InitBlockStorageHeaderInst, SILInstruction, init_block_storage_header, None, DoesNotRelease)
 
   // Conversions
   ABSTRACT_VALUE(ConversionInst, SILInstruction)
-    INST(UpcastInst, ConversionInst, None, DoesNotRelease)
-    INST(AddressToPointerInst, ConversionInst, None, DoesNotRelease)
-    INST(PointerToAddressInst, ConversionInst, None, DoesNotRelease)
-    INST(UncheckedRefCastInst, ConversionInst, None, DoesNotRelease)
-    INST(UncheckedAddrCastInst, ConversionInst, None, DoesNotRelease)
-    INST(UncheckedTrivialBitCastInst, ConversionInst, None, DoesNotRelease)
-    INST(UncheckedBitwiseCastInst, ConversionInst, None, DoesNotRelease)
-    INST(RefToRawPointerInst, ConversionInst, None, DoesNotRelease)
-    INST(RawPointerToRefInst, ConversionInst, None, DoesNotRelease)
-    INST(RefToUnownedInst, ConversionInst, None, DoesNotRelease)
-    INST(UnownedToRefInst, ConversionInst, None, DoesNotRelease)
-    INST(RefToUnmanagedInst, ConversionInst, None, DoesNotRelease)
-    INST(UnmanagedToRefInst, ConversionInst, None, DoesNotRelease)
-    INST(ConvertFunctionInst, ConversionInst, None, DoesNotRelease)
-    INST(ThinFunctionToPointerInst, ConversionInst, None, DoesNotRelease)
-    INST(PointerToThinFunctionInst, ConversionInst, None, DoesNotRelease)
-    INST(RefToBridgeObjectInst, ConversionInst, None, DoesNotRelease)
-    INST(BridgeObjectToRefInst, ConversionInst, None, DoesNotRelease)
-    INST(BridgeObjectToWordInst, ConversionInst, None, DoesNotRelease)
-    INST(ThinToThickFunctionInst, ConversionInst, None, DoesNotRelease)
-    INST(ThickToObjCMetatypeInst, ConversionInst, None, DoesNotRelease)
-    INST(ObjCToThickMetatypeInst, ConversionInst, None, DoesNotRelease)
-    INST(ObjCMetatypeToObjectInst, ConversionInst, None, DoesNotRelease)
-    INST(ObjCExistentialMetatypeToObjectInst, ConversionInst, None,
+    INST(UpcastInst, ConversionInst, upcast, None, DoesNotRelease)
+    INST(AddressToPointerInst, ConversionInst, address_to_pointer, None, DoesNotRelease)
+    INST(PointerToAddressInst, ConversionInst, pointer_to_address, None, DoesNotRelease)
+    INST(UncheckedRefCastInst, ConversionInst, unchecked_ref_cast, None, DoesNotRelease)
+    INST(UncheckedAddrCastInst, ConversionInst, unchecked_addr_cast, None, DoesNotRelease)
+    INST(UncheckedTrivialBitCastInst, ConversionInst, unchecked_trivial_bit_cast, None, DoesNotRelease)
+    INST(UncheckedBitwiseCastInst, ConversionInst, unchecked_bitwise_cast, None, DoesNotRelease)
+    INST(RefToRawPointerInst, ConversionInst, ref_to_raw_pointer, None, DoesNotRelease)
+    INST(RawPointerToRefInst, ConversionInst, raw_pointer_to_ref, None, DoesNotRelease)
+    INST(RefToUnownedInst, ConversionInst, ref_to_unowned, None, DoesNotRelease)
+    INST(UnownedToRefInst, ConversionInst, unowned_to_ref, None, DoesNotRelease)
+    INST(RefToUnmanagedInst, ConversionInst, ref_to_unmanaged, None, DoesNotRelease)
+    INST(UnmanagedToRefInst, ConversionInst, unmanaged_to_ref, None, DoesNotRelease)
+    INST(ConvertFunctionInst, ConversionInst, convert_function, None, DoesNotRelease)
+    INST(ThinFunctionToPointerInst, ConversionInst, thin_function_to_pointer, None, DoesNotRelease)
+    INST(PointerToThinFunctionInst, ConversionInst, pointer_to_thin_function, None, DoesNotRelease)
+    INST(RefToBridgeObjectInst, ConversionInst, ref_to_bridge_object, None, DoesNotRelease)
+    INST(BridgeObjectToRefInst, ConversionInst, bridge_object_to_ref, None, DoesNotRelease)
+    INST(BridgeObjectToWordInst, ConversionInst, bridge_object_to_word, None, DoesNotRelease)
+    INST(ThinToThickFunctionInst, ConversionInst, thin_to_thick_function, None, DoesNotRelease)
+    INST(ThickToObjCMetatypeInst, ConversionInst, thick_to_objc_metatype, None, DoesNotRelease)
+    INST(ObjCToThickMetatypeInst, ConversionInst, objc_to_thick_metatype, None, DoesNotRelease)
+    INST(ObjCMetatypeToObjectInst, ConversionInst, objc_metatype_to_object, None, DoesNotRelease)
+    INST(ObjCExistentialMetatypeToObjectInst, ConversionInst, objc_existential_metatype_to_object, None,
          DoesNotRelease)
-    INST(UnconditionalCheckedCastInst, ConversionInst, None, DoesNotRelease)
+    INST(UnconditionalCheckedCastInst, ConversionInst, unconditional_checked_cast, None, DoesNotRelease)
     VALUE_RANGE(ConversionInst, UpcastInst, UnconditionalCheckedCastInst)
-  INST(IsNonnullInst, SILInstruction, None, DoesNotRelease)
-  INST(UnconditionalCheckedCastAddrInst, SILInstruction, MayHaveSideEffects,
+  INST(IsNonnullInst, SILInstruction, is_nonnull, None, DoesNotRelease)
+  INST(UnconditionalCheckedCastAddrInst, SILInstruction, unconditional_checked_cast_addr, MayHaveSideEffects,
        MayRelease)
-  INST(UncheckedRefCastAddrInst, SILInstruction, MayHaveSideEffects,
+  INST(UncheckedRefCastAddrInst, SILInstruction, unchecked_ref_cast_addr, MayHaveSideEffects,
        DoesNotRelease)
 
   // Runtime failure
   // FIXME: Special MemBehavior for runtime failure?
-  INST(CondFailInst, SILInstruction, MayHaveSideEffects, DoesNotRelease)
+  INST(CondFailInst, SILInstruction, cond_fail, MayHaveSideEffects, DoesNotRelease)
 
   // Terminators
   ABSTRACT_VALUE(TermInst, SILInstruction)
-    TERMINATOR(UnreachableInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(ReturnInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(ThrowInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(TryApplyInst, TermInst, MayHaveSideEffects, MayRelease)
-    TERMINATOR(BranchInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(CondBranchInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(SwitchValueInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(SwitchEnumInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(SwitchEnumAddrInst, TermInst, MayRead, DoesNotRelease)
-    TERMINATOR(DynamicMethodBranchInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(CheckedCastBranchInst, TermInst, None, DoesNotRelease)
-    TERMINATOR(CheckedCastAddrBranchInst, TermInst, MayHaveSideEffects,
+    TERMINATOR(UnreachableInst, TermInst, unreachable, None, DoesNotRelease)
+    TERMINATOR(ReturnInst, TermInst, return, None, DoesNotRelease)
+    TERMINATOR(ThrowInst, TermInst, throw, None, DoesNotRelease)
+    TERMINATOR(TryApplyInst, TermInst, try_apply, MayHaveSideEffects, MayRelease)
+    TERMINATOR(BranchInst, TermInst, br, None, DoesNotRelease)
+    TERMINATOR(CondBranchInst, TermInst, cond_br, None, DoesNotRelease)
+    TERMINATOR(SwitchValueInst, TermInst, switch_value, None, DoesNotRelease)
+    TERMINATOR(SwitchEnumInst, TermInst, switch_enum, None, DoesNotRelease)
+    TERMINATOR(SwitchEnumAddrInst, TermInst, switch_enum_addr, MayRead, DoesNotRelease)
+    TERMINATOR(DynamicMethodBranchInst, TermInst, dynamic_method_br, None, DoesNotRelease)
+    TERMINATOR(CheckedCastBranchInst, TermInst, checked_cast_br, None, DoesNotRelease)
+    TERMINATOR(CheckedCastAddrBranchInst, TermInst, checked_cast_addr_br, MayHaveSideEffects,
                MayRelease)
     VALUE_RANGE(TermInst, UnreachableInst, CheckedCastAddrBranchInst)
 
diff --git a/include/swift/SIL/TypeLowering.h b/include/swift/SIL/TypeLowering.h
index a940d8b..470aa45 100644
--- a/include/swift/SIL/TypeLowering.h
+++ b/include/swift/SIL/TypeLowering.h
@@ -10,8 +10,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef SIL_TypeLowering_h
-#define SIL_TypeLowering_h
+#ifndef SWIFT_SIL_TYPELOWERING_H
+#define SWIFT_SIL_TYPELOWERING_H
 
 #include "swift/AST/CaptureInfo.h"
 #include "swift/ABI/MetadataValues.h"
diff --git a/include/swift/SILOptimizer/PassManager/Passes.def b/include/swift/SILOptimizer/PassManager/Passes.def
index 1194045..7da0c31 100644
--- a/include/swift/SILOptimizer/PassManager/Passes.def
+++ b/include/swift/SILOptimizer/PassManager/Passes.def
@@ -133,8 +133,6 @@
      "High Level Loop invariant code motion")
 PASS(IVInfoPrinter, "iv-info-printer",
      "Display induction variable information")
-PASS(InOutDeshadowing, "inout-deshadow",
-     "Remove inout argument shadow variables")
 PASS(InstCount, "inst-count",
      "Count all instructions in the module using llvm Statistics")
 PASS(JumpThreadSimplifyCFG, "simplify-cfg",
@@ -176,6 +174,9 @@
      "profitable")
 PASS(NoReturnFolding, "noreturn-folding",
      "Add 'unreachable' after noreturn calls")
+PASS(OwnershipModelEliminator, "ownership-model-eliminator",
+     "Eliminate SIL ownership constructs that are not supported by the whole"
+     " compiler from the IR")
 PASS(RCIdentityDumper, "rc-id-dumper",
      "Dump the RCIdentity of all values in a function")
 // TODO: It makes no sense to have early inliner, late inliner, and
diff --git a/include/swift/SILOptimizer/Utils/Devirtualize.h b/include/swift/SILOptimizer/Utils/Devirtualize.h
index acf92bc..128d185 100644
--- a/include/swift/SILOptimizer/Utils/Devirtualize.h
+++ b/include/swift/SILOptimizer/Utils/Devirtualize.h
@@ -55,6 +55,8 @@
 DevirtualizationResult tryDevirtualizeClassMethod(FullApplySite AI,
                                                   SILValue ClassInstance);
 DevirtualizationResult tryDevirtualizeWitnessMethod(ApplySite AI); 
+/// Check if an upcast is legal.
+bool isLegalUpcast(SILType FromTy, SILType ToTy);
 }
 
 #endif
diff --git a/include/swift/SILOptimizer/Utils/PerformanceInlinerUtils.h b/include/swift/SILOptimizer/Utils/PerformanceInlinerUtils.h
new file mode 100644
index 0000000..dff81a4
--- /dev/null
+++ b/include/swift/SILOptimizer/Utils/PerformanceInlinerUtils.h
@@ -0,0 +1,424 @@
+//===--- PerformanceInlinerUtils.h - Common performance inliner utils.  ---===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+#include "swift/SIL/SILInstruction.h"
+#include "swift/SIL/Projection.h"
+#include "swift/SIL/InstructionUtils.h"
+#include "swift/SILOptimizer/Analysis/ColdBlockInfo.h"
+#include "swift/SILOptimizer/Analysis/DominanceAnalysis.h"
+#include "swift/SILOptimizer/Analysis/FunctionOrder.h"
+#include "swift/SILOptimizer/Analysis/LoopAnalysis.h"
+#include "swift/SILOptimizer/Utils/ConstantFolding.h"
+#include "swift/SILOptimizer/Utils/SILInliner.h"
+#include "llvm/ADT/SmallVector.h"
+
+
+using namespace swift;
+
+//===----------------------------------------------------------------------===//
+//                               ConstantTracker
+//===----------------------------------------------------------------------===//
+
+// Tracks constants in the caller and callee to get an estimation of what
+// values get constant if the callee is inlined.
+// This can be seen as a "simulation" of several optimizations: SROA, mem2reg
+// and constant propagation.
+// Note that this is only a simplified model and not correct in all cases.
+// For example aliasing information is not taken into account.
+class ConstantTracker {
+
+  // Represents a value in integer constant evaluation.
+  struct IntConst {
+    IntConst() : isValid(false), isFromCaller(false) { }
+
+    IntConst(const APInt &value, bool isFromCaller) :
+    value(value), isValid(true), isFromCaller(isFromCaller) { }
+
+    // The actual value.
+    APInt value;
+
+    // True if the value is valid, i.e. could be evaluated to a constant.
+    bool isValid;
+
+    // True if the value is only valid, because a constant is passed to the
+    // callee. False if constant propagation could do the same job inside the
+    // callee without inlining it.
+    bool isFromCaller;
+  };
+  
+  // Links between loaded and stored values.
+  // The key is a load instruction, the value is the corresponding store
+  // instruction which stores the loaded value. Both, key and value can also
+  // be copy_addr instructions.
+  llvm::DenseMap<SILInstruction *, SILInstruction *> links;
+  
+  // The current stored values at memory addresses.
+  // The key is the base address of the memory (after skipping address
+  // projections). The value are store (or copy_addr) instructions, which
+  // store the current value.
+  // This is only an estimation, because e.g. it does not consider potential
+  // aliasing.
+  llvm::DenseMap<SILValue, SILInstruction *> memoryContent;
+  
+  // Cache for evaluated constants.
+  llvm::SmallDenseMap<BuiltinInst *, IntConst> constCache;
+
+  // The caller/callee function which is tracked.
+  SILFunction *F;
+  
+  // The constant tracker of the caller function (null if this is the
+  // tracker of the callee).
+  ConstantTracker *callerTracker;
+  
+  // The apply instruction in the caller (null if this is the tracker of the
+  // callee).
+  FullApplySite AI;
+  
+  // Walks through address projections and (optionally) collects them.
+  // Returns the base address, i.e. the first address which is not a
+  // projection.
+  SILValue scanProjections(SILValue addr,
+                           SmallVectorImpl<Projection> *Result = nullptr);
+  
+  // Get the stored value for a load. The loadInst can be either a real load
+  // or a copy_addr.
+  SILValue getStoredValue(SILInstruction *loadInst,
+                          ProjectionPath &projStack);
+
+  // Gets the parameter in the caller for a function argument.
+  SILValue getParam(SILValue value) {
+    if (SILArgument *arg = dyn_cast<SILArgument>(value)) {
+      if (AI && arg->isFunctionArg() && arg->getFunction() == F) {
+        // Continue at the caller.
+        return AI.getArgument(arg->getIndex());
+      }
+    }
+    return SILValue();
+  }
+  
+  SILInstruction *getMemoryContent(SILValue addr) {
+    // The memory content can be stored in this ConstantTracker or in the
+    // caller's ConstantTracker.
+    SILInstruction *storeInst = memoryContent[addr];
+    if (storeInst)
+      return storeInst;
+    if (callerTracker)
+      return callerTracker->getMemoryContent(addr);
+    return nullptr;
+  }
+  
+  // Gets the estimated definition of a value.
+  SILInstruction *getDef(SILValue val, ProjectionPath &projStack);
+
+  // Gets the estimated integer constant result of a builtin.
+  IntConst getBuiltinConst(BuiltinInst *BI, int depth);
+  
+public:
+  
+  // Constructor for the caller function.
+  ConstantTracker(SILFunction *function) :
+    F(function), callerTracker(nullptr), AI()
+  { }
+  
+  // Constructor for the callee function.
+  ConstantTracker(SILFunction *function, ConstantTracker *caller,
+                  FullApplySite callerApply) :
+     F(function), callerTracker(caller), AI(callerApply)
+  { }
+  
+  void beginBlock() {
+    // Currently we don't do any sophisticated dataflow analysis, so we keep
+    // the memoryContent alive only for a single block.
+    memoryContent.clear();
+  }
+
+  // Must be called for each instruction visited in dominance order.
+  void trackInst(SILInstruction *inst);
+  
+  // Gets the estimated definition of a value.
+  SILInstruction *getDef(SILValue val) {
+    ProjectionPath projStack(val->getType());
+    return getDef(val, projStack);
+  }
+  
+  // Gets the estimated definition of a value if it is in the caller.
+  SILInstruction *getDefInCaller(SILValue val) {
+    SILInstruction *def = getDef(val);
+    if (def && def->getFunction() != F)
+      return def;
+    return nullptr;
+  }
+
+  bool isStackAddrInCaller(SILValue val) {
+    if (SILValue Param = getParam(stripAddressProjections(val))) {
+      return isa<AllocStackInst>(stripAddressProjections(Param));
+    }
+    return false;
+  }
+
+  // Gets the estimated integer constant of a value.
+  IntConst getIntConst(SILValue val, int depth = 0);
+
+  SILBasicBlock *getTakenBlock(TermInst *term);
+};
+
+//===----------------------------------------------------------------------===//
+//                           Shortest path analysis
+//===----------------------------------------------------------------------===//
+
+/// Computes the length of the shortest path through a block in a scope.
+///
+/// A scope is either a loop or the whole function. The "length" is an
+/// estimation of the execution time. For example if the shortest path of a
+/// block B is N, it means that the execution time of the scope (either
+/// function or a single loop iteration), when execution includes the block, is
+/// at least N, regardless of what branches are taken.
+///
+/// The shortest path of a block is the sum of the shortest path from the scope
+/// entry and the shortest path to the scope exit.
+class ShortestPathAnalysis {
+public:
+  enum {
+    /// We assume that cold block take very long to execute.
+    ColdBlockLength = 1000,
+
+    /// Our assumption on how many times a loop is executed.
+    LoopCount = 10,
+
+    /// To keep things simple we only analyse up to this number of nested loops.
+    MaxNumLoopLevels = 4,
+
+    /// The "weight" for the benefit which a single loop nest gives.
+    SingleLoopWeight = 4,
+
+    /// Pretty large but small enough to add something without overflowing.
+    InitialDist = (1 << 29)
+  };
+
+  /// A weight for an inlining benefit.
+  class Weight {
+    /// How long does it take to execute the scope (either loop or the whole
+    /// function) of the call to inline? The larger it is the less important it
+    /// is to inline.
+    int ScopeLength;
+
+    /// Represents the loop nest. The larger it is the more important it is to
+    /// inline
+    int LoopWeight;
+
+    friend class ShortestPathAnalysis;
+
+  public:
+    Weight(int ScopeLength, int LoopWeight) : ScopeLength(ScopeLength),
+                                              LoopWeight(LoopWeight) { }
+
+    Weight(const Weight &RHS, int AdditionalLoopWeight) :
+      Weight(RHS.ScopeLength, RHS.LoopWeight + AdditionalLoopWeight) { }
+
+    Weight() : ScopeLength(-1), LoopWeight(0) {
+      assert(!isValid());
+    }
+
+    bool isValid() const { return ScopeLength >= 0; }
+
+    /// Updates the \p Benefit by weighting the \p Importance.
+    void updateBenefit(int &Benefit, int Importance) const;
+
+#ifndef NDEBUG
+    friend raw_ostream &operator<<(raw_ostream &os, const Weight &W) {
+      os << W.LoopWeight << '/' << W.ScopeLength;
+      return os;
+    }
+#endif
+  };
+
+private:
+  /// The distances for a block in it's scope (either loop or function).
+  struct Distances {
+    /// The shortest distance from the scope entry to the block entry.
+    int DistFromEntry = InitialDist;
+
+    /// The shortest distance from the block entry to the scope exit.
+    int DistToExit = InitialDist;
+
+    /// Additional length to account for loop iterations. It's != 0 for loop
+    /// headers (or loop predecessors).
+    int LoopHeaderLength = 0;
+  };
+
+  /// Holds the distance information for a block in all it's scopes, i.e. in all
+  /// its containing loops and the function itself.
+  struct BlockInfo {
+  private:
+    /// Distances for all scopes. Element 0 refers to the function, elements
+    /// > 0 to loops.
+    Distances Dists[MaxNumLoopLevels];
+  public:
+    /// The length of the block itself.
+    int Length = 0;
+
+    /// Returns the distances for the loop with nesting level \p LoopDepth.
+    Distances &getDistances(int LoopDepth) {
+      assert(LoopDepth >= 0 && LoopDepth < MaxNumLoopLevels);
+      return Dists[LoopDepth];
+    }
+
+    /// Returns the length including the LoopHeaderLength for a given
+    /// \p LoopDepth.
+    int getLength(int LoopDepth) {
+      return Length + getDistances(LoopDepth).LoopHeaderLength;
+    }
+
+    /// Returns the length of the shortest path of this block in the loop with
+    /// nesting level \p LoopDepth.
+    int getScopeLength(int LoopDepth) {
+      const Distances &D = getDistances(LoopDepth);
+      return D.DistFromEntry + D.DistToExit;
+    }
+  };
+
+  SILFunction *F;
+  SILLoopInfo *LI;
+  llvm::DenseMap<const SILBasicBlock *, BlockInfo *> BlockInfos;
+  std::vector<BlockInfo> BlockInfoStorage;
+
+  BlockInfo *getBlockInfo(const SILBasicBlock *BB) {
+    BlockInfo *BI = BlockInfos[BB];
+    assert(BI);
+    return BI;
+  }
+
+  // Utility functions to make the template solveDataFlow compilable for a block
+  // list containing references _and_ a list containing pointers.
+
+  const SILBasicBlock *getBlock(const SILBasicBlock *BB) { return BB; }
+  const SILBasicBlock *getBlock(const SILBasicBlock &BB) { return &BB; }
+
+  /// Returns the minimum distance from all predecessor blocks of \p BB.
+  int getEntryDistFromPreds(const SILBasicBlock *BB, int LoopDepth);
+
+  /// Returns the minimum distance from all successor blocks of \p BB.
+  int getExitDistFromSuccs(const SILBasicBlock *BB, int LoopDepth);
+
+  /// Computes the distances by solving the dataflow problem for all \p Blocks
+  /// in a scope.
+  template <typename BlockList>
+  void solveDataFlow(const BlockList &Blocks, int LoopDepth) {
+    bool Changed = false;
+
+    // Compute the distances from the entry block.
+    do {
+      Changed = false;
+      for (auto &Block : Blocks) {
+        const SILBasicBlock *BB = getBlock(Block);
+        BlockInfo *BBInfo = getBlockInfo(BB);
+        int DistFromEntry = getEntryDistFromPreds(BB, LoopDepth);
+        Distances &BBDists = BBInfo->getDistances(LoopDepth);
+        if (DistFromEntry < BBDists.DistFromEntry) {
+          BBDists.DistFromEntry = DistFromEntry;
+          Changed = true;
+        }
+      }
+    } while (Changed);
+
+    // Compute the distances to the exit block.
+    do {
+      Changed = false;
+      for (auto &Block : reverse(Blocks)) {
+        const SILBasicBlock *BB = getBlock(Block);
+        BlockInfo *BBInfo = getBlockInfo(BB);
+        int DistToExit =
+          getExitDistFromSuccs(BB, LoopDepth) + BBInfo->getLength(LoopDepth);
+        Distances &BBDists = BBInfo->getDistances(LoopDepth);
+        if (DistToExit < BBDists.DistToExit) {
+          BBDists.DistToExit = DistToExit;
+          Changed = true;
+        }
+      }
+    } while (Changed);
+  }
+
+  /// Analyze \p Loop and all its inner loops.
+  void analyzeLoopsRecursively(SILLoop *Loop, int LoopDepth);
+
+  void printFunction(llvm::raw_ostream &OS);
+
+  void printLoop(llvm::raw_ostream &OS, SILLoop *Loop, int LoopDepth);
+
+  void printBlockInfo(llvm::raw_ostream &OS, SILBasicBlock *BB, int LoopDepth);
+
+public:
+  ShortestPathAnalysis(SILFunction *F, SILLoopInfo *LI) : F(F), LI(LI) { }
+
+  bool isValid() const { return !BlockInfos.empty(); }
+
+  /// Compute the distances. The function \p getApplyLength returns the length
+  /// of a function call.
+  template <typename Func>
+  void analyze(ColdBlockInfo &CBI, Func getApplyLength) {
+    assert(!isValid());
+
+    BlockInfoStorage.resize(F->size());
+
+    // First step: compute the length of the blocks.
+    unsigned BlockIdx = 0;
+    for (SILBasicBlock &BB : *F) {
+      int Length = 0;
+      if (CBI.isCold(&BB)) {
+        Length = ColdBlockLength;
+      } else {
+        for (SILInstruction &I : BB) {
+          if (auto FAS = FullApplySite::isa(&I)) {
+            Length += getApplyLength(FAS);
+          } else {
+            Length += (int)instructionInlineCost(I);
+          }
+        }
+      }
+      BlockInfo *BBInfo = &BlockInfoStorage[BlockIdx++];
+      BlockInfos[&BB] = BBInfo;
+      BBInfo->Length = Length;
+
+      // Initialize the distances for the entry and exit blocks, used when
+      // computing the distances for the function itself.
+      if (&BB == &F->front())
+        BBInfo->getDistances(0).DistFromEntry = 0;
+
+      if (isa<ReturnInst>(BB.getTerminator()))
+        BBInfo->getDistances(0).DistToExit = Length;
+      else if (isa<ThrowInst>(BB.getTerminator()))
+        BBInfo->getDistances(0).DistToExit = Length + ColdBlockLength;
+    }
+    // Compute the distances for all loops in the function.
+    for (SILLoop *Loop : *LI) {
+      analyzeLoopsRecursively(Loop, 1);
+    }
+    // Compute the distances for the function itself.
+    solveDataFlow(F->getBlocks(), 0);
+  }
+
+  /// Returns the length of the shortest path of the block \p BB in the loop
+  /// with nesting level \p LoopDepth. If \p LoopDepth is 0 ir returns the
+  /// shortest path in the function.
+  int getScopeLength(SILBasicBlock *BB, int LoopDepth) {
+    assert(BB->getParent() == F);
+    if (LoopDepth >= MaxNumLoopLevels)
+      LoopDepth = MaxNumLoopLevels - 1;
+    return getBlockInfo(BB)->getScopeLength(LoopDepth);
+  }
+
+  /// Returns the weight of block \p BB also considering the \p CallerWeight
+  /// which is the weight of the call site's block in the caller.
+  Weight getWeight(SILBasicBlock *BB, Weight CallerWeight);
+
+  void dump();
+};
\ No newline at end of file
diff --git a/include/swift/Serialization/DeclTypeRecordNodes.def b/include/swift/Serialization/DeclTypeRecordNodes.def
index d5c1a03..f930c6f 100644
--- a/include/swift/Serialization/DeclTypeRecordNodes.def
+++ b/include/swift/Serialization/DeclTypeRecordNodes.def
@@ -169,6 +169,7 @@
 TRAILING_INFO(GENERIC_PARAM)
 TRAILING_INFO(GENERIC_REQUIREMENT)
 TRAILING_INFO(GENERIC_ENVIRONMENT)
+TRAILING_INFO(SIL_GENERIC_ENVIRONMENT)
 
 OTHER(LOCAL_DISCRIMINATOR, 248)
 OTHER(PRIVATE_DISCRIMINATOR, 249)
diff --git a/include/swift/Serialization/ModuleFormat.h b/include/swift/Serialization/ModuleFormat.h
index 3fa3816..37d074c 100644
--- a/include/swift/Serialization/ModuleFormat.h
+++ b/include/swift/Serialization/ModuleFormat.h
@@ -54,7 +54,7 @@
 /// in source control, you should also update the comment to briefly
 /// describe what change you made. The content of this comment isn't important;
 /// it just ensures a conflict if two people change the module format.
-const uint16_t VERSION_MINOR = 273; // Last change: partial_apply ownership control
+const uint16_t VERSION_MINOR = 277; // Last change: closure SIL @convention
 
 using DeclID = PointerEmbeddedInt<unsigned, 31>;
 using DeclIDField = BCFixed<31>;
@@ -140,6 +140,7 @@
   Method = FirstSIL,
   ObjCMethod,
   WitnessMethod,
+  Closure,
 };
 using SILFunctionTypeRepresentationField = BCFixed<4>;
 
@@ -769,12 +770,11 @@
 
   using GenericTypeParamDeclLayout = BCRecordLayout<
     GENERIC_TYPE_PARAM_DECL,
-    IdentifierIDField, // name
-    DeclContextIDField,// context decl
-    BCFixed<1>,  // implicit flag
-    BCVBR<4>,    // depth
-    BCVBR<4>,    // index
-    BCArray<TypeIDField> // inherited types
+    IdentifierIDField,  // name
+    DeclContextIDField, // context decl
+    BCFixed<1>,         // implicit flag
+    BCVBR<4>,           // depth
+    BCVBR<4>            // index
   >;
 
   using AssociatedTypeDeclLayout = BCRecordLayout<
@@ -1095,21 +1095,16 @@
     DeclIDField // Typealias
   >;
 
-  // Subtlety here: GENERIC_ENVIRONMENT is serialized for both Decls and
-  // SILFunctions.
-  //
-  // For Decls, the interface type is non-canonical, so it points back
-  // to the GenericParamListDecl. This allows us to use the serialized
-  // GENERIC_ENVIRONMENT records to form the GenericSignature, as well.
-  // The type is canonicalized when forming the actual GenericEnvironment
-  // instance.
-  //
-  // For SILFunctions, the interface type below is always canonical,
-  // since SILFunctions never point back to any original
-  // GenericTypeParamDecls.
   using GenericEnvironmentLayout = BCRecordLayout<
     GENERIC_ENVIRONMENT,
-    TypeIDField,                 // interface type
+    TypeIDField,                 // sugared interface type
+    TypeIDField                  // contextual type
+  >;
+
+  using SILGenericEnvironmentLayout = BCRecordLayout<
+    SIL_GENERIC_ENVIRONMENT,
+    IdentifierIDField,           // generic parameter name
+    TypeIDField,                 // canonical interface type
     TypeIDField                  // contextual type
   >;
 
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 4d5c417..1264c83 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -3382,7 +3382,11 @@
 
 DependentMemberType *DependentMemberType::get(Type base, Identifier name) {
   auto properties = base->getRecursiveProperties();
-  properties |= RecursiveTypeProperties::HasTypeParameter;
+  // FIXME: The specific introduction of HasTypeParameter here is due to
+  // type witness inference. See the use of mapErrorTypeToOriginal in
+  // TypeCheckProtocol.cpp.
+  if (!properties.hasTypeVariable())
+    properties |= RecursiveTypeProperties::HasTypeParameter;
   auto arena = getArena(properties);
 
   llvm::PointerUnion<Identifier, AssociatedTypeDecl *> stored(name);
@@ -3400,7 +3404,11 @@
 DependentMemberType *DependentMemberType::get(Type base,
                                               AssociatedTypeDecl *assocType) {
   auto properties = base->getRecursiveProperties();
-  properties |= RecursiveTypeProperties::HasTypeParameter;
+  // FIXME: The specific introduction of HasTypeParameter here is due to
+  // type witness inference. See the use of mapErrorTypeToOriginal in
+  // TypeCheckProtocol.cpp.
+  if (!properties.hasTypeVariable())
+    properties |= RecursiveTypeProperties::HasTypeParameter;
   auto arena = getArena(properties);
 
   llvm::PointerUnion<Identifier, AssociatedTypeDecl *> stored(assocType);
@@ -3559,8 +3567,10 @@
 
 GenericEnvironment *
 GenericEnvironment::get(ASTContext &ctx,
+                        ArrayRef<GenericTypeParamType *> genericParamTypes,
                         TypeSubstitutionMap interfaceToArchetypeMap) {
-  return new (ctx) GenericEnvironment(interfaceToArchetypeMap);
+  return new (ctx) GenericEnvironment(genericParamTypes,
+                                      interfaceToArchetypeMap);
 }
 
 void DeclName::CompoundDeclName::Profile(llvm::FoldingSetNodeID &id,
diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp
index 03a8bda..660c18f 100644
--- a/lib/AST/ASTDumper.cpp
+++ b/lib/AST/ASTDumper.cpp
@@ -1215,8 +1215,11 @@
       for (auto *Query : C.getAvailability()->getQueries()) {
         OS << '\n';
         switch (Query->getKind()) {
-        case AvailabilitySpecKind::VersionConstraint:
-          cast<VersionConstraintAvailabilitySpec>(Query)->print(OS, Indent + 2);
+        case AvailabilitySpecKind::PlatformVersionConstraint:
+          cast<PlatformVersionConstraintAvailabilitySpec>(Query)->print(OS, Indent + 2);
+          break;
+        case AvailabilitySpecKind::LanguageVersionConstraint:
+          cast<LanguageVersionConstraintAvailabilitySpec>(Query)->print(OS, Indent + 2);
           break;
         case AvailabilitySpecKind::OtherPlatform:
           cast<OtherPlatformAvailabilitySpec>(Query)->print(OS, Indent + 2);
@@ -2753,22 +2756,25 @@
       OS << ")";
     }
 
+    void printMetatypeRepresentation(MetatypeRepresentation representation) {
+      OS << " ";
+      switch (representation) {
+      case MetatypeRepresentation::Thin:
+        OS << "@thin";
+        break;
+      case MetatypeRepresentation::Thick:
+        OS << "@thick";
+        break;
+      case MetatypeRepresentation::ObjC:
+        OS << "@objc";
+        break;
+      }
+    }
+
     void visitMetatypeType(MetatypeType *T, StringRef label) {
       printCommon(T, label, "metatype_type");
-      if (T->hasRepresentation()) {
-        OS << " ";
-        switch (T->getRepresentation()) {
-        case MetatypeRepresentation::Thin:
-          OS << "@thin";
-          break;
-        case MetatypeRepresentation::Thick:
-          OS << "@thick";
-          break;
-        case MetatypeRepresentation::ObjC:
-          OS << "@objc";
-          break;
-        }
-      }
+      if (T->hasRepresentation())
+        printMetatypeRepresentation(T->getRepresentation());
       printRec(T->getInstanceType());
       OS << ")";
     }
@@ -2776,6 +2782,8 @@
     void visitExistentialMetatypeType(ExistentialMetatypeType *T,
                                       StringRef label) {
       printCommon(T, label, "existential_metatype_type");
+      if (T->hasRepresentation())
+        printMetatypeRepresentation(T->getRepresentation());
       printRec(T->getInstanceType());
       OS << ")";
     }
@@ -2903,6 +2911,10 @@
       case SILFunctionType::Representation::WitnessMethod:
         printField("representation", "witness_method");
         break;
+
+      case SILFunctionType::Representation::Closure:
+        printField("representation", "closure");
+        break;
       }
 
       printFlag(T->isAutoClosure(), "autoclosure");
@@ -3082,4 +3094,7 @@
     pair.first->dump();
     pair.second->dump();
   }
+  llvm::errs() << "Generic parameters:\n";
+  for (auto paramTy : getGenericParams())
+    paramTy->dump();
 }
diff --git a/lib/AST/ASTPrinter.cpp b/lib/AST/ASTPrinter.cpp
index 82302f6..4cdb4e7 100644
--- a/lib/AST/ASTPrinter.cpp
+++ b/lib/AST/ASTPrinter.cpp
@@ -1448,8 +1448,8 @@
       D->getAttrs().isUnavailable(D->getASTContext()))
     return false;
 
-  // Skip stub declarations used for prior variants of Swift.
-  if (D->getAttrs().isUnavailableInCurrentSwift())
+  // Skip stub declarations used for prior or later variants of Swift.
+  if (D->getAttrs().isUnavailableInSwiftVersion())
     return false;
 
   if (Options.ExplodeEnumCaseDecls) {
@@ -3418,14 +3418,6 @@
     Printer.printTypePre(TypeLoc::withoutLoc(T));
     SWIFT_DEFER { Printer.printTypePost(TypeLoc::withoutLoc(T)); };
 
-    // If we have an alternate name for this type, use it.
-    if (Options.AlternativeTypeNames) {
-      auto found = Options.AlternativeTypeNames->find(T.getCanonicalTypeOrNull());
-      if (found != Options.AlternativeTypeNames->end()) {
-        Printer << found->second.str();
-        return;
-      }
-    }
     super::visit(T);
   }
 
@@ -3724,6 +3716,9 @@
       case SILFunctionType::Representation::WitnessMethod:
         Printer << "witness_method";
         break;
+      case SILFunctionType::Representation::Closure:
+        Printer << "closure";
+        break;
       }
       Printer << ")";
       Printer.printStructurePost(PrintStructureKind::BuiltinAttribute);
@@ -3741,7 +3736,6 @@
       Printer.callPrintStructurePre(PrintStructureKind::BuiltinAttribute);
       Printer.printAttrName("@convention");
       Printer << "(";
-      // TODO: coalesce into a single convention attribute.
       switch (info.getRepresentation()) {
       case SILFunctionType::Representation::Thick:
         llvm_unreachable("thick is not printed");
@@ -3763,6 +3757,9 @@
       case SILFunctionType::Representation::WitnessMethod:
         Printer << "witness_method";
         break;
+      case SILFunctionType::Representation::Closure:
+        Printer << "closure";
+        break;
       }
       Printer << ")";
       Printer.printStructurePost(PrintStructureKind::BuiltinAttribute);
@@ -3992,6 +3989,14 @@
         Printer << ".";
       }
 
+      if (Options.AlternativeTypeNames) {
+        auto found = Options.AlternativeTypeNames->find(T->getCanonicalType());
+        if (found != Options.AlternativeTypeNames->end()) {
+          Printer << found->second.str();
+          return;
+        }
+      }
+
       if (T->getName().empty())
         Printer << "<anonymous>";
       else {
@@ -4012,9 +4017,21 @@
   }
 
   void visitGenericTypeParamType(GenericTypeParamType *T) {
-    // Substitute a context archetype if we have context generic params.
-    if (Options.GenericEnv)
-      return visit(Options.GenericEnv->mapTypeIntoContext(T));
+    if (T->getDecl() == nullptr) {
+      // If we have an alternate name for this type, use it.
+      if (Options.AlternativeTypeNames) {
+        auto found = Options.AlternativeTypeNames->find(T->getCanonicalType());
+        if (found != Options.AlternativeTypeNames->end()) {
+          Printer << found->second.str();
+          return;
+        }
+      }
+
+      // When printing SIL types, use a generic environment to map them from
+      // canonical types to sugared types.
+      if (Options.GenericEnv)
+        T = Options.GenericEnv->getSugaredType(T);
+    }
 
     auto Name = T->getName();
     if (Name.empty())
diff --git a/lib/AST/ASTVerifier.cpp b/lib/AST/ASTVerifier.cpp
index 89c0187..a27832d 100644
--- a/lib/AST/ASTVerifier.cpp
+++ b/lib/AST/ASTVerifier.cpp
@@ -1487,9 +1487,7 @@
       /// Retrieve the ith element type from the resulting tuple type.
       auto getOuterElementType = [&](unsigned i) -> Type {
         if (!TT) {
-          if (auto parenTy = dyn_cast<ParenType>(E->getType().getPointer()))
-            return parenTy->getUnderlyingType();
-          return E->getType();
+          return E->getType()->getWithoutParens();
         }
 
         return TT->getElementType(i);
diff --git a/lib/AST/ArchetypeBuilder.cpp b/lib/AST/ArchetypeBuilder.cpp
index d7169fa..a301d62 100644
--- a/lib/AST/ArchetypeBuilder.cpp
+++ b/lib/AST/ArchetypeBuilder.cpp
@@ -2096,9 +2096,14 @@
   });
 }
 
-GenericSignature *ArchetypeBuilder::getGenericSignature(
-    ArrayRef<GenericTypeParamType *> genericParamTypes) {
+GenericSignature *ArchetypeBuilder::getGenericSignature() {
   // Collect the requirements placed on the generic parameter types.
+  SmallVector<GenericTypeParamType *, 4> genericParamTypes;
+  for (auto pair : Impl->PotentialArchetypes) {
+    auto paramTy = pair.second->getGenericParam();
+    genericParamTypes.push_back(paramTy);
+  }
+
   SmallVector<Requirement, 4> requirements;
   collectRequirements(*this, genericParamTypes, requirements);
 
@@ -2106,17 +2111,16 @@
   return sig;
 }
 
-GenericEnvironment *ArchetypeBuilder::getGenericEnvironment(
-    ArrayRef<GenericTypeParamType *> genericParamTypes) {
+GenericEnvironment *ArchetypeBuilder::getGenericEnvironment() {
+  SmallVector<GenericTypeParamType *, 4> genericParamTypes;
   TypeSubstitutionMap interfaceToArchetypeMap;
 
-  for (auto paramTy : genericParamTypes) {
-    auto known = Impl->PotentialArchetypes.find(
-                   GenericTypeParamKey::forType(paramTy));
-    assert(known != Impl->PotentialArchetypes.end());
+  for (auto pair : Impl->PotentialArchetypes) {
+    auto paramTy = pair.second->getGenericParam();
+    genericParamTypes.push_back(paramTy);
 
-    auto archetypeTy = known->second->getType(*this).getAsArchetype();
-    auto concreteTy = known->second->getType(*this).getAsConcreteType();
+    auto archetypeTy = pair.second->getType(*this).getAsArchetype();
+    auto concreteTy = pair.second->getType(*this).getAsConcreteType();
     if (archetypeTy)
       interfaceToArchetypeMap[paramTy] = archetypeTy;
     else if (concreteTy)
@@ -2125,6 +2129,7 @@
       llvm_unreachable("broken generic parameter");
   }
 
-  return GenericEnvironment::get(Context, interfaceToArchetypeMap);
+  return GenericEnvironment::get(Context, genericParamTypes,
+                                 interfaceToArchetypeMap);
 }
 
diff --git a/lib/AST/Attr.cpp b/lib/AST/Attr.cpp
index f324f90..6bac775 100644
--- a/lib/AST/Attr.cpp
+++ b/lib/AST/Attr.cpp
@@ -85,15 +85,24 @@
   llvm_unreachable("bad DeclKind");
 }
 
-bool DeclAttributes::isUnavailableInCurrentSwift() const {
+bool
+DeclAttributes::isUnavailableInSwiftVersion(
+  const version::Version &effectiveVersion) const {
+  clang::VersionTuple vers = effectiveVersion;
   for (auto attr : *this) {
     if (auto available = dyn_cast<AvailableAttr>(attr)) {
       if (available->isInvalid())
         continue;
 
-      if (available->getUnconditionalAvailability() ==
-            UnconditionalAvailabilityKind::UnavailableInCurrentSwift)
-        return true;
+      if (available->getPlatformAgnosticAvailability() ==
+          PlatformAgnosticAvailabilityKind::SwiftVersionSpecific) {
+        if (available->Introduced.hasValue() &&
+            available->Introduced.getValue() > vers)
+          return true;
+        if (available->Obsoleted.hasValue() &&
+            available->Obsoleted.getValue() <= vers)
+          return true;
+      }
     }
   }
 
@@ -110,21 +119,21 @@
         continue;
 
       // If this attribute doesn't apply to the active platform, we're done.
-      if (!AvAttr->isActivePlatform(ctx))
+      if (!AvAttr->isActivePlatform(ctx) &&
+          !AvAttr->isLanguageVersionSpecific())
         continue;
 
       // Unconditional unavailable.
       if (AvAttr->isUnconditionallyUnavailable())
         return AvAttr;
 
-      auto MinVersion = ctx.LangOpts.getMinPlatformVersion();
-      switch (AvAttr->getMinVersionAvailability(MinVersion)) {
-      case MinVersionComparison::Available:
-      case MinVersionComparison::PotentiallyUnavailable:
+      switch (AvAttr->getVersionAvailability(ctx)) {
+      case AvailableVersionComparison::Available:
+      case AvailableVersionComparison::PotentiallyUnavailable:
         break;
 
-      case MinVersionComparison::Obsoleted:
-      case MinVersionComparison::Unavailable:
+      case AvailableVersionComparison::Obsoleted:
+      case AvailableVersionComparison::Unavailable:
         conditional = AvAttr;
         break;
       }
@@ -140,7 +149,8 @@
       if (AvAttr->isInvalid())
         continue;
 
-      if (!AvAttr->isActivePlatform(ctx))
+      if (!AvAttr->isActivePlatform(ctx) &&
+          !AvAttr->isLanguageVersionSpecific())
         continue;
 
       // Unconditional deprecated.
@@ -151,7 +161,10 @@
       if (!DeprecatedVersion.hasValue())
         continue;
 
-      auto MinVersion = ctx.LangOpts.getMinPlatformVersion();
+      clang::VersionTuple MinVersion =
+        AvAttr->isLanguageVersionSpecific() ?
+        ctx.LangOpts.EffectiveLanguageVersion :
+        ctx.LangOpts.getMinPlatformVersion();
 
       // We treat the declaration as deprecated if it is deprecated on
       // all deployment targets.
@@ -197,7 +210,8 @@
   if (!AvailAttr->Rename.empty())
     return false;
 
-  if (AvailAttr->Unconditional != UnconditionalAvailabilityKind::None)
+  if (AvailAttr->PlatformAgnostic != PlatformAgnosticAvailabilityKind::None &&
+      !AvailAttr->isLanguageVersionSpecific())
     return false;
 
   return true;
@@ -216,15 +230,22 @@
   assert(!Attrs.empty());
 
   Printer << "@available(";
-  for (auto *DA : Attrs) {
-    auto *AvailAttr = cast<AvailableAttr>(DA);
-    assert(AvailAttr->Introduced.hasValue());
-
-    Printer << platformString(AvailAttr->Platform) << " "
-            << AvailAttr->Introduced.getValue().getAsString() << ", ";
+  auto FirstAvail = dyn_cast<AvailableAttr>(Attrs[0]);
+  if (Attrs.size() == 1 &&
+      FirstAvail->isLanguageVersionSpecific()) {
+    assert(FirstAvail->Introduced.hasValue());
+    Printer << "swift "
+            << FirstAvail->Introduced.getValue().getAsString()
+            << ")";
+  } else {
+    for (auto *DA : Attrs) {
+      auto *AvailAttr = cast<AvailableAttr>(DA);
+      assert(AvailAttr->Introduced.hasValue());
+      Printer << platformString(AvailAttr->Platform) << " "
+              << AvailAttr->Introduced.getValue().getAsString() << ", ";
+    }
+    Printer << "*)";
   }
-
-  Printer << "*)";
   Printer.printNewline();
 }
 
@@ -357,7 +378,10 @@
     Printer.printAttrName("@available");
     Printer << "(";
     auto Attr = cast<AvailableAttr>(this);
-    Printer << Attr->platformString();
+    if (Attr->isLanguageVersionSpecific())
+      Printer << "swift";
+    else
+      Printer << Attr->platformString();
 
     if (Attr->isUnconditionallyUnavailable())
       Printer << ", unavailable";
@@ -379,8 +403,8 @@
     // the generated interface.
     if (!Attr->Message.empty())
       Printer << ", message: \"" << Attr->Message << "\"";
-    else if (Attr->getUnconditionalAvailability()
-               == UnconditionalAvailabilityKind::UnavailableInSwift)
+    else if (Attr->getPlatformAgnosticAvailability()
+               == PlatformAgnosticAvailabilityKind::UnavailableInSwift)
       Printer << ", message: \"Not available in Swift\"";
 
     Printer << ")";
@@ -643,65 +667,95 @@
 }
 
 AvailableAttr *
-AvailableAttr::createUnconditional(ASTContext &C,
+AvailableAttr::createPlatformAgnostic(ASTContext &C,
                                    StringRef Message,
                                    StringRef Rename,
-                                   UnconditionalAvailabilityKind Reason) {
-  assert(Reason != UnconditionalAvailabilityKind::None);
+                                   PlatformAgnosticAvailabilityKind Kind,
+                                   clang::VersionTuple Obsoleted) {
+  assert(Kind != PlatformAgnosticAvailabilityKind::None);
   clang::VersionTuple NoVersion;
+  if (Kind == PlatformAgnosticAvailabilityKind::SwiftVersionSpecific) {
+    assert(!Obsoleted.empty());
+  }
   return new (C) AvailableAttr(
     SourceLoc(), SourceRange(), PlatformKind::none, Message, Rename,
-    NoVersion, NoVersion, NoVersion, Reason, /* isImplicit */ false);
+    NoVersion, NoVersion, Obsoleted, Kind, /* isImplicit */ false);
 }
 
 bool AvailableAttr::isActivePlatform(const ASTContext &ctx) const {
   return isPlatformActive(Platform, ctx.LangOpts);
 }
 
+bool AvailableAttr::isLanguageVersionSpecific() const {
+  if (PlatformAgnostic ==
+      PlatformAgnosticAvailabilityKind::SwiftVersionSpecific)
+    {
+      assert(Platform == PlatformKind::none &&
+             (Introduced.hasValue() ||
+              Deprecated.hasValue() ||
+              Obsoleted.hasValue()));
+      return true;
+    }
+  return false;
+}
+
 bool AvailableAttr::isUnconditionallyUnavailable() const {
-  switch (Unconditional) {
-  case UnconditionalAvailabilityKind::None:
-  case UnconditionalAvailabilityKind::Deprecated:
+  switch (PlatformAgnostic) {
+  case PlatformAgnosticAvailabilityKind::None:
+  case PlatformAgnosticAvailabilityKind::Deprecated:
+  case PlatformAgnosticAvailabilityKind::SwiftVersionSpecific:
     return false;
 
-  case UnconditionalAvailabilityKind::Unavailable:
-  case UnconditionalAvailabilityKind::UnavailableInSwift:
-  case UnconditionalAvailabilityKind::UnavailableInCurrentSwift:
+  case PlatformAgnosticAvailabilityKind::Unavailable:
+  case PlatformAgnosticAvailabilityKind::UnavailableInSwift:
     return true;
   }
 }
 
 bool AvailableAttr::isUnconditionallyDeprecated() const {
-  switch (Unconditional) {
-  case UnconditionalAvailabilityKind::None:
-  case UnconditionalAvailabilityKind::Unavailable:
-  case UnconditionalAvailabilityKind::UnavailableInSwift:
-  case UnconditionalAvailabilityKind::UnavailableInCurrentSwift:
+  switch (PlatformAgnostic) {
+  case PlatformAgnosticAvailabilityKind::None:
+  case PlatformAgnosticAvailabilityKind::Unavailable:
+  case PlatformAgnosticAvailabilityKind::UnavailableInSwift:
+  case PlatformAgnosticAvailabilityKind::SwiftVersionSpecific:
     return false;
 
-  case UnconditionalAvailabilityKind::Deprecated:
+  case PlatformAgnosticAvailabilityKind::Deprecated:
     return true;
   }
 }
 
-MinVersionComparison AvailableAttr::getMinVersionAvailability(
-                       clang::VersionTuple minVersion) const {
+AvailableVersionComparison AvailableAttr::getVersionAvailability(
+  const ASTContext &ctx) const {
+
   // Unconditional unavailability.
   if (isUnconditionallyUnavailable())
-    return MinVersionComparison::Unavailable;
+    return AvailableVersionComparison::Unavailable;
 
-  // If this entity was obsoleted before or at the minimum platform version,
+  clang::VersionTuple queryVersion =
+    isLanguageVersionSpecific() ?
+    ctx.LangOpts.EffectiveLanguageVersion :
+    ctx.LangOpts.getMinPlatformVersion();
+
+  // If this entity was obsoleted before or at the query platform version,
   // consider it obsolete.
-  if (Obsoleted && *Obsoleted <= minVersion)
-    return MinVersionComparison::Obsoleted;
+  if (Obsoleted && *Obsoleted <= queryVersion)
+    return AvailableVersionComparison::Obsoleted;
 
-  // If this entity was introduced after the minimum platform version, it's
-  // availability can only be determined dynamically.
-  if (Introduced && *Introduced > minVersion)
-    return MinVersionComparison::PotentiallyUnavailable;
+  // If this entity was introduced after the query version and we're doing a
+  // platform comparison, true availability can only be determined dynamically;
+  // if we're doing a _language_ version check, the query version is a
+  // static requirement, so we treat "introduced later" as just plain
+  // unavailable.
+  if (Introduced && *Introduced > queryVersion) {
+    if (isLanguageVersionSpecific())
+      return AvailableVersionComparison::Unavailable;
+    else
+      return AvailableVersionComparison::PotentiallyUnavailable;
+  }
 
   // The entity is available.
-  return MinVersionComparison::Available;
+  return AvailableVersionComparison::Available;
 }
 
 const AvailableAttr *AvailableAttr::isUnavailable(const Decl *D) {
diff --git a/lib/AST/Availability.cpp b/lib/AST/Availability.cpp
index 238e6fb..2cdec50 100644
--- a/lib/AST/Availability.cpp
+++ b/lib/AST/Availability.cpp
@@ -27,8 +27,8 @@
 /// The inferred availability required to access a group of declarations
 /// on a single platform.
 struct InferredAvailability {
-  UnconditionalAvailabilityKind Unconditional
-    = UnconditionalAvailabilityKind::None;
+  PlatformAgnosticAvailabilityKind PlatformAgnostic
+    = PlatformAgnosticAvailabilityKind::None;
   
   Optional<clang::VersionTuple> Introduced;
   Optional<clang::VersionTuple> Deprecated;
@@ -61,10 +61,10 @@
 /// the attribute requires.
 static void mergeWithInferredAvailability(const AvailableAttr *Attr,
                                           InferredAvailability &Inferred) {
-  Inferred.Unconditional
-    = static_cast<UnconditionalAvailabilityKind>(
-      std::max(static_cast<unsigned>(Inferred.Unconditional),
-               static_cast<unsigned>(Attr->getUnconditionalAvailability())));
+  Inferred.PlatformAgnostic
+    = static_cast<PlatformAgnosticAvailabilityKind>(
+      std::max(static_cast<unsigned>(Inferred.PlatformAgnostic),
+               static_cast<unsigned>(Attr->getPlatformAgnosticAvailability())));
 
   // The merge of two introduction versions is the maximum of the two versions.
   mergeIntoInferredVersion(Attr->Introduced, Inferred.Introduced, std::max);
@@ -92,7 +92,7 @@
       SourceLoc(), SourceRange(), Platform,
       /*Message=*/StringRef(),
       /*Rename=*/StringRef(), Introduced, Deprecated, Obsoleted,
-      Inferred.Unconditional, /*Implicit=*/true);
+      Inferred.PlatformAgnostic, /*Implicit=*/true);
 }
 
 void AvailabilityInference::applyInferredAvailableAttrs(
@@ -128,7 +128,8 @@
   for (auto Attr : D->getAttrs()) {
     auto *AvailAttr = dyn_cast<AvailableAttr>(Attr);
     if (AvailAttr == nullptr || !AvailAttr->Introduced.hasValue() ||
-        !AvailAttr->isActivePlatform(Ctx)) {
+        !AvailAttr->isActivePlatform(Ctx) ||
+        AvailAttr->isLanguageVersionSpecific()) {
       continue;
     }
 
diff --git a/lib/AST/AvailabilitySpec.cpp b/lib/AST/AvailabilitySpec.cpp
index 4d4bcc5..bd69abb 100644
--- a/lib/AST/AvailabilitySpec.cpp
+++ b/lib/AST/AvailabilitySpec.cpp
@@ -22,8 +22,11 @@
 
 SourceRange AvailabilitySpec::getSourceRange() const {
   switch (getKind()) {
-  case AvailabilitySpecKind::VersionConstraint:
-    return cast<VersionConstraintAvailabilitySpec>(this)->getSourceRange();
+  case AvailabilitySpecKind::PlatformVersionConstraint:
+    return cast<PlatformVersionConstraintAvailabilitySpec>(this)->getSourceRange();
+
+ case AvailabilitySpecKind::LanguageVersionConstraint:
+   return cast<LanguageVersionConstraintAvailabilitySpec>(this)->getSourceRange();
 
   case AvailabilitySpecKind::OtherPlatform:
     return cast<OtherPlatformAvailabilitySpec>(this)->getSourceRange();
@@ -39,20 +42,31 @@
 }
 
 
-SourceRange VersionConstraintAvailabilitySpec::getSourceRange() const {
+SourceRange PlatformVersionConstraintAvailabilitySpec::getSourceRange() const {
   return SourceRange(PlatformLoc, VersionSrcRange.End);
 }
 
-void VersionConstraintAvailabilitySpec::print(raw_ostream &OS,
+void PlatformVersionConstraintAvailabilitySpec::print(raw_ostream &OS,
                                               unsigned Indent) const {
-  OS.indent(Indent) << '(' << "version_constraint_availability_spec"
+  OS.indent(Indent) << '(' << "platform_version_constraint_availability_spec"
                     << " platform='" << platformString(getPlatform()) << "'"
                     << " version='" << getVersion() << "'"
                     << ')';
 }
 
+SourceRange LanguageVersionConstraintAvailabilitySpec::getSourceRange() const {
+  return SourceRange(SwiftLoc, VersionSrcRange.End);
+}
+
+void LanguageVersionConstraintAvailabilitySpec::print(raw_ostream &OS,
+                                                      unsigned Indent) const {
+  OS.indent(Indent) << '(' << "language_version_constraint_availability_spec"
+                    << " version='" << getVersion() << "'"
+                    << ')';
+}
+
 void OtherPlatformAvailabilitySpec::print(raw_ostream &OS, unsigned Indent) const {
-  OS.indent(Indent) << '(' << "version_constraint_availability_spec"
+  OS.indent(Indent) << '(' << "other_constraint_availability_spec"
                     << " "
                     << ')';
 }
diff --git a/lib/AST/Builtins.cpp b/lib/AST/Builtins.cpp
index bd96055..f3ff973 100644
--- a/lib/AST/Builtins.cpp
+++ b/lib/AST/Builtins.cpp
@@ -205,7 +205,8 @@
   GenericSignature *Sig =
       GenericSignature::get(GenericParamTypes, requirements);
   GenericEnvironment *Env =
-      GenericEnvironment::get(Context, InterfaceToArchetypeMap);
+      GenericEnvironment::get(Context, GenericParamTypes,
+                              InterfaceToArchetypeMap);
 
   Type InterfaceType = GenericFunctionType::get(Sig, ArgParamType, ResType,
                                                 AnyFunctionType::ExtInfo());
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index 52370d3..b37d27d 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -471,7 +471,7 @@
     return clangDecl->isWeakImported();
   }
 
-  // FIXME: Implement using AvailableAttr::getMinVersionAvailability().
+  // FIXME: Implement using AvailableAttr::getVersionAvailability().
   return false;
 }
 
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 79fa4c6..24caff0 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -1314,18 +1314,32 @@
   return ::new(Buffer) SequenceExpr(elements);
 }
 
-SourceLoc TupleExpr::getStartLoc() const {
-  if (LParenLoc.isValid()) return LParenLoc;
-  if (getNumElements() == 0) return SourceLoc();
-  return getElement(0)->getStartLoc();
-}
-
-SourceLoc TupleExpr::getEndLoc() const {
-  if (hasTrailingClosure() || RParenLoc.isInvalid()) {
-    if (getNumElements() == 0) return SourceLoc();
-    return getElements().back()->getEndLoc();
+SourceRange TupleExpr::getSourceRange() const {
+  SourceLoc start = SourceLoc();
+  SourceLoc end = SourceLoc();
+  if (LParenLoc.isValid()) {
+    start = LParenLoc;
+  } else if (getNumElements() == 0) {
+    return { SourceLoc(), SourceLoc() };
+  } else {
+    start = getElement(0)->getStartLoc();
   }
-  return RParenLoc;
+  
+  if (hasTrailingClosure() || RParenLoc.isInvalid()) {
+    if (getNumElements() == 0) {
+      return { SourceLoc(), SourceLoc() };
+    } else {
+      end = getElements().back()->getEndLoc();
+    }
+  } else {
+    end = RParenLoc;
+  }
+  
+  if (start.isValid() && end.isValid()) {
+    return { start, end };
+  } else {
+    return { SourceLoc(), SourceLoc() };
+  }
 }
 
 TupleExpr::TupleExpr(SourceLoc LParenLoc, ArrayRef<Expr *> SubExprs,
diff --git a/lib/AST/GenericEnvironment.cpp b/lib/AST/GenericEnvironment.cpp
index 6b4bf91..74ec859 100644
--- a/lib/AST/GenericEnvironment.cpp
+++ b/lib/AST/GenericEnvironment.cpp
@@ -20,10 +20,14 @@
 using namespace swift;
 
 GenericEnvironment::GenericEnvironment(
+    ArrayRef<GenericTypeParamType *> genericParamTypes,
     TypeSubstitutionMap interfaceToArchetypeMap) {
 
   assert(!interfaceToArchetypeMap.empty());
 
+  for (auto *paramTy : genericParamTypes)
+    GenericParams.push_back(paramTy);
+
   // Build a mapping in both directions, making sure to canonicalize the
   // interface type where it is used as a key, so that substitution can
   // find them, and to preserve sugar otherwise, so that
@@ -74,6 +78,15 @@
   return found->second;
 }
 
+GenericTypeParamType *GenericEnvironment::getSugaredType(
+    GenericTypeParamType *type) const {
+  for (auto *sugaredType : GenericParams)
+    if (sugaredType->isEqual(type))
+      return sugaredType;
+
+  llvm_unreachable("missing generic parameter");
+}
+
 ArrayRef<Substitution>
 GenericEnvironment::getForwardingSubstitutions(
     ModuleDecl *M, GenericSignature *sig) const {
diff --git a/lib/AST/Mangle.cpp b/lib/AST/Mangle.cpp
index 9b9ca0a..68c424b 100644
--- a/lib/AST/Mangle.cpp
+++ b/lib/AST/Mangle.cpp
@@ -1032,6 +1032,9 @@
     case SILFunctionTypeRepresentation::Method:
       Buffer << "Cm";
       break;
+    case SILFunctionTypeRepresentation::Closure:
+      Buffer << "Ck";
+      break;
     case SILFunctionTypeRepresentation::WitnessMethod:
       Buffer << "Cw";
       break;
diff --git a/lib/AST/Module.cpp b/lib/AST/Module.cpp
index fb564bd..43e57e2 100644
--- a/lib/AST/Module.cpp
+++ b/lib/AST/Module.cpp
@@ -630,7 +630,8 @@
 
     // If the type is a type variable or is dependent, just fill in empty
     // conformances.
-    if (replacement->is<TypeVariableType>() || replacement->isTypeParameter())
+    if (replacement->isTypeVariableOrMember() ||
+        replacement->isTypeParameter())
       return ProtocolConformanceRef(proto);
 
     // Otherwise, find the conformance.
@@ -743,6 +744,11 @@
     return None;
   }
 
+  // Type variables have trivial conformances.
+  if (type->isTypeVariableOrMember()) {
+    return ProtocolConformanceRef(protocol);
+  }
+
   // UnresolvedType is a placeholder for an unknown type used when generating
   // diagnostics.  We consider it to conform to all protocols, since the
   // intended type might have.
diff --git a/lib/AST/NameLookup.cpp b/lib/AST/NameLookup.cpp
index a869a91..c23eba7 100644
--- a/lib/AST/NameLookup.cpp
+++ b/lib/AST/NameLookup.cpp
@@ -648,7 +648,7 @@
           auto unavailableLookupResult =
             [&](const UnqualifiedLookupResult &result) {
             return result.getValueDecl()->getAttrs()
-                     .isUnavailableInCurrentSwift();
+                     .isUnavailableInSwiftVersion();
           };
 
           // If all of the results we found are unavailable, keep looking.
@@ -849,7 +849,7 @@
             auto unavailableLookupResult =
               [&](const UnqualifiedLookupResult &result) {
               return result.getValueDecl()->getAttrs()
-                       .isUnavailableInCurrentSwift();
+                       .isUnavailableInSwiftVersion();
             };
 
             // If all of the results we found are unavailable, keep looking.
diff --git a/lib/AST/ProtocolConformance.cpp b/lib/AST/ProtocolConformance.cpp
index 61f4472..1c2ba94 100644
--- a/lib/AST/ProtocolConformance.cpp
+++ b/lib/AST/ProtocolConformance.cpp
@@ -388,7 +388,7 @@
     auto conforms = conformingModule->lookupConformance(specializedType, proto,
                                                         resolver);
     assert((conforms ||
-            specializedType->is<TypeVariableType>() ||
+            specializedType->isTypeVariableOrMember() ||
             specializedType->isTypeParameter() ||
             specializedType->hasError() ||
             specializedType->getCanonicalType()->hasError()) &&
diff --git a/lib/AST/Stmt.cpp b/lib/AST/Stmt.cpp
index 1ebf760..731bc53 100644
--- a/lib/AST/Stmt.cpp
+++ b/lib/AST/Stmt.cpp
@@ -287,7 +287,7 @@
 getPlatformKeywordLocs(SmallVectorImpl<SourceLoc> &PlatformLocs) {
   for (unsigned i = 0; i < NumQueries; i++) {
     auto *VersionSpec =
-      dyn_cast<VersionConstraintAvailabilitySpec>(getQueries()[i]);
+      dyn_cast<PlatformVersionConstraintAvailabilitySpec>(getQueries()[i]);
     if (!VersionSpec)
       continue;
     
diff --git a/lib/Basic/SourceLoc.cpp b/lib/Basic/SourceLoc.cpp
index 9bc484c..b6e0873 100644
--- a/lib/Basic/SourceLoc.cpp
+++ b/lib/Basic/SourceLoc.cpp
@@ -82,7 +82,7 @@
 
   CharSourceRange range = CharSourceRange(*this, loc, end);
   VirtualFiles[end.Value.getPointer()] = { range, name, lineOffset };
-  CachedVFile = {};
+  CachedVFile = {nullptr, nullptr};
   return true;
 }
 
@@ -99,7 +99,7 @@
 #endif
     return;
   }
-  CachedVFile = {};
+  CachedVFile = {nullptr, nullptr};
 
   CharSourceRange oldRange = virtualFile->Range;
   virtualFile->Range = CharSourceRange(*this, virtualFile->Range.getStart(),
diff --git a/lib/Basic/StringExtras.cpp b/lib/Basic/StringExtras.cpp
index ee3c5bd..8c29932 100644
--- a/lib/Basic/StringExtras.cpp
+++ b/lib/Basic/StringExtras.cpp
@@ -669,7 +669,7 @@
                             NameRole::Partial, allPropertyNames, scratch);
       if (shortenedNameWord == newShortenedNameWord &&
           shortenedNameWord.back() == 'e') {
-        shortenedNameWord.drop_back();
+        (void)shortenedNameWord.drop_back();
         newShortenedNameWord =
           omitNeedlessWords(shortenedNameWord, typeName.CollectionElement,
                             NameRole::Partial, allPropertyNames, scratch);
diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp
index b565c02..f3804f1 100644
--- a/lib/Basic/Version.cpp
+++ b/lib/Basic/Version.cpp
@@ -285,14 +285,44 @@
   return define;
 }
 
+Version::operator clang::VersionTuple() const
+{
+  switch (Components.size()) {
+ case 0:
+   return clang::VersionTuple();
+ case 1:
+   return clang::VersionTuple((unsigned)Components[0]);
+ case 2:
+   return clang::VersionTuple((unsigned)Components[0],
+                              (unsigned)Components[1]);
+ case 3:
+   return clang::VersionTuple((unsigned)Components[0],
+                              (unsigned)Components[1],
+                              (unsigned)Components[2]);
+ case 4:
+ case 5:
+   return clang::VersionTuple((unsigned)Components[0],
+                              (unsigned)Components[1],
+                              (unsigned)Components[2],
+                              (unsigned)Components[3]);
+ default:
+   llvm_unreachable("swift::version::Version with 6 or more components");
+  }
+}
+
 bool
 Version::isValidEffectiveLanguageVersion() const
 {
   // Whitelist of backward-compatibility versions that we permit passing as
   // -swift-version <vers>
   char const *whitelist[] = {
+    // Swift 3 family
     "3",
     "3.0",
+
+    // Swift 4 family
+    "4",
+    "4.0",
   };
   for (auto const i : whitelist) {
     auto v = parseVersionString(i, SourceLoc(), nullptr);
diff --git a/lib/ClangImporter/ClangImporter.cpp b/lib/ClangImporter/ClangImporter.cpp
index 9dd82b4..83f70cc 100644
--- a/lib/ClangImporter/ClangImporter.cpp
+++ b/lib/ClangImporter/ClangImporter.cpp
@@ -1137,8 +1137,9 @@
   }
   auto submoduleNameLength = submodule->getFullModuleName().length();
   for (auto sub : submodule->submodules()) {
-    StringRef full = sub->getFullModuleName();
-    names.push_back(full.substr(submoduleNameLength + 1).str());
+    std::string full = sub->getFullModuleName();
+    full.erase(0, submoduleNameLength + 1);
+    names.push_back(std::move(full));
   }
 }
 
diff --git a/lib/ClangImporter/ImportDecl.cpp b/lib/ClangImporter/ImportDecl.cpp
index a5ee52c..fbd0242 100644
--- a/lib/ClangImporter/ImportDecl.cpp
+++ b/lib/ClangImporter/ImportDecl.cpp
@@ -1445,7 +1445,7 @@
                                       info.getOSVersion().getLowerEndpoint(),
                                       /*deprecated=*/noVersion,
                                       /*obsoleted=*/noVersion,
-                                      UnconditionalAvailabilityKind::None,
+                                      PlatformAgnosticAvailabilityKind::None,
                                       /*implicit=*/false);
 
   decl->getAttrs().add(AvAttr);
@@ -1838,9 +1838,10 @@
                             os);
       }
 
-      auto attr = AvailableAttr::createUnconditional(
+      auto attr = AvailableAttr::createPlatformAgnostic(
                     ctx, StringRef(), ctx.AllocateCopy(renamed.str()),
-                    UnconditionalAvailabilityKind::UnavailableInCurrentSwift);
+                    PlatformAgnosticAvailabilityKind::SwiftVersionSpecific,
+                    clang::VersionTuple(3));
       decl->getAttrs().add(attr);
       decl->setImplicit();
     }
@@ -2026,10 +2027,10 @@
       // Make Objective-C's 'id' unavailable.
       ASTContext &ctx = DC->getASTContext();
       if (ctx.LangOpts.EnableObjCInterop && isObjCId(Decl)) {
-        auto attr = AvailableAttr::createUnconditional(
+        auto attr = AvailableAttr::createPlatformAgnostic(
                       ctx,
                       "'id' is not available in Swift; use 'Any'", "",
-                      UnconditionalAvailabilityKind::UnavailableInSwift);
+                      PlatformAgnosticAvailabilityKind::UnavailableInSwift);
         Result->getAttrs().add(attr);
       }
 
@@ -3595,7 +3596,7 @@
             typeResolver->resolveDeclSignature(singleResult);
 
           // Skip Swift 2 variants.
-          if (singleResult->getAttrs().isUnavailableInCurrentSwift())
+          if (singleResult->getAttrs().isUnavailableInSwiftVersion())
             continue;
 
           if (found)
@@ -3651,7 +3652,7 @@
         message = "cannot find Swift declaration for this protocol";
       else
         llvm_unreachable("unknown bridged decl kind");
-      auto attr = AvailableAttr::createUnconditional(Impl.SwiftContext,
+      auto attr = AvailableAttr::createPlatformAgnostic(Impl.SwiftContext,
                                                         message);
       VD->getAttrs().add(attr);
     }
@@ -3810,7 +3811,7 @@
           // Fake it by making an unavailable opaque @objc root class.
           auto result = createRootClass();
           result->setImplicit();
-          auto attr = AvailableAttr::createUnconditional(Impl.SwiftContext,
+          auto attr = AvailableAttr::createPlatformAgnostic(Impl.SwiftContext,
               "This Objective-C class has only been forward-declared; "
               "import its owning module to use it");
           result->getAttrs().add(attr);
@@ -4580,7 +4581,7 @@
       !CD->getAttrs().isUnavailable(Impl.SwiftContext)) {
     /// Create an AvailableAttr that indicates specific availability
     /// for all platforms.
-    auto attr = AvailableAttr::createUnconditional(
+    auto attr = AvailableAttr::createPlatformAgnostic(
         Impl.SwiftContext, "use [] to construct an empty option set");
     CD->getAttrs().add(attr);
   }
@@ -5016,7 +5017,7 @@
       os << arg << ":";
     }
     os << ")'";
-    member->getAttrs().add(AvailableAttr::createUnconditional(
+    member->getAttrs().add(AvailableAttr::createPlatformAgnostic(
         Impl.SwiftContext, Impl.SwiftContext.AllocateCopy(os.str())));
   }
 
@@ -5316,7 +5317,7 @@
       errorStr += objcMethod->getSelector().getAsString();
       errorStr += ']';
 
-      auto attr = AvailableAttr::createUnconditional(
+      auto attr = AvailableAttr::createPlatformAgnostic(
           Impl.SwiftContext, Impl.SwiftContext.AllocateCopy(errorStr.str()));
       ctor->getAttrs().add(attr);
       continue;
@@ -6000,7 +6001,7 @@
 
     for (auto member : proto->getMembers()) {
       // Skip Swift 2 stubs; there's no reason to mirror them.
-      if (member->getAttrs().isUnavailableInCurrentSwift())
+      if (member->getAttrs().isUnavailableInSwiftVersion())
         continue;
 
       if (auto prop = dyn_cast<VarDecl>(member)) {
@@ -6097,7 +6098,7 @@
         continue;
 
       // Don't inherit Swift 2 stubs.
-      if (ctor->getAttrs().isUnavailableInCurrentSwift())
+      if (ctor->getAttrs().isUnavailableInSwiftVersion())
         continue;
 
       // Don't inherit (non-convenience) factory initializers.
@@ -6307,7 +6308,7 @@
     //
     if (auto unavailable = dyn_cast<clang::UnavailableAttr>(*AI)) {
       auto Message = unavailable->getMessage();
-      auto attr = AvailableAttr::createUnconditional(C, Message);
+      auto attr = AvailableAttr::createPlatformAgnostic(C, Message);
       MappedDecl->getAttrs().add(attr);
       AnyUnavailable = true;
       continue;
@@ -6320,8 +6321,8 @@
     //
     if (auto unavailable_annot = dyn_cast<clang::AnnotateAttr>(*AI))
       if (unavailable_annot->getAnnotation() == "swift1_unavailable") {
-        auto attr = AvailableAttr::createUnconditional(
-            C, "", "", UnconditionalAvailabilityKind::UnavailableInSwift);
+        auto attr = AvailableAttr::createPlatformAgnostic(
+            C, "", "", PlatformAgnosticAvailabilityKind::UnavailableInSwift);
         MappedDecl->getAttrs().add(attr);
         AnyUnavailable = true;
         continue;
@@ -6334,8 +6335,8 @@
     //
     if (auto deprecated = dyn_cast<clang::DeprecatedAttr>(*AI)) {
       auto Message = deprecated->getMessage();
-      auto attr = AvailableAttr::createUnconditional(C, Message, "",
-                    UnconditionalAvailabilityKind::Deprecated);
+      auto attr = AvailableAttr::createPlatformAgnostic(C, Message, "",
+                    PlatformAgnosticAvailabilityKind::Deprecated);
       MappedDecl->getAttrs().add(attr);
       continue;
     }
@@ -6352,9 +6353,9 @@
         if (!replacement.empty())
           swiftReplacement = getSwiftNameFromClangName(replacement);
 
-        auto attr = AvailableAttr::createUnconditional(
+        auto attr = AvailableAttr::createPlatformAgnostic(
             C, avail->getMessage(), swiftReplacement,
-            UnconditionalAvailabilityKind::UnavailableInSwift);
+            PlatformAgnosticAvailabilityKind::UnavailableInSwift);
         MappedDecl->getAttrs().add(attr);
         AnyUnavailable = true;
         continue;
@@ -6383,10 +6384,10 @@
       if (!platformK)
         continue;
 
-      // Is this declaration marked unconditionally unavailable?
-      auto Unconditional = UnconditionalAvailabilityKind::None;
+      // Is this declaration marked platform-agnostically unavailable?
+      auto PlatformAgnostic = PlatformAgnosticAvailabilityKind::None;
       if (avail->getUnavailable()) {
-        Unconditional = UnconditionalAvailabilityKind::Unavailable;
+        PlatformAgnostic = PlatformAgnosticAvailabilityKind::Unavailable;
         AnyUnavailable = true;
       }
 
@@ -6398,7 +6399,7 @@
             platformAvailability.deprecatedAsUnavailableFilter(
                 deprecated.getMajor(), deprecated.getMinor())) {
           AnyUnavailable = true;
-          Unconditional = UnconditionalAvailabilityKind::Unavailable;
+          PlatformAgnostic = PlatformAgnosticAvailabilityKind::Unavailable;
           if (message.empty())
             message = platformAvailability.deprecatedAsUnavailableMessage;
         }
@@ -6416,7 +6417,7 @@
                                           platformK.getValue(),
                                           message, swiftReplacement,
                                           introduced, deprecated, obsoleted,
-                                          Unconditional, /*implicit=*/false);
+                                          PlatformAgnostic, /*implicit=*/false);
 
       MappedDecl->getAttrs().add(AvAttr);
     }
@@ -6429,7 +6430,7 @@
   // Ban NSInvocation.
   if (auto ID = dyn_cast<clang::ObjCInterfaceDecl>(ClangDecl)) {
     if (ID->getName() == "NSInvocation") {
-      auto attr = AvailableAttr::createUnconditional(C, "");
+      auto attr = AvailableAttr::createPlatformAgnostic(C, "");
       MappedDecl->getAttrs().add(attr);
       return;
     }
@@ -6444,7 +6445,7 @@
           FD->getName().endswith("Autorelease")))
       if (auto t = FD->getParamDecl(0)->getType()->getAs<clang::TypedefType>())
         if (isCFTypeDecl(t->getDecl())) {
-          auto attr = AvailableAttr::createUnconditional(C,
+          auto attr = AvailableAttr::createPlatformAgnostic(C,
             "Core Foundation objects are automatically memory managed");
           MappedDecl->getAttrs().add(attr);
           return;
@@ -6860,8 +6861,8 @@
         param->getDeclaredType()->castTo<GenericTypeParamType>());
   }
 
-  auto *sig = builder.getGenericSignature(genericParamTypes);
-  auto *env = builder.getGenericEnvironment(genericParamTypes);
+  auto *sig = builder.getGenericSignature();
+  auto *env = builder.getGenericEnvironment();
 
   return std::make_pair(sig, env);
 }
@@ -7147,7 +7148,7 @@
 markUnavailable(ValueDecl *decl, StringRef unavailabilityMsgRef) {
 
   unavailabilityMsgRef = SwiftContext.AllocateCopy(unavailabilityMsgRef);
-  auto ua = AvailableAttr::createUnconditional(SwiftContext,
+  auto ua = AvailableAttr::createPlatformAgnostic(SwiftContext,
                                                   unavailabilityMsgRef);
   decl->getAttrs().add(ua);
 }
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index bc1859c..9eb7468 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -196,7 +196,8 @@
 
 static bool populateOutOfDateMap(InputInfoMap &map, StringRef argsHashStr,
                                  const InputFileList &inputs,
-                                 StringRef buildRecordPath) {
+                                 StringRef buildRecordPath,
+                                 bool ShowIncrementalBuildDecisions) {
   // Treat a missing file as "no previous build".
   auto buffer = llvm::MemoryBuffer::getFile(buildRecordPath);
   if (!buffer)
@@ -260,6 +261,7 @@
 
   // FIXME: LLVM's YAML support does incremental parsing in such a way that
   // for-range loops break.
+  SmallString<64> CompilationRecordSwiftVersion;
   for (auto i = topLevelMap->begin(), e = topLevelMap->end(); i != e; ++i) {
     auto *key = cast<yaml::ScalarNode>(i->getKey());
     StringRef keyStr = key->getValue(scratch);
@@ -274,7 +276,8 @@
       // swift::version::Version::getCurrentLanguageVersion() here because any
       // -swift-version argument is handled in the argsHashStr check that
       // follows.
-      versionValid = (value->getValue(scratch)
+      CompilationRecordSwiftVersion = value->getValue(scratch);
+      versionValid = (CompilationRecordSwiftVersion
                       == version::getSwiftFullVersion(
                         version::Version::getCurrentLanguageVersion()));
 
@@ -325,8 +328,22 @@
     }
   }
 
-  if (!versionValid || !optionsMatch)
+  if (!versionValid) {
+    if (ShowIncrementalBuildDecisions) {
+      auto v = version::getSwiftFullVersion(
+          version::Version::getCurrentLanguageVersion());
+      llvm::outs() << "Incremental compilation has been disabled, due to a "
+                   << "compiler version mismatch.\n"
+                   << "\tCompiling with: " << v << "\n"
+                   << "\tPreviously compiled with: "
+                   << CompilationRecordSwiftVersion << "\n";
+    }
     return true;
+  }
+
+  if (!optionsMatch) {
+    return true;
+  }
 
   size_t numInputsFromPrevious = 0;
   for (auto &inputPair : inputs) {
@@ -460,7 +477,8 @@
 
       } else {
         if (populateOutOfDateMap(outOfDateMap, ArgsHash, Inputs,
-                                 buildRecordPath)) {
+                                 buildRecordPath,
+                                 ShowIncrementalBuildDecisions)) {
           // FIXME: Distinguish errors from "file removed", which is benign.
         } else {
           rebuildEverything = false;
diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp
index 56a8209..72e9fed 100644
--- a/lib/Frontend/CompilerInvocation.cpp
+++ b/lib/Frontend/CompilerInvocation.cpp
@@ -1132,6 +1132,7 @@
     Args.hasArg(OPT_enable_guaranteed_closure_contexts);
   Opts.DisableSILPartialApply |=
     Args.hasArg(OPT_disable_sil_partial_apply);
+  Opts.EnableSILOwnership |= Args.hasArg(OPT_enable_sil_ownership);
 
   if (Args.hasArg(OPT_debug_on_sil)) {
     // Derive the name of the SIL file for debugging from
diff --git a/lib/IDE/CodeCompletion.cpp b/lib/IDE/CodeCompletion.cpp
index ce807b3..ed1516b 100644
--- a/lib/IDE/CodeCompletion.cpp
+++ b/lib/IDE/CodeCompletion.cpp
@@ -302,7 +302,7 @@
   return false;
 }
 
-typedef llvm::function_ref<bool(ValueDecl*, DeclVisibilityKind)> DeclFilter;
+typedef std::function<bool(ValueDecl*, DeclVisibilityKind)> DeclFilter;
 DeclFilter DefaultFilter = [] (ValueDecl* VD, DeclVisibilityKind Kind) {return true;};
 DeclFilter KeyPathFilter = [](ValueDecl* decl, DeclVisibilityKind) -> bool {
   return isa<TypeDecl>(decl) ||
@@ -3313,6 +3313,12 @@
         }
       }
 
+      // If the right-hand side and result type are both type parameters, we're
+      // not providing a useful completion.
+      if (expr->getType()->isTypeParameter() &&
+          CCE.getType()->isTypeParameter())
+        return;
+
       addInfixOperatorCompletion(op, expr->getType(), CCE.getType());
     }
   }
diff --git a/lib/IDE/Formatting.cpp b/lib/IDE/Formatting.cpp
index b246b74..767f5ea 100644
--- a/lib/IDE/Formatting.cpp
+++ b/lib/IDE/Formatting.cpp
@@ -13,6 +13,7 @@
 #include "swift/AST/AST.h"
 #include "swift/AST/ASTWalker.h"
 #include "swift/AST/SourceEntityWalker.h"
+#include "swift/Parse/Parser.h"
 #include "swift/Frontend/Frontend.h"
 #include "swift/Basic/SourceManager.h"
 #include "swift/IDE/Formatting.h"
@@ -28,6 +29,17 @@
   bool ExtraIndent;
 };
 
+struct TokenInfo {
+  const Token *StartOfLineTarget;
+  const Token *StartOfLineBeforeTarget;
+  TokenInfo(const Token *StartOfLineTarget,
+            const Token *StartOfLineBeforeTarget) :
+    StartOfLineTarget(StartOfLineTarget),
+    StartOfLineBeforeTarget(StartOfLineBeforeTarget) {}
+  TokenInfo() : TokenInfo(nullptr, nullptr) {}
+  operator bool() { return StartOfLineTarget && StartOfLineBeforeTarget; }
+};
+
 typedef llvm::SmallString<64> StringBuilder;
 
 static SourceLoc getVarDeclInitEnd(VarDecl *VD) {
@@ -236,10 +248,17 @@
     return E->getEndLoc().isValid() && SM.getLineNumber(E->getEndLoc()) == Line;
   };
 
-  bool shouldAddIndentForLine(unsigned Line) {
+  bool shouldAddIndentForLine(unsigned Line, TokenInfo TInfo) {
     if (Cursor == Stack.rend())
       return false;
 
+    if (TInfo) {
+      if (TInfo.StartOfLineTarget->getKind() == tok::l_brace &&
+          isKeywordPossibleDeclStart(*TInfo.StartOfLineBeforeTarget) &&
+          TInfo.StartOfLineBeforeTarget->isKeyword())
+        return false;
+    }
+
     // Handle switch / case, indent unless at a case label.
     if (CaseStmt *Case = dyn_cast_or_null<CaseStmt>(Cursor->getAsStmt())) {
       auto LabelItems = Case->getCaseLabelItems();
@@ -712,6 +731,10 @@
                          InCommentLine, SCollector.getSiblingInfo());
   }
 
+  ArrayRef<Token> getTokens() {
+    return llvm::makeArrayRef(Tokens);
+  }
+
   bool walkToDeclPre(Decl *D, CharSourceRange Range) override {
     SourceLoc Start = D->getStartLoc();
     SourceLoc End = D->getEndLoc();
@@ -759,7 +782,7 @@
 
   std::pair<LineRange, std::string> indent(unsigned LineIndex,
                                            FormatContext &FC,
-                                           StringRef Text) {
+                                           StringRef Text, TokenInfo ToInfo) {
 
     // If having sibling locs to align with, respect siblings.
     if (FC.HasSibling()) {
@@ -790,7 +813,7 @@
       ExpandedIndent -= ExpandedIndent % Width;
     };
 
-    if (LineAndColumn.second > 0 && FC.shouldAddIndentForLine(LineIndex))
+    if (LineAndColumn.second > 0 && FC.shouldAddIndentForLine(LineIndex, ToInfo))
       AddIndentFunc();
     if (FC.IsInDocCommentBlock()) {
 
@@ -817,6 +840,40 @@
 
 };
 
+class TokenInfoCollector {
+  SourceManager &SM;
+  ArrayRef<Token> Tokens;
+  unsigned Line;
+
+  struct Comparator {
+    SourceManager &SM;
+    Comparator(SourceManager &SM) : SM(SM) {}
+    bool operator()(const Token &T, unsigned Line) const {
+      return SM.getLineNumber(T.getLoc()) < Line;
+    }
+    bool operator()(unsigned Line, const Token &T) const {
+      return Line < SM.getLineNumber(T.getLoc());
+    }
+  };
+
+public:
+  TokenInfoCollector(SourceManager &SM, ArrayRef<Token> Tokens,
+         unsigned Line) : SM(SM), Tokens(Tokens), Line(Line) {}
+
+  TokenInfo collect() {
+    if (Line == 0)
+      return TokenInfo();
+    Comparator Comp(SM);
+    auto LineMatch = [this] (const Token* T, unsigned Line) {
+      return T != Tokens.end() && SM.getLineNumber(T->getLoc()) == Line;
+    };
+    auto TargetIt = std::lower_bound(Tokens.begin(), Tokens.end(), Line, Comp);
+    auto LineBefore = std::lower_bound(Tokens.begin(), TargetIt, Line - 1, Comp);
+    if (LineMatch(TargetIt, Line) && LineMatch(LineBefore, Line - 1))
+      return TokenInfo(TargetIt, LineBefore);
+    return TokenInfo();
+  }
+};
 } //anonymous namespace
 
 size_t swift::ide::getOffsetOfLine(unsigned LineIndex, StringRef Text) {
@@ -888,6 +945,8 @@
     .getAdvancedLoc(Offset);
   FormatContext FC = walker.walkToLocation(Loc);
   CodeFormatter CF(Options);
-  return CF.indent(Range.startLine(), FC, Text);
+  unsigned Line = Range.startLine();
+  return CF.indent(Line, FC, Text, TokenInfoCollector(SM, walker.getTokens(),
+                                                      Line).collect());
 }
 
diff --git a/lib/IRGen/GenCall.cpp b/lib/IRGen/GenCall.cpp
index 2abdcc3..fd27e4c 100644
--- a/lib/IRGen/GenCall.cpp
+++ b/lib/IRGen/GenCall.cpp
@@ -150,7 +150,7 @@
 
   case SILFunctionTypeRepresentation::Method:
   case SILFunctionTypeRepresentation::WitnessMethod:
-    SWIFT_FALLTHROUGH;
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Thick:
     return getFreestandingConvention(IGM);
@@ -733,6 +733,7 @@
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::Method:
   case SILFunctionTypeRepresentation::WitnessMethod:
+  case SILFunctionTypeRepresentation::Closure:
     llvm_unreachable("not a C representation");
   }
 
@@ -965,6 +966,7 @@
       case SILFunctionType::Representation::WitnessMethod:
       case SILFunctionType::Representation::ObjCMethod:
       case SILFunctionType::Representation::Thin:
+      case SILFunctionType::Representation::Closure:
         return FnType->hasErrorResult();
 
       case SILFunctionType::Representation::Thick:
@@ -1858,6 +1860,7 @@
     Args.rbegin()[0] = witnessMetadata->SelfWitnessTable;
     SWIFT_FALLTHROUGH;
 
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::Method:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Thick: {
diff --git a/lib/IRGen/GenClangType.cpp b/lib/IRGen/GenClangType.cpp
index f75fb9b..2aefde1 100644
--- a/lib/IRGen/GenClangType.cpp
+++ b/lib/IRGen/GenClangType.cpp
@@ -575,6 +575,7 @@
   case SILFunctionType::Representation::Method:
   case SILFunctionType::Representation::ObjCMethod:
   case SILFunctionType::Representation::WitnessMethod:
+  case SILFunctionType::Representation::Closure:
     llvm_unreachable("not an ObjC-compatible function");
   }
   
diff --git a/lib/IRGen/GenConstant.cpp b/lib/IRGen/GenConstant.cpp
index e82384e..57b486d 100644
--- a/lib/IRGen/GenConstant.cpp
+++ b/lib/IRGen/GenConstant.cpp
@@ -84,7 +84,8 @@
     llvm_unreachable("Unsupported SILInstruction in static initializer!");
 }
 
-static template <typename InstTy, typename NextIndexFunc>
+namespace {
+template <typename InstTy, typename NextIndexFunc>
 llvm::Constant *emitConstantStructOrTuple(IRGenModule &IGM, InstTy inst,
                                           NextIndexFunc nextIndex) {
   auto type = inst->getType();
@@ -118,6 +119,7 @@
 
   return llvm::ConstantStruct::get(sTy, elts);
 }
+} // end anonymous namespace
 
 llvm::Constant *irgen::emitConstantStruct(IRGenModule &IGM, StructInst *SI) {
   // The only way to get a struct's stored properties (which we need to map to
diff --git a/lib/IRGen/GenFunc.cpp b/lib/IRGen/GenFunc.cpp
index 404883d..5e07195 100644
--- a/lib/IRGen/GenFunc.cpp
+++ b/lib/IRGen/GenFunc.cpp
@@ -555,6 +555,7 @@
   case SILFunctionType::Representation::Method:
   case SILFunctionType::Representation::ObjCMethod:
   case SILFunctionType::Representation::CFunctionPointer:
+  case SILFunctionType::Representation::Closure:
     return ThinFuncTypeInfo::create(CanSILFunctionType(T),
                                     IGM.FunctionPtrTy,
                                     IGM.getPointerSize(),
@@ -612,6 +613,7 @@
   case SILFunctionType::Representation::Method:
   case SILFunctionType::Representation::WitnessMethod:
   case SILFunctionType::Representation::ObjCMethod:
+  case SILFunctionType::Representation::Closure:
     return ti.as<ThinFuncTypeInfo>();
   case SILFunctionType::Representation::Thick:
     return ti.as<FuncTypeInfo>();
diff --git a/lib/IRGen/GenMeta.cpp b/lib/IRGen/GenMeta.cpp
index 869307e..4bd13b7 100644
--- a/lib/IRGen/GenMeta.cpp
+++ b/lib/IRGen/GenMeta.cpp
@@ -1666,6 +1666,7 @@
       case SILFunctionType::Representation::WitnessMethod:
       case SILFunctionType::Representation::ObjCMethod:
       case SILFunctionType::Representation::CFunctionPointer:
+      case SILFunctionType::Representation::Closure:
         // A thin function looks like a plain pointer.
         // FIXME: Except for extra inhabitants?
         return emitDirectMetadataRef(C.TheRawPointerType);
@@ -1845,6 +1846,7 @@
       case SILFunctionType::Representation::WitnessMethod:
       case SILFunctionType::Representation::ObjCMethod:
       case SILFunctionType::Representation::CFunctionPointer:
+      case SILFunctionType::Representation::Closure:
         // A thin function looks like a plain pointer.
         // FIXME: Except for extra inhabitants?
         return emitFromValueWitnessTable(C.TheRawPointerType);
diff --git a/lib/IRGen/GenObjC.cpp b/lib/IRGen/GenObjC.cpp
index 70ed19c..bab2f77 100644
--- a/lib/IRGen/GenObjC.cpp
+++ b/lib/IRGen/GenObjC.cpp
@@ -729,60 +729,21 @@
   args.add(IGF.emitObjCSelectorRefLoad(selector.str()));
 }
 
-/// Return the formal type that we would use for +allocWithZone:.
-static CanSILFunctionType getAllocObjectFormalType(ASTContext &ctx,
-                                                   CanType classType) {
-  SILParameterInfo inputs[] = {
-    SILParameterInfo(CanType(ctx.TheRawPointerType), /* (NSZone*), kindof */
-                     ParameterConvention::Direct_Unowned),
-    SILParameterInfo(CanType(MetatypeType::get(classType,
-                                               MetatypeRepresentation::Thick)),
-                     ParameterConvention::Direct_Unowned)
-  };
-  auto result = SILResultInfo(classType, ResultConvention::Owned);
-  auto extInfo = SILFunctionType::ExtInfo(SILFunctionType::Representation::ObjCMethod,
-                                          /*pseudogeneric*/ true);
-
-  return SILFunctionType::get(nullptr, extInfo,
-                              /*callee*/ ParameterConvention::Direct_Unowned,
-                              inputs, result, None, ctx);
-}
-
 /// Call [self allocWithZone: nil].
 llvm::Value *irgen::emitObjCAllocObjectCall(IRGenFunction &IGF,
                                             llvm::Value *self,
                                             CanType classType) {
-  // Compute the formal type that we expect +allocWithZone: to have.
-  auto formalType = getAllocObjectFormalType(IGF.IGM.Context, classType);
+  // Get an appropriately-cast function pointer.
+  auto fn = IGF.IGM.getObjCAllocWithZoneFn();
 
-  // Compute the appropriate LLVM type for the function.
-  ForeignFunctionInfo foreignInfo;
-  llvm::AttributeSet attrs;
-  auto fnTy = IGF.IGM.getFunctionType(formalType, attrs, &foreignInfo);
-
-  // Get the messenger function.
-  llvm::Constant *messenger = IGF.IGM.getObjCMsgSendFn();
-  messenger = llvm::ConstantExpr::getBitCast(messenger, fnTy->getPointerTo());
-
-  // Prepare the call.
-  CallEmission emission(IGF, Callee::forKnownFunction(formalType,
-                                                      formalType, {},
-                                                      messenger, nullptr,
-                                                      foreignInfo));
-
-  // Emit the arguments.
-  {
-    Explosion args;
-    args.add(self);
-    args.add(IGF.emitObjCSelectorRefLoad("allocWithZone:"));
-    args.add(llvm::ConstantPointerNull::get(IGF.IGM.Int8PtrTy));
-    emission.setArgs(args);
+  if (self->getType() != IGF.IGM.ObjCClassPtrTy) {
+    auto fnTy = llvm::FunctionType::get(self->getType(), self->getType(),
+                                        false)->getPointerTo();
+    fn = llvm::ConstantExpr::getBitCast(fn, fnTy);
   }
-
-  // Emit the call.
-  Explosion out;
-  emission.emitToExplosion(out);
-  return out.claimNext();
+  
+  auto call = IGF.Builder.CreateCall(fn, self);
+  return call;
 }
 
 static llvm::Function *emitObjCPartialApplicationForwarder(IRGenModule &IGM,
diff --git a/lib/IRGen/GenProto.cpp b/lib/IRGen/GenProto.cpp
index 16b3a2a..11f6d6b 100644
--- a/lib/IRGen/GenProto.cpp
+++ b/lib/IRGen/GenProto.cpp
@@ -1811,6 +1811,7 @@
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Method:
+  case SILFunctionTypeRepresentation::Closure:
     return ty->isPolymorphic();
 
   case SILFunctionTypeRepresentation::CFunctionPointer:
diff --git a/lib/IRGen/IRGenSIL.cpp b/lib/IRGen/IRGenSIL.cpp
index 32127cc..38bfe1c 100644
--- a/lib/IRGen/IRGenSIL.cpp
+++ b/lib/IRGen/IRGenSIL.cpp
@@ -1939,6 +1939,7 @@
     case SILFunctionType::Representation::Thin:
     case SILFunctionType::Representation::CFunctionPointer:
     case SILFunctionType::Representation::Method:
+    case SILFunctionType::Representation::Closure:
     case SILFunctionType::Representation::ObjCMethod:
     case SILFunctionType::Representation::WitnessMethod:
     case SILFunctionType::Representation::Thick: {
@@ -2152,6 +2153,7 @@
     case SILFunctionTypeRepresentation::Thick:
     case SILFunctionTypeRepresentation::Thin:
     case SILFunctionTypeRepresentation::Method:
+    case SILFunctionTypeRepresentation::Closure:
       break;
     }
     return std::make_tuple(lv.getStaticFunction().getFunction(),
@@ -2165,6 +2167,7 @@
     switch (fnType->getRepresentation()) {
     case SILFunctionType::Representation::Thin:
     case SILFunctionType::Representation::Method:
+    case SILFunctionType::Representation::Closure:
     case SILFunctionType::Representation::ObjCMethod:
       break;
     case SILFunctionType::Representation::WitnessMethod: {
@@ -3128,16 +3131,39 @@
 void IRGenSILFunction::visitLoadInst(swift::LoadInst *i) {
   Explosion lowered;
   Address source = getLoweredAddress(i->getOperand());
-  const TypeInfo &type = getTypeInfo(i->getType().getObjectType());
-  cast<LoadableTypeInfo>(type).loadAsTake(*this, source, lowered);
+  SILType objType = i->getType().getObjectType();
+  const auto &typeInfo = cast<LoadableTypeInfo>(getTypeInfo(objType));
+
+  switch (i->getOwnershipQualifier()) {
+  case LoadOwnershipQualifier::Unqualified:
+  case LoadOwnershipQualifier::Trivial:
+  case LoadOwnershipQualifier::Take:
+    typeInfo.loadAsTake(*this, source, lowered);
+    break;
+  case LoadOwnershipQualifier::Copy:
+    typeInfo.loadAsCopy(*this, source, lowered);
+    break;
+  }
+
   setLoweredExplosion(i, lowered);
 }
 
 void IRGenSILFunction::visitStoreInst(swift::StoreInst *i) {
   Explosion source = getLoweredExplosion(i->getSrc());
   Address dest = getLoweredAddress(i->getDest());
-  auto &type = getTypeInfo(i->getSrc()->getType().getObjectType());
-  cast<LoadableTypeInfo>(type).initialize(*this, source, dest);
+  SILType objType = i->getSrc()->getType().getObjectType();
+
+  const auto &typeInfo = cast<LoadableTypeInfo>(getTypeInfo(objType));
+  switch (i->getOwnershipQualifier()) {
+  case StoreOwnershipQualifier::Unqualified:
+  case StoreOwnershipQualifier::Init:
+  case StoreOwnershipQualifier::Trivial:
+    typeInfo.initialize(*this, source, dest);
+    break;
+  case StoreOwnershipQualifier::Assign:
+    typeInfo.assign(*this, source, dest);
+    break;
+  }
 }
 
 void IRGenSILFunction::visitDebugValueInst(DebugValueInst *i) {
diff --git a/lib/LLVMPasses/LLVMARCContract.cpp b/lib/LLVMPasses/LLVMARCContract.cpp
index dfc63f3..035e5b4 100644
--- a/lib/LLVMPasses/LLVMARCContract.cpp
+++ b/lib/LLVMPasses/LLVMARCContract.cpp
@@ -273,9 +273,10 @@
       case RT_UnknownReleaseN:
       case RT_BridgeReleaseN:
         llvm_unreachable("These are only created by LLVMARCContract !");
-      // Delete all fix lifetime instructions. After llvm-ir they have no use
-      // and show up as calls in the final binary.
+      // Delete all fix lifetime and end borrow instructions. After llvm-ir they
+      // have no use and show up as calls in the final binary.
       case RT_FixLifetime:
+      case RT_EndBorrow:
         Inst.eraseFromParent();
         ++NumNoopDeleted;
         continue;
diff --git a/lib/LLVMPasses/LLVMARCOpts.cpp b/lib/LLVMPasses/LLVMARCOpts.cpp
index be8d98c..51c9384 100644
--- a/lib/LLVMPasses/LLVMARCOpts.cpp
+++ b/lib/LLVMPasses/LLVMARCOpts.cpp
@@ -102,6 +102,7 @@
       case RT_BridgeRelease:
       case RT_AllocObject:
       case RT_FixLifetime:
+      case RT_EndBorrow:
       case RT_NoMemoryAccessed:
       case RT_RetainUnowned:
       case RT_CheckUnowned:
@@ -368,6 +369,7 @@
     }
 
     case RT_FixLifetime:
+    case RT_EndBorrow:
     case RT_RetainUnowned:
     case RT_CheckUnowned:
     case RT_Unknown:
@@ -441,6 +443,7 @@
       break;
 
     case RT_FixLifetime: // This only stops release motion. Retains can move over it.
+    case RT_EndBorrow:
       break;
 
     case RT_Retain:
@@ -588,6 +591,7 @@
       case RT_NoMemoryAccessed:
       case RT_AllocObject:
       case RT_FixLifetime:
+      case RT_EndBorrow:
       case RT_CheckUnowned:
         // Skip over random instructions that don't touch memory in the caller.
         continue;
@@ -717,6 +721,7 @@
     case RT_Release:
     case RT_Retain:
     case RT_FixLifetime:
+    case RT_EndBorrow:
     case RT_CheckUnowned:
       // It is perfectly fine to eliminate various retains and releases of this
       // object: we are zapping all accesses or none.
diff --git a/lib/LLVMPasses/LLVMARCOpts.h b/lib/LLVMPasses/LLVMARCOpts.h
index 60626bf..b52a54b 100644
--- a/lib/LLVMPasses/LLVMARCOpts.h
+++ b/lib/LLVMPasses/LLVMARCOpts.h
@@ -25,68 +25,8 @@
 namespace swift {
 
 enum RT_Kind {
-  /// An instruction with this classification is known to not access (read or
-  /// write) memory.
-  RT_NoMemoryAccessed,
-
-  /// void swift_retain(SwiftHeapObject *object)
-  RT_Retain,
-
-  /// void swift_retain_n(SwiftHeapObject *object)
-  RT_RetainN,
-
-  /// void swift::swift_retainUnowned(HeapObject *object)
-  RT_RetainUnowned,
-  
-  /// void swift_checkUnowned(HeapObject *object)
-  RT_CheckUnowned,
-  
-  /// void swift_release(SwiftHeapObject *object)
-  RT_Release,
-
-  /// void swift_release_n(SwiftHeapObject *object)
-  RT_ReleaseN,
-
-  /// SwiftHeapObject *swift_allocObject(SwiftHeapMetadata *metadata,
-  ///                                    size_t size, size_t alignment)
-  RT_AllocObject,
-
-  /// void objc_release(%objc_object* %P)
-  RT_ObjCRelease,
-
-  /// %objc_object* objc_retain(%objc_object* %P)
-  RT_ObjCRetain,
-
-  /// void swift_unknownRetain(%swift.refcounted* %P)
-  RT_UnknownRetain,
-
-  /// void swift_unknownRetain_n(%swift.refcounted* %P)
-  RT_UnknownRetainN,
-
-  /// void swift_unknownRelease(%swift.refcounted* %P)
-  RT_UnknownRelease,
-
-  /// void swift_unknownRelease_n(%swift.refcounted* %P)
-  RT_UnknownReleaseN,
-
-  /// void __swift_fixLifetime(%swift.refcounted* %P)
-  RT_FixLifetime,
-
-  /// void swift_bridgeRetain(%swift.refcounted* %P)
-  RT_BridgeRetain,
-
-  /// void swift_bridgeRetain_n(%swift.refcounted* %P)
-  RT_BridgeRetainN,
-
-  /// void swift_bridgeRelease(%swift.refcounted* %P)
-  RT_BridgeRelease,
-
-  /// void swift_bridgeRelease_n(%swift.refcounted* %P)
-  RT_BridgeReleaseN,
-
-  /// This is not a runtime function that we support.  Maybe it is not a call,
-  /// or is a call to something we don't care about.
-  RT_Unknown,
+#define KIND(Name, MemBehavior) RT_ ## Name,
+#include "LLVMSwift.def"
 };
 
 /// classifyInstruction - Take a look at the specified instruction and classify
@@ -102,77 +42,38 @@
   if (F == 0) return RT_Unknown;
 
   return llvm::StringSwitch<RT_Kind>(F->getName())
-    .Case("swift_retain", RT_Retain)
-    .Case("swift_retain_n", RT_RetainN)
-    .Case("swift_release", RT_Release)
-    .Case("swift_release_n", RT_ReleaseN)
-    .Case("swift_allocObject", RT_AllocObject)
-    .Case("objc_release", RT_ObjCRelease)
-    .Case("objc_retain", RT_ObjCRetain)
-    .Case("swift_retainUnowned", RT_RetainUnowned)
-    .Case("swift_checkUnowned", RT_CheckUnowned)
-    .Case("swift_bridgeObjectRetain", RT_BridgeRetain)
-    .Case("swift_bridgeObjectRetain_n", RT_BridgeRetainN)
-    .Case("swift_bridgeObjectRelease", RT_BridgeRelease)
-    .Case("swift_bridgeObjectRelease_n", RT_BridgeReleaseN)
-    .Case("swift_unknownRetain", RT_UnknownRetain)
-    .Case("swift_unknownRetain_n", RT_UnknownRetainN)
-    .Case("swift_unknownRelease", RT_UnknownRelease)
-    .Case("swift_unknownRelease_n", RT_UnknownReleaseN)
-    .Case("__swift_fixLifetime", RT_FixLifetime)
+#define SWIFT_FUNC(Name, MemBehavior, TextualName) \
+    .Case("swift_" #TextualName, RT_ ## Name)
+#define OBJC_FUNC(Name, MemBehavior, TextualName) \
+    .Case("objc_" #TextualName, RT_ ## Name)
+#define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(Name, MemBehavior, TextualName) \
+    .Case("__swift_" #TextualName, RT_ ## Name)
+#include "LLVMSwift.def"
+
 #if defined(SWIFT_WRAPPER_PREFIX)
-    .Case(SWIFT_WRAPPER_NAME("swift_retain"), RT_Retain)
-    .Case(SWIFT_WRAPPER_NAME("swift_retain_n"), RT_RetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_release"), RT_Release)
-    .Case(SWIFT_WRAPPER_NAME("swift_release_n"), RT_ReleaseN)
-    .Case(SWIFT_WRAPPER_NAME("swift_allocObject"), RT_AllocObject)
-    .Case(SWIFT_WRAPPER_NAME("objc_release"), RT_ObjCRelease)
-    .Case(SWIFT_WRAPPER_NAME("objc_retain"), RT_ObjCRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_retainUnowned"), RT_RetainUnowned)
-    .Case(SWIFT_WRAPPER_NAME("swift_checkUnowned"), RT_CheckUnowned)
-    .Case(SWIFT_WRAPPER_NAME("swift_bridgeObjectRetain"), RT_BridgeRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_bridgeObjectRetain_n"), RT_BridgeRetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_bridgeObjectRelease"), RT_BridgeRelease)
-    .Case(SWIFT_WRAPPER_NAME("swift_bridgeObjectRelease_n"), RT_BridgeReleaseN)
-    .Case(SWIFT_WRAPPER_NAME("swift_unknownRetain"), RT_UnknownRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_unknownRetain_n"), RT_UnknownRetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_unknownRelease"), RT_UnknownRelease)
-    .Case(SWIFT_WRAPPER_NAME("swift_unknownRelease_n"), RT_UnknownReleaseN)
+#define SWIFT_FUNC(Name, MemBehavior, TextualName) \
+    .Case(SWIFT_WRAPPER_NAME("swift_" #TextualName), RT_ ## Name)
+#define OBJC_FUNC(Name, MemBehavior, TextualName) \
+    .Case(SWIFT_WRAPPER_NAME("objc_" #TextualName), RT_ ## Name)
+#define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(Name, MemBehavior, TextualName)
+#include "LLVMSwift.def"
 #endif
+
     // Support non-atomic versions of reference counting entry points.
-    .Case("swift_nonatomic_retain", RT_Retain)
-    .Case("swift_nonatomic_retain_n", RT_RetainN)
-    .Case("swift_nonatomic_release", RT_Release)
-    .Case("swift_nonatomic_release_n", RT_ReleaseN)
-    .Case("objc_nonatomic_release", RT_ObjCRelease)
-    .Case("objc_nonatomic_retain", RT_ObjCRetain)
-    .Case("swift_nonatomic_retainUnowned", RT_RetainUnowned)
-    .Case("swift_nonatomic_checkUnowned", RT_CheckUnowned)
-    .Case("swift_nonatomic_bridgeObjectRetain", RT_BridgeRetain)
-    .Case("swift_nonatomic_bridgeObjectRetain_n", RT_BridgeRetainN)
-    .Case("swift_nonatomic_bridgeObjectRelease", RT_BridgeRelease)
-    .Case("swift_nonatomic_bridgeObjectRelease_n", RT_BridgeReleaseN)
-    .Case("swift_nonatomic_unknownRetain", RT_UnknownRetain)
-    .Case("swift_nonatomic_unknownRetain_n", RT_UnknownRetainN)
-    .Case("swift_nonatomic_unknownRelease", RT_UnknownRelease)
-    .Case("swift_nonatomic_unknownRelease_n", RT_UnknownReleaseN)
+#define SWIFT_FUNC(Name, MemBehavior, TextualName) \
+    .Case("swift_nonatomic_" #TextualName, RT_ ## Name)
+#define OBJC_FUNC(Name, MemBehavior, TextualName) \
+    .Case("objc_nonatomic_" #TextualName, RT_ ## Name)
+#define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(Name, MemBehavior, TextualName)
+#include "LLVMSwift.def"
+
 #if defined(SWIFT_WRAPPER_PREFIX)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_retain"), RT_Retain)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_retain_n"), RT_RetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_release"), RT_Release)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_release_n"), RT_ReleaseN)
-    .Case(SWIFT_WRAPPER_NAME("objc_nonatomic_release"), RT_ObjCRelease)
-    .Case(SWIFT_WRAPPER_NAME("objc_nonatomic_retain"), RT_ObjCRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_retainUnowned"), RT_RetainUnowned)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_checkUnowned"), RT_CheckUnowned)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_bridgeObjectRetain"), RT_BridgeRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_bridgeObjectRetain_n"), RT_BridgeRetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_bridgeObjectRelease"), RT_BridgeRelease)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_bridgeObjectRelease_n"), RT_BridgeReleaseN)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_unknownRetain"), RT_UnknownRetain)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_unknownRetain_n"), RT_UnknownRetainN)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_unknownRelease"), RT_UnknownRelease)
-    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_unknownRelease_n"), RT_UnknownReleaseN)
+#define SWIFT_FUNC(Name, MemBehavior, TextualName) \
+    .Case(SWIFT_WRAPPER_NAME("swift_nonatomic_" #TextualName), RT_ ## Name)
+#define OBJC_FUNC(Name, MemBehavior, TextualName) \
+    .Case(SWIFT_WRAPPER_NAME("objc_nonatomic_" #TextualName), RT_ ## Name)
+#define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(Name, MemBehavior, TextualName)
+#include "LLVMSwift.def"
 #endif
     .Default(RT_Unknown);
 }
diff --git a/lib/LLVMPasses/LLVMSwift.def b/lib/LLVMPasses/LLVMSwift.def
new file mode 100644
index 0000000..ff592d3
--- /dev/null
+++ b/lib/LLVMPasses/LLVMSwift.def
@@ -0,0 +1,150 @@
+//===--- LLVMSwift.def ----------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+// KIND(Name, MemBehavior)
+//
+// This represents a specific equivalence class of LLVM instructions that have a
+// Name and the same MemBehavior from a ModRef perspective.
+//
+// Name - The name of the kind.
+// MemBehavior - One of NoModRef or ModRef.
+//
+#ifndef KIND
+#define KIND(Name, MemBehavior)
+#endif
+
+// SWIFT_FUNC(Name, MemBehavior, TextualName)
+//
+// This defines a special swift function known to the optimizer that may be
+// present in either atomic or nonatomic form.
+//
+// Name - The name of the function
+// MemBehavior - The MemBehavior of the instruction that can be known at compile time
+// TextualName - The name of the function in the final binary.
+#ifndef SWIFT_FUNC
+#define SWIFT_FUNC(Name, MemBehavior, TextualName) KIND(Name, MemBehavior)
+#endif
+
+// SWIFT_NEVER_NONATOMIC_FUNC(Name, MemBehavior, TextualName)
+//
+// This defines a special swift function known to the optimizer that does not
+// have a nonatomic form.
+//
+// Name - The name of the function
+// MemBehavior - The MemBehavior of the instruction that can be known at compile time
+// TextualName - The name of the function in the final binary.
+#ifndef SWIFT_NEVER_NONATOMIC_FUNC
+#define SWIFT_NEVER_NONATOMIC_FUNC(Name, MemBehavior, TextualName) SWIFT_FUNC(Name, MemBehavior, TextualName)
+#endif
+
+// SWIFT_INTERNAL_NEVER_NONATOMIC_FUNC(Name, MemBehavior, TextualName)
+//
+// This defines a special swift function known to the optimizer that does not
+// have a nonatomic form and has an internal prefix (i.e. '__').
+//
+// Name - The name of the function
+// MemBehavior - The MemBehavior of the instruction that can be known at compile time
+// TextualName - The name of the function in the final binary.
+#ifndef SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC
+#define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(Name, MemBehavior, TextualName) SWIFT_FUNC(Name, MemBehavior, TextualName)
+#endif
+
+// OBJC_FUNC(Name, MemBehavior, TextualName)
+//
+// This defines a special objc function known to the optimizer that may have an
+// atomic and nonatomic form.
+//
+// Name - The name of the function
+// MemBehavior - The MemBehavior of the instruction that can be known at compile time
+// TextualName - The name of the function in the final binary.
+#ifndef OBJC_FUNC
+#define OBJC_FUNC(Name, MemBehavior, TextualName) KIND(Name, MemBehavior)
+#endif
+
+/// An instruction with this classification is known to not access (read or
+/// write) memory.
+KIND(NoMemoryAccessed, NoModRef)
+
+/// void swift_retain(SwiftHeapObject *object)
+SWIFT_FUNC(Retain, NoModRef, retain)
+
+/// void swift_retain_n(SwiftHeapObject *object)
+SWIFT_FUNC(RetainN, NoModRef, retain_n)
+
+/// void swift::swift_retainUnowned(HeapObject *object)
+SWIFT_FUNC(RetainUnowned, NoModRef, retainUnowned)
+
+/// void swift_checkUnowned(HeapObject *object)
+SWIFT_FUNC(CheckUnowned, NoModRef, checkUnowned)
+
+/// void swift_release(SwiftHeapObject *object)
+SWIFT_FUNC(Release, ModRef, release)
+
+/// void swift_release_n(SwiftHeapObject *object)
+SWIFT_FUNC(ReleaseN, ModRef, release_n)
+
+/// SwiftHeapObject *swift_allocObject(SwiftHeapMetadata *metadata,
+///                                    size_t size, size_t alignment)
+SWIFT_NEVER_NONATOMIC_FUNC(AllocObject, NoModRef, allocObject)
+
+/// void objc_release(%objc_object* %P)
+OBJC_FUNC(ObjCRelease, ModRef, release)
+
+/// %objc_object* objc_retain(%objc_object* %P)
+OBJC_FUNC(ObjCRetain, NoModRef, retain)
+
+/// void swift_unknownRetain(%swift.refcounted* %P)
+SWIFT_FUNC(UnknownRetain, NoModRef, unknownRetain)
+
+/// void swift_unknownRetain_n(%swift.refcounted* %P)
+SWIFT_FUNC(UnknownRetainN, NoModRef, unknownRetain_n)
+
+/// void swift_unknownRelease(%swift.refcounted* %P)
+SWIFT_FUNC(UnknownRelease, ModRef, unknownRelease)
+
+/// void swift_unknownRelease_n(%swift.refcounted* %P)
+SWIFT_FUNC(UnknownReleaseN, ModRef, unknownRelease_n)
+
+/// void __swift_fixLifetime(%swift.refcounted* %P)
+SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(FixLifetime, NoModRef, fixLifetime)
+
+/// void swift_bridgeObjectRetain(%swift.refcounted* %P)
+SWIFT_FUNC(BridgeRetain, NoModRef, bridgeObjectRetain)
+
+/// void swift_bridgeObjectRetain_n(%swift.refcounted* %P)
+SWIFT_FUNC(BridgeRetainN, NoModRef, bridgeObjectRetain_n)
+
+/// void swift_bridgeObjectRelease(%swift.refcounted* %P)
+SWIFT_FUNC(BridgeRelease, ModRef, bridgeObjectRelease)
+
+/// void swift_bridgeObjectRelease_n(%swift.refcounted* %P)
+SWIFT_FUNC(BridgeReleaseN, ModRef, bridgeObjectRelease_n)
+
+/// borrow source is the value that was borrowed from. borrow_dest is the
+/// borrowed ref.
+///
+/// TODO: We may want to communicate to the optimizer that this does not have
+/// global effects.
+///
+/// void __swift_endBorrow(i8* %borrow_source, i8* %borrow_dest)
+SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC(EndBorrow, ModRef, endBorrow)
+
+/// This is not a runtime function that we support.  Maybe it is not a call,
+/// or is a call to something we don't care about.
+KIND(Unknown, ModRef)
+
+#undef OBJC_NEVER_NONATOMIC_FUNC
+#undef SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC
+#undef SWIFT_NEVER_NONATOMIC_FUNC
+#undef OBJC_FUNC
+#undef SWIFT_FUNC
+#undef KIND
diff --git a/lib/LLVMPasses/LLVMSwiftAA.cpp b/lib/LLVMPasses/LLVMSwiftAA.cpp
index d85e63f..ac23cfe 100644
--- a/lib/LLVMPasses/LLVMSwiftAA.cpp
+++ b/lib/LLVMPasses/LLVMSwiftAA.cpp
@@ -17,42 +17,28 @@
 #include "llvm/IR/Module.h"
 
 using namespace llvm;
-using swift::SwiftAAResult;
-using swift::SwiftAAWrapperPass;
+using namespace swift;
 
 //===----------------------------------------------------------------------===//
 //                           Alias Analysis Result
 //===----------------------------------------------------------------------===//
 
-llvm::ModRefInfo SwiftAAResult::getModRefInfo(llvm::ImmutableCallSite CS,
-                                              const llvm::MemoryLocation &Loc) {
-  // We know the mod-ref behavior of various runtime functions.
-  switch (classifyInstruction(*CS.getInstruction())) {
-  case RT_AllocObject:
-  case RT_NoMemoryAccessed:
-  case RT_Retain:
-  case RT_RetainUnowned:
-  case RT_CheckUnowned:
-  case RT_ObjCRetain:
-  case RT_BridgeRetain:
-  case RT_UnknownRetain:
-  case RT_RetainN:
-  case RT_UnknownRetainN:
-  case RT_BridgeRetainN:
-  case RT_FixLifetime:
-    // These entrypoints don't modify any compiler-visible state.
-    return MRI_NoModRef;
-  case RT_ReleaseN:
-  case RT_UnknownReleaseN:
-  case RT_BridgeReleaseN:
-  case RT_Release:
-  case RT_ObjCRelease:
-  case RT_BridgeRelease:
-  case RT_UnknownRelease:
-  case RT_Unknown:
-    break;
+static ModRefInfo getConservativeModRefForKind(const llvm::Instruction &I) {
+  switch (classifyInstruction(I)) {
+#define KIND(Name, MemBehavior) case RT_ ## Name: return MRI_ ## MemBehavior;
+#include "LLVMSwift.def"
   }
+}
 
+ModRefInfo SwiftAAResult::getModRefInfo(llvm::ImmutableCallSite CS,
+                                        const llvm::MemoryLocation &Loc) {
+  // We know at compile time that certain entry points do not modify any
+  // compiler-visible state ever. Quickly check if we have one of those
+  // instructions and return if so.
+  if (MRI_NoModRef == getConservativeModRefForKind(*CS.getInstruction()))
+    return MRI_NoModRef;
+
+  // Otherwise, delegate to the rest of the AA ModRefInfo machinery.
   return AAResultBase::getModRefInfo(CS, Loc);
 }
 
diff --git a/lib/LLVMPasses/LLVMSwiftRCIdentity.cpp b/lib/LLVMPasses/LLVMSwiftRCIdentity.cpp
index 24e4fb4..bb125ca 100644
--- a/lib/LLVMPasses/LLVMSwiftRCIdentity.cpp
+++ b/lib/LLVMPasses/LLVMSwiftRCIdentity.cpp
@@ -57,6 +57,7 @@
   case RT_RetainUnowned:
   case RT_CheckUnowned:
   case RT_ObjCRelease:
+  case RT_EndBorrow:
     break;
   // ObjC forwards references.
   case RT_ObjCRetain:
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index fcfa42b..8caf641 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -739,20 +739,45 @@
       // we will synthesize:
       //  @available(iOS, introduced: 8.0)
       //  @available(OSX, introduced: 10.10)
+      //
+      // Similarly if we have a language version spec in the spec
+      // list, create an implicit AvailableAttr with the specified
+      // version as the introduced argument. For example, if we have
+      //   @available(swift 3.1)
+      // we will synthesize
+      //   @available(swift, introduced: 3.1)
+
       for (auto *Spec : Specs) {
-        auto *VersionSpec = dyn_cast<VersionConstraintAvailabilitySpec>(Spec);
-        if (!VersionSpec)
+        PlatformKind Platform;
+        clang::VersionTuple Version;
+        PlatformAgnosticAvailabilityKind PlatformAgnostic;
+
+        if (auto *PlatformVersionSpec =
+            dyn_cast<PlatformVersionConstraintAvailabilitySpec>(Spec)) {
+          Platform = PlatformVersionSpec->getPlatform();
+          Version = PlatformVersionSpec->getVersion();
+          PlatformAgnostic = PlatformAgnosticAvailabilityKind::None;
+
+        } else if (auto *LanguageVersionSpec =
+                   dyn_cast<LanguageVersionConstraintAvailabilitySpec>(Spec)) {
+          Platform = PlatformKind::none;
+          Version = LanguageVersionSpec->getVersion();
+          PlatformAgnostic =
+            PlatformAgnosticAvailabilityKind::SwiftVersionSpecific;
+
+        } else {
           continue;
+        }
 
         Attributes.add(new (Context)
                        AvailableAttr(AtLoc, AttrRange,
-                                     VersionSpec->getPlatform(),
+                                     Platform,
                                      /*Message=*/StringRef(),
                                      /*Renamed=*/StringRef(),
-                                     /*Introduced=*/VersionSpec->getVersion(),
+                                     /*Introduced=*/Version,
                                      /*Deprecated=*/clang::VersionTuple(),
                                      /*Obsoleted=*/clang::VersionTuple(),
-                                     UnconditionalAvailabilityKind::None,
+                                     PlatformAgnostic,
                                      /*Implicit=*/true));
       }
 
@@ -769,7 +794,7 @@
 
     StringRef Message, Renamed;
     clang::VersionTuple Introduced, Deprecated, Obsoleted;
-    auto Unconditional = UnconditionalAvailabilityKind::None;
+    auto PlatformAgnostic = PlatformAgnosticAvailabilityKind::None;
     bool AnyAnnotations = false;
     int ParamIndex = 0;
 
@@ -860,12 +885,12 @@
 
       case IsDeprecated:
         if (!findAttrValueDelimiter()) {
-          if (Unconditional != UnconditionalAvailabilityKind::None) {
+          if (PlatformAgnostic != PlatformAgnosticAvailabilityKind::None) {
             diagnose(Tok, diag::attr_availability_unavailable_deprecated,
                      AttrName);
           }
 
-          Unconditional = UnconditionalAvailabilityKind::Deprecated;
+          PlatformAgnostic = PlatformAgnosticAvailabilityKind::Deprecated;
           break;
         }
         SWIFT_FALLTHROUGH;
@@ -903,12 +928,12 @@
       }
 
       case IsUnavailable:
-        if (Unconditional != UnconditionalAvailabilityKind::None) {
+        if (PlatformAgnostic != PlatformAgnosticAvailabilityKind::None) {
           diagnose(Tok, diag::attr_availability_unavailable_deprecated,
                    AttrName);
         }
 
-        Unconditional = UnconditionalAvailabilityKind::Unavailable;
+        PlatformAgnostic = PlatformAgnosticAvailabilityKind::Unavailable;
         break;
 
       case IsInvalid:
@@ -934,6 +959,22 @@
 
     if (!DiscardAttribute) {
       auto PlatformKind = platformFromString(Platform);
+
+      // Treat 'swift' as a valid version-qualifying token, when
+      // at least some versions were mentioned and no other
+      // platform-agnostic availability spec has been provided.
+      bool SomeVersion = (!Introduced.empty() ||
+                          !Deprecated.empty() ||
+                          !Obsoleted.empty());
+      if (!PlatformKind.hasValue() &&
+          Platform == "swift" &&
+          SomeVersion &&
+          PlatformAgnostic == PlatformAgnosticAvailabilityKind::None) {
+        PlatformKind = PlatformKind::none;
+        PlatformAgnostic =
+          PlatformAgnosticAvailabilityKind::SwiftVersionSpecific;
+      }
+
       if (PlatformKind.hasValue()) {
         Attributes.add(new (Context)
                        AvailableAttr(AtLoc, AttrRange,
@@ -942,7 +983,7 @@
                                         Introduced,
                                         Deprecated,
                                         Obsoleted,
-                                        Unconditional,
+                                        PlatformAgnostic,
                                         /*Implicit=*/false));
       } else {
         // Not a known platform. Just drop the attribute.
@@ -1619,7 +1660,7 @@
   }
 }
 
-static bool isKeywordPossibleDeclStart(const Token &Tok) {
+bool swift::isKeywordPossibleDeclStart(const Token &Tok) {
   switch (Tok.getKind()) {
   case tok::at_sign:
   case tok::kw_associatedtype:
@@ -5482,6 +5523,11 @@
   
   Identifier Name = Context.getIdentifier(Tok.getText());
   SourceLoc NameLoc = consumeToken();
+    
+  if (Attributes.hasAttribute<PostfixAttr>()) {
+    if (!Name.empty() && (Name.get()[0] == '?' || Name.get()[0] == '!'))
+      diagnose(NameLoc, diag::expected_operator_name_after_operator);      
+  }
   
   auto Result = parseDeclOperatorImpl(OperatorLoc, Name, NameLoc, Attributes);
 
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index b91a6aa..c817553 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -2969,7 +2969,8 @@
 ///
 ///  availability-spec:
 ///     '*'
-///     version-constraint-spec
+///     language-version-constraint-spec
+///     platform-version-constraint-spec
 ParserResult<AvailabilitySpec> Parser::parseAvailabilitySpec() {
   if (Tok.isBinaryOperator() && Tok.getText() == "*") {
     SourceLoc StarLoc = Tok.getLoc();
@@ -2977,15 +2978,42 @@
 
     return makeParserResult(new (Context) OtherPlatformAvailabilitySpec(StarLoc));
   }
-  return parseVersionConstraintSpec();
+  if (Tok.isIdentifierOrUnderscore() && Tok.getText() == "swift") {
+    return parseLanguageVersionConstraintSpec();
+  }
+
+  return parsePlatformVersionConstraintSpec();
 }
 
-/// Parse version constraint specification.
+/// Parse language-version constraint specification.
 ///
-///  version-constraint-spec:
+///  language-version-constraint-spec:
+///     "swift" version-tuple
+ParserResult<LanguageVersionConstraintAvailabilitySpec>
+Parser::parseLanguageVersionConstraintSpec() {
+  SourceLoc SwiftLoc;
+  clang::VersionTuple Version;
+  SourceRange VersionRange;
+  if (!(Tok.isIdentifierOrUnderscore() && Tok.getText() == "swift"))
+    return nullptr;
+
+  SwiftLoc = Tok.getLoc();
+  consumeToken();
+  if (parseVersionTuple(Version, VersionRange,
+                        diag::avail_query_expected_version_number)) {
+    return nullptr;
+  }
+  return makeParserResult(new (Context)
+                          LanguageVersionConstraintAvailabilitySpec(
+                            SwiftLoc, Version, VersionRange));
+}
+
+/// Parse platform-version constraint specification.
+///
+///  platform-version-constraint-spec:
 ///     identifier version-comparison version-tuple
-ParserResult<VersionConstraintAvailabilitySpec>
-Parser::parseVersionConstraintSpec() {
+ParserResult<PlatformVersionConstraintAvailabilitySpec>
+Parser::parsePlatformVersionConstraintSpec() {
   Identifier PlatformIdentifier;
   SourceLoc PlatformLoc;
   if (Tok.is(tok::code_complete)) {
@@ -3024,7 +3052,7 @@
     return nullptr;
   }
 
-  return makeParserResult(new (Context) VersionConstraintAvailabilitySpec(
+  return makeParserResult(new (Context) PlatformVersionConstraintAvailabilitySpec(
       Platform.getValue(), PlatformLoc, Version, VersionRange));
 }
 
diff --git a/lib/Parse/ParsePattern.cpp b/lib/Parse/ParsePattern.cpp
index ef02fdd..a6f5910 100644
--- a/lib/Parse/ParsePattern.cpp
+++ b/lib/Parse/ParsePattern.cpp
@@ -324,6 +324,7 @@
         diagnose(Tok, diag::expected_parameter_name);
         param.isInvalid = true;
         param.FirstNameLoc = Tok.getLoc();
+        status.setIsParseError();
       }
     }
                         
diff --git a/lib/Parse/ParseSIL.cpp b/lib/Parse/ParseSIL.cpp
index 01a6c5d..0fc2834 100644
--- a/lib/Parse/ParseSIL.cpp
+++ b/lib/Parse/ParseSIL.cpp
@@ -1141,7 +1141,6 @@
   return false;
 }
 
-
 /// getInstructionKind - This method maps the string form of a SIL instruction
 /// opcode to an enum.
 bool SILParser::parseSILOpcode(ValueKind &Opcode, SourceLoc &OpcodeLoc,
@@ -1151,144 +1150,10 @@
   // Parse this textually to avoid Swift keywords (like 'return') from
   // interfering with opcode recognition.
   Opcode = llvm::StringSwitch<ValueKind>(OpcodeName)
-    .Case("alloc_box", ValueKind::AllocBoxInst)
-    .Case("alloc_existential_box", ValueKind::AllocExistentialBoxInst)
-    .Case("address_to_pointer", ValueKind::AddressToPointerInst)
-    .Case("alloc_stack", ValueKind::AllocStackInst)
-    .Case("alloc_ref", ValueKind::AllocRefInst)
-    .Case("alloc_ref_dynamic", ValueKind::AllocRefDynamicInst)
-    .Case("alloc_value_buffer", ValueKind::AllocValueBufferInst)
-    .Case("bind_memory", ValueKind::BindMemoryInst)
-    .Case("value_metatype", ValueKind::ValueMetatypeInst)
-    .Case("witness_method", ValueKind::WitnessMethodInst)
-    .Case("apply", ValueKind::ApplyInst)
-    .Case("assign", ValueKind::AssignInst)
-    .Case("autorelease_value", ValueKind::AutoreleaseValueInst)
-    .Case("br", ValueKind::BranchInst)
-    .Case("builtin", ValueKind::BuiltinInst)
-    .Case("bridge_object_to_ref", ValueKind::BridgeObjectToRefInst)
-    .Case("bridge_object_to_word", ValueKind::BridgeObjectToWordInst)
-    .Case("checked_cast_br", ValueKind::CheckedCastBranchInst)
-    .Case("checked_cast_addr_br", ValueKind::CheckedCastAddrBranchInst)
-    .Case("class_method", ValueKind::ClassMethodInst)
-    .Case("cond_br", ValueKind::CondBranchInst)
-    .Case("cond_fail", ValueKind::CondFailInst)
-    .Case("convert_function", ValueKind::ConvertFunctionInst)
-    .Case("copy_addr", ValueKind::CopyAddrInst)
-    .Case("copy_block", ValueKind::CopyBlockInst)
-    .Case("dealloc_box", ValueKind::DeallocBoxInst)
-    .Case("dealloc_existential_box", ValueKind::DeallocExistentialBoxInst)
-    .Case("dealloc_ref", ValueKind::DeallocRefInst)
-    .Case("dealloc_partial_ref", ValueKind::DeallocPartialRefInst)
-    .Case("dealloc_stack", ValueKind::DeallocStackInst)
-    .Case("dealloc_value_buffer", ValueKind::DeallocValueBufferInst)
-    .Case("debug_value", ValueKind::DebugValueInst)
-    .Case("debug_value_addr", ValueKind::DebugValueAddrInst)
-    .Case("deinit_existential_addr", ValueKind::DeinitExistentialAddrInst)
-    .Case("destroy_addr", ValueKind::DestroyAddrInst)
-    .Case("release_value", ValueKind::ReleaseValueInst)
-    .Case("dynamic_method", ValueKind::DynamicMethodInst)
-    .Case("dynamic_method_br", ValueKind::DynamicMethodBranchInst)
-    .Case("enum", ValueKind::EnumInst)
-    .Case("fix_lifetime", ValueKind::FixLifetimeInst)
-    .Case("float_literal", ValueKind::FloatLiteralInst)
-    .Case("index_addr", ValueKind::IndexAddrInst)
-    .Case("index_raw_pointer", ValueKind::IndexRawPointerInst)
-    .Case("init_block_storage_header", ValueKind::InitBlockStorageHeaderInst)
-    .Case("init_enum_data_addr", ValueKind::InitEnumDataAddrInst)
-    .Case("init_existential_addr", ValueKind::InitExistentialAddrInst)
-    .Case("init_existential_metatype", ValueKind::InitExistentialMetatypeInst)
-    .Case("init_existential_ref", ValueKind::InitExistentialRefInst)
-    .Case("inject_enum_addr", ValueKind::InjectEnumAddrInst)
-    .Case("integer_literal", ValueKind::IntegerLiteralInst)
-    .Case("is_nonnull", ValueKind::IsNonnullInst)
-    .Case("is_unique", ValueKind::IsUniqueInst)
-    .Case("is_unique_or_pinned", ValueKind::IsUniqueOrPinnedInst)
-    .Case("function_ref", ValueKind::FunctionRefInst)
-    .Case("load", ValueKind::LoadInst)
-    .Case("load_unowned", ValueKind::LoadUnownedInst)
-    .Case("load_weak", ValueKind::LoadWeakInst)
-    .Case("mark_dependence", ValueKind::MarkDependenceInst)
-    .Case("mark_uninitialized", ValueKind::MarkUninitializedInst)
-    .Case("mark_uninitialized_behavior",
-          ValueKind::MarkUninitializedBehaviorInst)
-    .Case("mark_function_escape", ValueKind::MarkFunctionEscapeInst)
-    .Case("metatype", ValueKind::MetatypeInst)
-    .Case("objc_existential_metatype_to_object",
-          ValueKind::ObjCExistentialMetatypeToObjectInst)
-    .Case("objc_metatype_to_object", ValueKind::ObjCMetatypeToObjectInst)
-    .Case("objc_protocol", ValueKind::ObjCProtocolInst)
-    .Case("objc_to_thick_metatype", ValueKind::ObjCToThickMetatypeInst)
-    .Case("open_existential_addr", ValueKind::OpenExistentialAddrInst)
-    .Case("open_existential_box", ValueKind::OpenExistentialBoxInst)
-    .Case("open_existential_metatype", ValueKind::OpenExistentialMetatypeInst)
-    .Case("open_existential_ref", ValueKind::OpenExistentialRefInst)
-    .Case("partial_apply", ValueKind::PartialApplyInst)
-    .Case("pointer_to_address", ValueKind::PointerToAddressInst)
-    .Case("pointer_to_thin_function", ValueKind::PointerToThinFunctionInst)
-    .Case("project_block_storage", ValueKind::ProjectBlockStorageInst)
-    .Case("project_box", ValueKind::ProjectBoxInst)
-    .Case("project_existential_box", ValueKind::ProjectExistentialBoxInst)
-    .Case("project_value_buffer", ValueKind::ProjectValueBufferInst)
-    .Case("existential_metatype", ValueKind::ExistentialMetatypeInst)
-    .Case("raw_pointer_to_ref", ValueKind::RawPointerToRefInst)
-    .Case("ref_element_addr", ValueKind::RefElementAddrInst)
-    .Case("ref_tail_addr", ValueKind::RefTailAddrInst)
-    .Case("ref_to_bridge_object", ValueKind::RefToBridgeObjectInst)
-    .Case("ref_to_raw_pointer", ValueKind::RefToRawPointerInst)
-    .Case("ref_to_unmanaged", ValueKind::RefToUnmanagedInst)
-    .Case("ref_to_unowned", ValueKind::RefToUnownedInst)
-    .Case("retain_value", ValueKind::RetainValueInst)
-    .Case("alloc_global", ValueKind::AllocGlobalInst)
-    .Case("global_addr", ValueKind::GlobalAddrInst)
-    .Case("strong_pin", ValueKind::StrongPinInst)
-    .Case("strong_release", ValueKind::StrongReleaseInst)
-    .Case("strong_retain", ValueKind::StrongRetainInst)
-    .Case("strong_retain_unowned", ValueKind::StrongRetainUnownedInst)
-    .Case("strong_unpin", ValueKind::StrongUnpinInst)
-    .Case("return", ValueKind::ReturnInst)
-    .Case("select_enum", ValueKind::SelectEnumInst)
-    .Case("select_enum_addr", ValueKind::SelectEnumAddrInst)
-    .Case("select_value", ValueKind::SelectValueInst)
-    .Case("set_deallocating", ValueKind::SetDeallocatingInst)
-    .Case("store", ValueKind::StoreInst)
-    .Case("store_unowned", ValueKind::StoreUnownedInst)
-    .Case("store_weak", ValueKind::StoreWeakInst)
-    .Case("string_literal", ValueKind::StringLiteralInst)
-    .Case("struct", ValueKind::StructInst)
-    .Case("struct_element_addr", ValueKind::StructElementAddrInst)
-    .Case("struct_extract", ValueKind::StructExtractInst)
-    .Case("super_method", ValueKind::SuperMethodInst)
-    .Case("switch_enum", ValueKind::SwitchEnumInst)
-    .Case("switch_enum_addr",
-          ValueKind::SwitchEnumAddrInst)
-    .Case("switch_value", ValueKind::SwitchValueInst)
-    .Case("tail_addr", ValueKind::TailAddrInst)
-    .Case("try_apply", ValueKind::TryApplyInst)
-    .Case("unchecked_enum_data", ValueKind::UncheckedEnumDataInst)
-    .Case("unchecked_addr_cast", ValueKind::UncheckedAddrCastInst)
-    .Case("unchecked_trivial_bit_cast", ValueKind::UncheckedTrivialBitCastInst)
-    .Case("unchecked_bitwise_cast", ValueKind::UncheckedBitwiseCastInst)
-    .Case("unchecked_ref_cast", ValueKind::UncheckedRefCastInst)
-    .Case("unchecked_ref_cast_addr", ValueKind::UncheckedRefCastAddrInst)
-    .Case("unchecked_take_enum_data_addr", ValueKind::UncheckedTakeEnumDataAddrInst)
-    .Case("thick_to_objc_metatype", ValueKind::ThickToObjCMetatypeInst)
-    .Case("thin_function_to_pointer", ValueKind::ThinFunctionToPointerInst)
-    .Case("thin_to_thick_function", ValueKind::ThinToThickFunctionInst)
-    .Case("throw", ValueKind::ThrowInst)
-    .Case("tuple", ValueKind::TupleInst)
-    .Case("tuple_element_addr", ValueKind::TupleElementAddrInst)
-    .Case("tuple_extract", ValueKind::TupleExtractInst)
-    .Case("unconditional_checked_cast", ValueKind::UnconditionalCheckedCastInst)
-    .Case("unconditional_checked_cast_addr",
-          ValueKind::UnconditionalCheckedCastAddrInst)
-    .Case("unmanaged_to_ref", ValueKind::UnmanagedToRefInst)
-    .Case("unowned_retain", ValueKind::UnownedRetainInst)
-    .Case("unowned_release", ValueKind::UnownedReleaseInst)
-    .Case("unowned_to_ref", ValueKind::UnownedToRefInst)
-    .Case("unreachable", ValueKind::UnreachableInst)
-    .Case("upcast", ValueKind::UpcastInst)
-    .Default(ValueKind::SILArgument);
+#define INST(Id, Parent, TextualName, MemBehavior, MayRelease)                 \
+  .Case(#TextualName, ValueKind::Id)
+#include "swift/SIL/SILNodes.def"
+               .Default(ValueKind::SILArgument);
 
   if (Opcode != ValueKind::SILArgument) {
     P.consumeToken();
@@ -1617,6 +1482,58 @@
   return false;
 }
 
+static bool parseLoadOwnershipQualifier(LoadOwnershipQualifier &Result,
+                                        SILParser &P) {
+  StringRef Str;
+  // If we do not parse '[' ... ']', we have unqualified. Set value and return.
+  if (!parseSILOptional(Str, P)) {
+    Result = LoadOwnershipQualifier::Unqualified;
+    return false;
+  }
+
+  // Then try to parse one of our other qualifiers. We do not support parsing
+  // unqualified here so we use that as our fail value.
+  auto Tmp = llvm::StringSwitch<LoadOwnershipQualifier>(Str)
+                 .Case("take", LoadOwnershipQualifier::Take)
+                 .Case("copy", LoadOwnershipQualifier::Copy)
+                 .Case("trivial", LoadOwnershipQualifier::Trivial)
+                 .Default(LoadOwnershipQualifier::Unqualified);
+
+  // Thus return true (following the conventions in this file) if we fail.
+  if (Tmp == LoadOwnershipQualifier::Unqualified)
+    return true;
+
+  // Otherwise, assign Result and return false.
+  Result = Tmp;
+  return false;
+}
+
+static bool parseStoreOwnershipQualifier(StoreOwnershipQualifier &Result,
+                                         SILParser &P) {
+  StringRef Str;
+  // If we do not parse '[' ... ']', we have unqualified. Set value and return.
+  if (!parseSILOptional(Str, P)) {
+    Result = StoreOwnershipQualifier::Unqualified;
+    return false;
+  }
+
+  // Then try to parse one of our other qualifiers. We do not support parsing
+  // unqualified here so we use that as our fail value.
+  auto Tmp = llvm::StringSwitch<StoreOwnershipQualifier>(Str)
+                 .Case("init", StoreOwnershipQualifier::Init)
+                 .Case("assign", StoreOwnershipQualifier::Assign)
+                 .Case("trivial", StoreOwnershipQualifier::Trivial)
+                 .Default(StoreOwnershipQualifier::Unqualified);
+
+  // Thus return true (following the conventions in this file) if we fail.
+  if (Tmp == StoreOwnershipQualifier::Unqualified)
+    return true;
+
+  // Otherwise, assign Result and return false.
+  Result = Tmp;
+  return false;
+}
+
 /// sil-instruction-def ::= (sil-value-name '=')? sil-instruction
 ///                         (',' sil-scope-ref)? (',' sil-loc)?
 bool SILParser::parseSILInstruction(SILBasicBlock *BB, SILBuilder &B) {
@@ -2007,7 +1924,6 @@
     UNARY_INSTRUCTION(IsUnique)
     UNARY_INSTRUCTION(IsUniqueOrPinned)
     UNARY_INSTRUCTION(DestroyAddr)
-    UNARY_INSTRUCTION(Load)
     UNARY_INSTRUCTION(CondFail)
     REFCOUNTING_INSTRUCTION(StrongPin)
     REFCOUNTING_INSTRUCTION(StrongRetain)
@@ -2037,6 +1953,18 @@
    break;
  }
 
+ case ValueKind::LoadInst: {
+   LoadOwnershipQualifier Qualifier;
+   SourceLoc AddrLoc;
+
+   if (parseLoadOwnershipQualifier(Qualifier, *this) ||
+       parseTypedValueRef(Val, AddrLoc, B) || parseSILDebugLocation(InstLoc, B))
+     return true;
+
+   ResultVal = B.createLoad(InstLoc, Val, Qualifier);
+   break;
+ }
+
  case ValueKind::LoadUnownedInst:
  case ValueKind::LoadWeakInst: {
    bool isTake = false;
@@ -2452,8 +2380,43 @@
     break;
   }
 
+  case ValueKind::StoreInst: {
+    UnresolvedValueName From;
+    SourceLoc ToLoc, AddrLoc;
+    Identifier ToToken;
+    SILValue AddrVal;
+    StoreOwnershipQualifier Qualifier;
+    if (parseValueName(From) ||
+        parseSILIdentifier(ToToken, ToLoc, diag::expected_tok_in_sil_instr,
+                           "to"))
+      return true;
+
+    if (parseStoreOwnershipQualifier(Qualifier, *this))
+      return true;
+
+    if (parseTypedValueRef(AddrVal, AddrLoc, B) ||
+        parseSILDebugLocation(InstLoc, B))
+      return true;
+
+    if (ToToken.str() != "to") {
+      P.diagnose(ToLoc, diag::expected_tok_in_sil_instr, "to");
+      return true;
+    }
+
+    if (!AddrVal->getType().isAddress()) {
+      P.diagnose(AddrLoc, diag::sil_operand_not_address, "destination",
+                 OpcodeName);
+      return true;
+    }
+
+    SILType ValType = AddrVal->getType().getObjectType();
+
+    ResultVal = B.createStore(InstLoc, getLocalValue(From, ValType, InstLoc, B),
+                              AddrVal, Qualifier);
+    break;
+  }
+
   case ValueKind::AssignInst:
-  case ValueKind::StoreInst:
   case ValueKind::StoreUnownedInst:
   case ValueKind::StoreWeakInst: {
     UnresolvedValueName from;
diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp
index ed8e65a..e893a14 100644
--- a/lib/Parse/ParseStmt.cpp
+++ b/lib/Parse/ParseStmt.cpp
@@ -1041,13 +1041,28 @@
                                          ArrayRef<AvailabilitySpec *> Specs) {
   llvm::SmallSet<PlatformKind, 4> Platforms;
   bool HasOtherPlatformSpec = false;
+
+  if (Specs.size() == 1 &&
+      isa<LanguageVersionConstraintAvailabilitySpec>(Specs[0])) {
+    // @available(swift N) is allowed only in isolation; it cannot
+    // be combined with other availability specs in a single list.
+    return;
+  }
+
   for (auto *Spec : Specs) {
     if (isa<OtherPlatformAvailabilitySpec>(Spec)) {
       HasOtherPlatformSpec = true;
       continue;
     }
 
-    auto *VersionSpec = cast<VersionConstraintAvailabilitySpec>(Spec);
+    if (auto *LangSpec =
+        dyn_cast<LanguageVersionConstraintAvailabilitySpec>(Spec)) {
+      P.diagnose(LangSpec->getSwiftLoc(),
+                 diag::availability_swift_must_occur_alone);
+      continue;
+    }
+
+    auto *VersionSpec = cast<PlatformVersionConstraintAvailabilitySpec>(Spec);
     bool Inserted = Platforms.insert(VersionSpec->getPlatform()).second;
     if (!Inserted) {
       // Rule out multiple version specs referring to the same platform.
@@ -1082,6 +1097,15 @@
   SmallVector<AvailabilitySpec *, 5> Specs;
   ParserStatus Status = parseAvailabilitySpecList(Specs);
 
+  for (auto *Spec : Specs) {
+    if (auto *Lang =
+        dyn_cast<LanguageVersionConstraintAvailabilitySpec>(Spec)) {
+      diagnose(Lang->getSwiftLoc(),
+               diag::pound_available_swift_not_allowed);
+      Status.setIsParseError();
+    }
+  }
+
   SourceLoc RParenLoc;
   if (parseMatchingToken(tok::r_paren, RParenLoc,
                          diag::avail_query_expected_rparen, LParenLoc))
diff --git a/lib/Parse/ParseType.cpp b/lib/Parse/ParseType.cpp
index 0e8f182..abdd3fb 100644
--- a/lib/Parse/ParseType.cpp
+++ b/lib/Parse/ParseType.cpp
@@ -410,30 +410,20 @@
     SourceLoc ProtocolLoc = consumeToken(tok::kw_protocol);
     SourceLoc LAngleLoc = consumeStartingLess();
     
-    // Check for empty protocol composition.
-    if (startsWithGreater(Tok)) {
-      SourceLoc RAngleLoc = consumeStartingGreater();
-      auto AnyRange = SourceRange(ProtocolLoc, RAngleLoc);
-      
-      // Warn that 'protocol<>' is deprecated and offer to
-      // replace with the 'Any' keyword
-      diagnose(LAngleLoc, diag::deprecated_any_composition)
-        .fixItReplace(AnyRange, "Any");
-      
-      return makeParserResult(
-        ProtocolCompositionTypeRepr::createEmptyComposition(Context, ProtocolLoc));
-    }
-    
     // Parse the type-composition-list.
     ParserStatus Status;
     SmallVector<IdentTypeRepr *, 4> Protocols;
-    do {
-      // Parse the type-identifier.
-      ParserResult<TypeRepr> Protocol = parseTypeIdentifier();
-      Status |= Protocol;
-      if (auto *ident = dyn_cast_or_null<IdentTypeRepr>(Protocol.getPtrOrNull()))
-        Protocols.push_back(ident);
-    } while (consumeIf(tok::comma));
+    bool IsEmpty = startsWithGreater(Tok);
+    if (!IsEmpty) {
+      do {
+        // Parse the type-identifier.
+        ParserResult<TypeRepr> Protocol = parseTypeIdentifier();
+        Status |= Protocol;
+        if (auto *ident = dyn_cast_or_null<IdentTypeRepr>(
+                                                       Protocol.getPtrOrNull()))
+          Protocols.push_back(ident);
+      } while (consumeIf(tok::comma));
+    }
 
     // Check for the terminating '>'.
     SourceLoc RAngleLoc = PreviousLoc;
@@ -456,17 +446,21 @@
     if (Status.isSuccess()) {
       // Only if we have complete protocol<...> construct, diagnose deprecated.
 
-      auto extractText = [&](IdentTypeRepr *Ty) -> StringRef {
-        auto SourceRange = Ty->getSourceRange();
-        return SourceMgr.extractText(
-          Lexer::getCharSourceRangeFromSourceRange(SourceMgr, SourceRange));
-      };
       SmallString<32> replacement;
-      auto Begin = Protocols.begin();
-      replacement += extractText(*Begin);
-      while (++Begin != Protocols.end()) {
-        replacement += " & ";
+      if (Protocols.empty()) {
+        replacement = "Any";
+      } else {
+        auto extractText = [&](IdentTypeRepr *Ty) -> StringRef {
+          auto SourceRange = Ty->getSourceRange();
+          return SourceMgr.extractText(
+            Lexer::getCharSourceRangeFromSourceRange(SourceMgr, SourceRange));
+        };
+        auto Begin = Protocols.begin();
         replacement += extractText(*Begin);
+        while (++Begin != Protocols.end()) {
+          replacement += " & ";
+          replacement += extractText(*Begin);
+        }
       }
 
       // Copy trailing content after '>' to the replacement string.
@@ -474,15 +468,18 @@
       StringRef TrailingContent = L->getTokenAt(RAngleLoc).getRange().str().
         substr(1);
       if (!TrailingContent.empty()) {
-        replacement.insert(replacement.begin(), '(');
-        replacement += ")";
+        if (Protocols.size() > 1) {
+          replacement.insert(replacement.begin(), '(');
+          replacement += ")";
+        }
         replacement += TrailingContent;
       }
 
       // Replace 'protocol<T1, T2>' with 'T1 & T2'
       diagnose(ProtocolLoc,
-        Protocols.size() > 1 ? diag::deprecated_protocol_composition
-                             : diag::deprecated_protocol_composition_single)
+        IsEmpty              ? diag::deprecated_any_composition :
+        Protocols.size() > 1 ? diag::deprecated_protocol_composition :
+                               diag::deprecated_protocol_composition_single)
         .highlight(composition->getSourceRange())
         .fixItReplace(composition->getSourceRange(), replacement);
     }
diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp
index 8e145b4..a84ab9c 100644
--- a/lib/Parse/Parser.cpp
+++ b/lib/Parse/Parser.cpp
@@ -679,52 +679,46 @@
       RightLoc = Tok.getLoc();
       return Status;
     }
-    SourceLoc SepLoc = Tok.getLoc();
-    if (consumeIf(SeparatorK)) {
-      if (Tok.is(RightK)) {
-        if (!AllowSepAfterLast) {
-          diagnose(Tok, diag::unexpected_separator,
-                   SeparatorK == tok::comma ? "," : ";")
-            .fixItRemove(SourceRange(SepLoc));
-        }
+    // If we haven't made progress, or seeing any error, skip ahead.
+    if (Tok.getLoc() == StartLoc || Status.isError()) {
+      assert(Status.isError() && "no progress without error");
+      skipUntilDeclRBrace(RightK, SeparatorK);
+      if (Tok.is(RightK) || (!OptionalSep && Tok.isNot(SeparatorK)))
         break;
+    }
+    if (consumeIf(SeparatorK)) {
+      if (Tok.isNot(RightK))
+        continue;
+      if (!AllowSepAfterLast) {
+        diagnose(Tok, diag::unexpected_separator,
+                 SeparatorK == tok::comma ? "," : ";")
+          .fixItRemove(SourceRange(PreviousLoc));
       }
-      continue;
+      break;
+    }
+    // If we're in a comma-separated list, the next token is at the
+    // beginning of a new line and can never start an element, break.
+    if (SeparatorK == tok::comma && Tok.isAtStartOfLine() &&
+        (Tok.is(tok::r_brace) || isStartOfDecl() || isStartOfStmt())) {
+      break;
+    }
+    // If we found EOF or such, bailout.
+    if (Tok.isAny(tok::eof, tok::pound_endif)) {
+      IsInputIncomplete = true;
+      break;
     }
     if (!OptionalSep) {
-      // If we're in a comma-separated list and the next token starts a new
-      // declaration at the beginning of a new line, skip until the end.
-      if (SeparatorK == tok::comma && Tok.isAtStartOfLine() &&
-          isStartOfDecl() && Tok.getLoc() != StartLoc) {
-        skipUntilDeclRBrace(RightK, SeparatorK);
-        break;
-      }
-
       StringRef Separator = (SeparatorK == tok::comma ? "," : ";");
       diagnose(Tok, diag::expected_separator, Separator)
         .fixItInsertAfter(PreviousLoc, Separator);
       Status.setIsParseError();
     }
-
-
-    // If we haven't made progress, skip ahead
-    if (Tok.getLoc() == StartLoc) {
-      skipUntilDeclRBrace(RightK, SeparatorK);
-      if (Tok.is(RightK))
-        break;
-      if (Tok.is(tok::eof) || Tok.is(tok::pound_endif)) {
-        RightLoc = PreviousLoc.isValid()? PreviousLoc : Tok.getLoc();
-        IsInputIncomplete = true;
-        Status.setIsParseError();
-        return Status;
-      }
-      if (consumeIf(SeparatorK) || OptionalSep)
-        continue;
-      break;
-    }
   }
 
-  if (parseMatchingToken(RightK, RightLoc, ErrorDiag, LeftLoc)) {
+  if (Status.isError()) {
+    // If we've already got errors, don't emit missing RightK diagnostics.
+    RightLoc = Tok.is(RightK) ? consumeToken() : PreviousLoc;
+  } else if (parseMatchingToken(RightK, RightLoc, ErrorDiag, LeftLoc)) {
     Status.setIsParseError();
   }
 
diff --git a/lib/SIL/Bridging.cpp b/lib/SIL/Bridging.cpp
index b8da3dd..ff6c9fe 100644
--- a/lib/SIL/Bridging.cpp
+++ b/lib/SIL/Bridging.cpp
@@ -110,6 +110,7 @@
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Method:
   case SILFunctionTypeRepresentation::WitnessMethod:
+  case SILFunctionTypeRepresentation::Closure:
     // No bridging needed for native CCs.
     return t;
   case SILFunctionTypeRepresentation::CFunctionPointer:
@@ -185,6 +186,7 @@
     case SILFunctionType::Representation::Method:
     case SILFunctionType::Representation::ObjCMethod:
     case SILFunctionType::Representation::WitnessMethod:
+    case SILFunctionType::Representation::Closure:
       return t;
     case SILFunctionType::Representation::Thick: {
       // Thick functions (TODO: conditionally) get bridged to blocks.
diff --git a/lib/SIL/SILFunctionType.cpp b/lib/SIL/SILFunctionType.cpp
index 94985bf..f79386c 100644
--- a/lib/SIL/SILFunctionType.cpp
+++ b/lib/SIL/SILFunctionType.cpp
@@ -998,6 +998,7 @@
   case SILFunctionType::Representation::ObjCMethod:
   case SILFunctionType::Representation::Thick:
   case SILFunctionType::Representation::Method:
+  case SILFunctionType::Representation::Closure:
   case SILFunctionType::Representation::WitnessMethod: {
     switch (kind) {
     case SILDeclRef::Kind::Initializer:
@@ -2306,6 +2307,7 @@
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Method:
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::WitnessMethod:
     // No bridging needed for native functions.
     if (t->getExtInfo() == extInfo)
@@ -2461,6 +2463,7 @@
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::Method:
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::WitnessMethod:
     // Native functions don't need bridging.
     break;
diff --git a/lib/SIL/SILInstruction.cpp b/lib/SIL/SILInstruction.cpp
index 1ec5749..d3efef1 100644
--- a/lib/SIL/SILInstruction.cpp
+++ b/lib/SIL/SILInstruction.cpp
@@ -673,12 +673,12 @@
     ArrayRef<Operand> visit##CLASS(const CLASS *I) {                    \
       llvm_unreachable("accessing non-instruction " #CLASS);            \
     }
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR) \
-    ArrayRef<Operand> visit##CLASS(const CLASS *I) {                    \
-      ASSERT_IMPLEMENTS(CLASS, SILInstruction, getAllOperands,          \
-                        ArrayRef<Operand>() const);                     \
-      return I->getAllOperands();                                       \
-    }
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  ArrayRef<Operand> visit##CLASS(const CLASS *I) {                             \
+    ASSERT_IMPLEMENTS(CLASS, SILInstruction, getAllOperands,                   \
+                      ArrayRef<Operand>() const);                              \
+    return I->getAllOperands();                                                \
+  }
 #include "swift/SIL/SILNodes.def"
   };
 
@@ -690,12 +690,12 @@
     MutableArrayRef<Operand> visit##CLASS(const CLASS *I) {             \
       llvm_unreachable("accessing non-instruction " #CLASS);            \
     }
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR) \
-    MutableArrayRef<Operand> visit##CLASS(CLASS *I) {                   \
-      ASSERT_IMPLEMENTS(CLASS, SILInstruction, getAllOperands,          \
-                        MutableArrayRef<Operand>());                    \
-      return I->getAllOperands();                                       \
-    }
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  MutableArrayRef<Operand> visit##CLASS(CLASS *I) {                            \
+    ASSERT_IMPLEMENTS(CLASS, SILInstruction, getAllOperands,                   \
+                      MutableArrayRef<Operand>());                             \
+    return I->getAllOperands();                                                \
+  }
 #include "swift/SIL/SILNodes.def"
   };
 
@@ -711,13 +711,13 @@
     ArrayRef<Operand> visit##CLASS(const CLASS *I) {                    \
       llvm_unreachable("accessing non-instruction " #CLASS);            \
     }
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR)                    \
-    ArrayRef<Operand> visit##CLASS(const CLASS *I) {                           \
-      if (!IMPLEMENTS_METHOD(CLASS, SILInstruction, getTypeDependentOperands, \
-                             ArrayRef<Operand>() const))                       \
-        return {};                                                             \
-      return I->getTypeDependentOperands();                                 \
-    }
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  ArrayRef<Operand> visit##CLASS(const CLASS *I) {                             \
+    if (!IMPLEMENTS_METHOD(CLASS, SILInstruction, getTypeDependentOperands,    \
+                           ArrayRef<Operand>() const))                         \
+      return {};                                                               \
+    return I->getTypeDependentOperands();                                      \
+  }
 #include "swift/SIL/SILNodes.def"
   };
 
@@ -729,13 +729,13 @@
     MutableArrayRef<Operand> visit##CLASS(const CLASS *I) {             \
       llvm_unreachable("accessing non-instruction " #CLASS);            \
     }
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR)                    \
-    MutableArrayRef<Operand> visit##CLASS(CLASS *I) {                          \
-      if (!IMPLEMENTS_METHOD(CLASS, SILInstruction, getTypeDependentOperands, \
-                             MutableArrayRef<Operand>()))                      \
-        return {};                                                             \
-      return I->getTypeDependentOperands();                                 \
-    }
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  MutableArrayRef<Operand> visit##CLASS(CLASS *I) {                            \
+    if (!IMPLEMENTS_METHOD(CLASS, SILInstruction, getTypeDependentOperands,    \
+                           MutableArrayRef<Operand>()))                        \
+      return {};                                                               \
+    return I->getTypeDependentOperands();                                      \
+  }
 #include "swift/SIL/SILNodes.def"
   };
 } // end anonymous namespace
@@ -799,8 +799,9 @@
   }
 
   switch (getKind()) {
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR) \
-  case ValueKind::CLASS: return MemoryBehavior::MEMBEHAVIOR;
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  case ValueKind::CLASS:                                                       \
+    return MemoryBehavior::MEMBEHAVIOR;
 #include "swift/SIL/SILNodes.def"
   case ValueKind::SILArgument:
   case ValueKind::SILUndef:
@@ -811,8 +812,9 @@
 
 SILInstruction::ReleasingBehavior SILInstruction::getReleasingBehavior() const {
   switch (getKind()) {
-#define INST(CLASS, PARENT, MEMBEHAVIOR, RELEASINGBEHAVIOR) \
-  case ValueKind::CLASS: return ReleasingBehavior::RELEASINGBEHAVIOR;
+#define INST(CLASS, PARENT, TEXTUALNAME, MEMBEHAVIOR, RELEASINGBEHAVIOR)       \
+  case ValueKind::CLASS:                                                       \
+    return ReleasingBehavior::RELEASINGBEHAVIOR;
 #include "swift/SIL/SILNodes.def"
  case ValueKind::SILArgument:
  case ValueKind::SILUndef:
diff --git a/lib/SIL/SILInstructions.cpp b/lib/SIL/SILInstructions.cpp
index 3ffac00..cb4b7e2 100644
--- a/lib/SIL/SILInstructions.cpp
+++ b/lib/SIL/SILInstructions.cpp
@@ -656,8 +656,11 @@
   return Length;
 }
 
-StoreInst::StoreInst(SILDebugLocation Loc, SILValue Src, SILValue Dest)
-    : SILInstruction(ValueKind::StoreInst, Loc), Operands(this, Src, Dest) {}
+StoreInst::StoreInst(
+    SILDebugLocation Loc, SILValue Src, SILValue Dest,
+    StoreOwnershipQualifier Qualifier = StoreOwnershipQualifier::Unqualified)
+    : SILInstruction(ValueKind::StoreInst, Loc), Operands(this, Src, Dest),
+      OwnershipQualifier(Qualifier) {}
 
 AssignInst::AssignInst(SILDebugLocation Loc, SILValue Src, SILValue Dest)
     : SILInstruction(ValueKind::AssignInst, Loc), Operands(this, Src, Dest) {}
@@ -938,10 +941,10 @@
 
 
 TermInst::SuccessorListTy TermInst::getSuccessors() {
-  #define TERMINATOR(TYPE, PARENT, EFFECT, RELEASING) \
-    if (auto I = dyn_cast<TYPE>(this)) \
-      return I->getSuccessors();
-  #include "swift/SIL/SILNodes.def"
+#define TERMINATOR(TYPE, PARENT, TEXTUALNAME, EFFECT, RELEASING)               \
+  if (auto I = dyn_cast<TYPE>(this))                                           \
+    return I->getSuccessors();
+#include "swift/SIL/SILNodes.def"
 
   llvm_unreachable("not a terminator?!");
 }
diff --git a/lib/SIL/SILPrinter.cpp b/lib/SIL/SILPrinter.cpp
index 9989370..7966de2 100644
--- a/lib/SIL/SILPrinter.cpp
+++ b/lib/SIL/SILPrinter.cpp
@@ -30,6 +30,7 @@
 #include "swift/SIL/SILVTable.h"
 #include "swift/AST/Decl.h"
 #include "swift/AST/Expr.h"
+#include "swift/AST/GenericEnvironment.h"
 #include "swift/AST/Module.h"
 #include "swift/AST/PrintOptions.h"
 #include "swift/AST/Types.h"
@@ -730,6 +731,17 @@
     }
   }
 
+  void printInstOpCode(SILInstruction *I) {
+    // If we have a SILInstruction, print out the opcode.
+    switch (SILInstructionKind(I->getKind())) {
+#define INST(Id, Parent, TextualName, MemoryBehavior, ReleasingBehavior)       \
+  case SILInstructionKind::Id:                                                 \
+    *this << #TextualName " ";                                                 \
+    break;
+#include "swift/SIL/SILNodes.def"
+    }
+  }
+
   void print(SILValue V, bool PrintScopes = false) {
     // Lazily print any debug locations used in this value.
     if (PrintScopes)
@@ -751,7 +763,11 @@
       *this << Name << " = ";
     }
 
-    // Print the value.
+    // First if we have a SILInstruction, print the opcode.
+    if (auto *I = dyn_cast<SILInstruction>(V))
+      printInstOpCode(I);
+
+    // Then print the value.
     visit(V);
 
     bool printedSlashes = false;
@@ -834,7 +850,7 @@
   }
 
   void visitAllocStackInst(AllocStackInst *AVI) {
-    *this << "alloc_stack " << AVI->getElementType();
+    *this << AVI->getElementType();
     printDebugVar(AVI->getVarInfo());
   }
 
@@ -852,25 +868,22 @@
   }
 
   void visitAllocRefInst(AllocRefInst *ARI) {
-    *this << "alloc_ref ";
     printAllocRefInstBase(ARI);
     *this << ARI->getType();
   }
 
   void visitAllocRefDynamicInst(AllocRefDynamicInst *ARDI) {
-    *this << "alloc_ref_dynamic ";
     printAllocRefInstBase(ARDI);
     *this << getIDAndType(ARDI->getMetatypeOperand());
     *this << ", " << ARDI->getType();
   }
 
   void visitAllocValueBufferInst(AllocValueBufferInst *AVBI) {
-    *this << "alloc_value_buffer " << AVBI->getValueType()
-       << " in " << getIDAndType(AVBI->getOperand());
+    *this << AVBI->getValueType() << " in " << getIDAndType(AVBI->getOperand());
   }
 
   void visitAllocBoxInst(AllocBoxInst *ABI) {
-    *this << "alloc_box " << ABI->getElementType();
+    *this << ABI->getElementType();
     printDebugVar(ABI->getVarInfo());
   }
 
@@ -886,7 +899,6 @@
   }
 
   void visitApplyInst(ApplyInst *AI) {
-    *this << "apply ";
     if (AI->isNonThrowing())
       *this << "[nothrow] ";
     *this << getID(AI->getCallee());
@@ -899,7 +911,6 @@
   }
 
   void visitTryApplyInst(TryApplyInst *AI) {
-    *this << "try_apply ";
     *this << getID(AI->getCallee());
     printSubstitutions(AI->getSubstitutions());
     *this << '(';
@@ -912,7 +923,6 @@
   }
 
   void visitPartialApplyInst(PartialApplyInst *CI) {
-    *this << "partial_apply ";
     switch (CI->getFunctionType()->getCalleeConvention()) {
     case ParameterConvention::Direct_Owned:
       // Default; do nothing.
@@ -940,13 +950,12 @@
   }
 
   void visitFunctionRefInst(FunctionRefInst *FRI) {
-    *this << "function_ref ";
     FRI->getReferencedFunction()->printName(PrintState.OS);
     *this << " : " << FRI->getType();
   }
   
   void visitBuiltinInst(BuiltinInst *BI) {
-    *this << "builtin " << QuotedString(BI->getName().str());
+    *this << QuotedString(BI->getName().str());
     printSubstitutions(BI->getSubstitutions());
     *this << "(";
     
@@ -961,7 +970,6 @@
   }
   
   void visitAllocGlobalInst(AllocGlobalInst *AGI) {
-    *this << "alloc_global ";
     if (AGI->getReferencedGlobal()) {
       AGI->getReferencedGlobal()->printName(PrintState.OS);
     } else {
@@ -970,7 +978,6 @@
   }
   
   void visitGlobalAddrInst(GlobalAddrInst *GAI) {
-    *this << "global_addr ";
     if (GAI->getReferencedGlobal()) {
       GAI->getReferencedGlobal()->printName(PrintState.OS);
     } else {
@@ -981,10 +988,10 @@
 
   void visitIntegerLiteralInst(IntegerLiteralInst *ILI) {
     const auto &lit = ILI->getValue();
-    *this << "integer_literal " << ILI->getType() << ", " << lit;
+    *this << ILI->getType() << ", " << lit;
   }
   void visitFloatLiteralInst(FloatLiteralInst *FLI) {
-    *this << "float_literal " << FLI->getType() << ", 0x";
+    *this << FLI->getType() << ", 0x";
     APInt bits = FLI->getBits();
     *this << bits.toString(16, /*Signed*/ false);
     llvm::SmallString<12> decimal;
@@ -999,23 +1006,59 @@
     }
     llvm_unreachable("bad string literal encoding");
   }
+
   void visitStringLiteralInst(StringLiteralInst *SLI) {
-    *this << "string_literal " << getStringEncodingName(SLI->getEncoding())
-       << QuotedString(SLI->getValue());
+    *this << getStringEncodingName(SLI->getEncoding())
+          << QuotedString(SLI->getValue());
   }
+
+  void printLoadOwnershipQualifier(LoadOwnershipQualifier Qualifier) {
+    switch (Qualifier) {
+    case LoadOwnershipQualifier::Unqualified:
+      return;
+    case LoadOwnershipQualifier::Take:
+      *this << "[take] ";
+      return;
+    case LoadOwnershipQualifier::Copy:
+      *this << "[copy] ";
+      return;
+    case LoadOwnershipQualifier::Trivial:
+      *this << "[trivial] ";
+      return;
+    }
+  }
+
   void visitLoadInst(LoadInst *LI) {
-    *this << "load " << getIDAndType(LI->getOperand());
+    printLoadOwnershipQualifier(LI->getOwnershipQualifier());
+    *this << getIDAndType(LI->getOperand());
   }
+
+  void printStoreOwnershipQualifier(StoreOwnershipQualifier Qualifier) {
+    switch (Qualifier) {
+    case StoreOwnershipQualifier::Unqualified:
+      return;
+    case StoreOwnershipQualifier::Init:
+      *this << "[init] ";
+      return;
+    case StoreOwnershipQualifier::Assign:
+      *this << "[assign] ";
+      return;
+    case StoreOwnershipQualifier::Trivial:
+      *this << "[trivial] ";
+      return;
+    }
+  }
+
   void visitStoreInst(StoreInst *SI) {
-    *this << "store " << getID(SI->getSrc()) << " to "
-       << getIDAndType(SI->getDest());
+    *this << getID(SI->getSrc()) << " to ";
+    printStoreOwnershipQualifier(SI->getOwnershipQualifier());
+    *this << getIDAndType(SI->getDest());
   }
+
   void visitAssignInst(AssignInst *AI) {
-    *this << "assign " << getID(AI->getSrc()) << " to "
-       << getIDAndType(AI->getDest());
+    *this << getID(AI->getSrc()) << " to " << getIDAndType(AI->getDest());
   }
   void visitMarkUninitializedInst(MarkUninitializedInst *MU) {
-    *this << "mark_uninitialized ";
     switch (MU->getKind()) {
     case MarkUninitializedInst::Var: *this << "[var] "; break;
     case MarkUninitializedInst::RootSelf:  *this << "[rootself] "; break;
@@ -1029,8 +1072,7 @@
     *this << getIDAndType(MU->getOperand());
   }
   void visitMarkUninitializedBehaviorInst(MarkUninitializedBehaviorInst *MU) {
-    *this << "mark_uninitialized_behavior "
-          << getID(MU->getInitStorageFunc());
+    *this << getID(MU->getInitStorageFunc());
     printSubstitutions(MU->getInitStorageSubstitutions());
     *this << '(' << getID(MU->getStorage()) << ") : "
           << MU->getInitStorageFunc()->getType() << ", "
@@ -1040,52 +1082,46 @@
           << MU->getSetterFunc()->getType();
   }
   void visitMarkFunctionEscapeInst(MarkFunctionEscapeInst *MFE) {
-    *this << "mark_function_escape ";
     interleave(MFE->getElements(),
-               [&](SILValue Var) {
-                 *this << getIDAndType(Var);
-               },
+               [&](SILValue Var) { *this << getIDAndType(Var); },
                [&] { *this << ", "; });
   }
 
   void visitDebugValueInst(DebugValueInst *DVI) {
-    *this << "debug_value " << getIDAndType(DVI->getOperand());
+    *this << getIDAndType(DVI->getOperand());
     printDebugVar(DVI->getVarInfo());
   }
 
   void visitDebugValueAddrInst(DebugValueAddrInst *DVAI) {
-    *this << "debug_value_addr " << getIDAndType(DVAI->getOperand());
+    *this << getIDAndType(DVAI->getOperand());
     printDebugVar(DVAI->getVarInfo());
   }
 
   void visitLoadUnownedInst(LoadUnownedInst *LI) {
-    *this << "load_unowned ";
     if (LI->isTake())
       *this << "[take] ";
     *this << getIDAndType(LI->getOperand());
   }
   void visitStoreUnownedInst(StoreUnownedInst *SI) {
-    *this << "store_unowned " << getID(SI->getSrc()) << " to ";
+    *this << getID(SI->getSrc()) << " to ";
     if (SI->isInitializationOfDest())
       *this << "[initialization] ";
     *this << getIDAndType(SI->getDest());
   }
 
   void visitLoadWeakInst(LoadWeakInst *LI) {
-    *this << "load_weak ";
     if (LI->isTake())
       *this << "[take] ";
     *this << getIDAndType(LI->getOperand());
   }
   void visitStoreWeakInst(StoreWeakInst *SI) {
-    *this << "store_weak " << getID(SI->getSrc()) << " to ";
+    *this << getID(SI->getSrc()) << " to ";
     if (SI->isInitializationOfDest())
       *this << "[initialization] ";
     *this << getIDAndType(SI->getDest());
   }
 
   void visitCopyAddrInst(CopyAddrInst *CI) {
-    *this << "copy_addr ";
     if (CI->isTakeOfSrc())
       *this << "[take] ";
     *this << getID(CI->getSrc()) << " to ";
@@ -1095,162 +1131,148 @@
   }
 
   void visitBindMemoryInst(BindMemoryInst *BI) {
-    *this << "bind_memory ";
     *this << getIDAndType(BI->getBase()) << ", ";
     *this << getIDAndType(BI->getIndex()) << " to ";
     *this << BI->getBoundType();
   }
   
-  void printUncheckedConversionInst(ConversionInst *CI, SILValue operand,
-                                    StringRef name) {
-    *this << name << " " << getIDAndType(operand) << " to " << CI->getType();
-  }
-
   void visitUnconditionalCheckedCastInst(UnconditionalCheckedCastInst *CI) {
-    *this << "unconditional_checked_cast "
-       << getIDAndType(CI->getOperand())
-       << " to " << CI->getType();
+    *this << getIDAndType(CI->getOperand()) << " to " << CI->getType();
   }
   
   void visitCheckedCastBranchInst(CheckedCastBranchInst *CI) {
-    *this << "checked_cast_br ";
-    if (CI->isExact()) *this << "[exact] ";
+    if (CI->isExact())
+      *this << "[exact] ";
     *this << getIDAndType(CI->getOperand())
        << " to " << CI->getCastType() << ", "
        << getID(CI->getSuccessBB()) << ", " << getID(CI->getFailureBB());
   }
 
   void visitUnconditionalCheckedCastAddrInst(UnconditionalCheckedCastAddrInst *CI) {
-    *this << "unconditional_checked_cast_addr "
-       << getCastConsumptionKindName(CI->getConsumptionKind())
-       << ' '    << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
-       << " to " << CI->getTargetType() << " in " << getIDAndType(CI->getDest());
+    *this << getCastConsumptionKindName(CI->getConsumptionKind()) << ' '
+          << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
+          << " to " << CI->getTargetType() << " in "
+          << getIDAndType(CI->getDest());
   }
   
   void visitCheckedCastAddrBranchInst(CheckedCastAddrBranchInst *CI) {
-    *this << "checked_cast_addr_br "
-       << getCastConsumptionKindName(CI->getConsumptionKind())
-       << ' '    << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
-       << " to " << CI->getTargetType() << " in " << getIDAndType(CI->getDest())
-       << ", " << getID(CI->getSuccessBB()) << ", " << getID(CI->getFailureBB());
+    *this << getCastConsumptionKindName(CI->getConsumptionKind()) << ' '
+          << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
+          << " to " << CI->getTargetType() << " in "
+          << getIDAndType(CI->getDest()) << ", " << getID(CI->getSuccessBB())
+          << ", " << getID(CI->getFailureBB());
   }
-  
+
+  void printUncheckedConversionInst(ConversionInst *CI, SILValue operand) {
+    *this << getIDAndType(operand) << " to " << CI->getType();
+  }
+
   void visitConvertFunctionInst(ConvertFunctionInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "convert_function");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitThinFunctionToPointerInst(ThinFunctionToPointerInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),
-                                 "thin_function_to_pointer");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitPointerToThinFunctionInst(PointerToThinFunctionInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),
-                                 "pointer_to_thin_function");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUpcastInst(UpcastInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "upcast");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitAddressToPointerInst(AddressToPointerInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "address_to_pointer");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitPointerToAddressInst(PointerToAddressInst *CI) {
-    *this << "pointer_to_address " << getIDAndType(CI->getOperand()) << " to ";
+    *this << getIDAndType(CI->getOperand()) << " to ";
     if (CI->isStrict())
       *this << "[strict] ";
     *this << CI->getType();
   }
   void visitUncheckedRefCastInst(UncheckedRefCastInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "unchecked_ref_cast");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUncheckedRefCastAddrInst(UncheckedRefCastAddrInst *CI) {
-    *this << "unchecked_ref_cast_addr "
-       << ' '    << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
-       << " to " << CI->getTargetType() << " in " << getIDAndType(CI->getDest());
+    *this << ' ' << CI->getSourceType() << " in " << getIDAndType(CI->getSrc())
+          << " to " << CI->getTargetType() << " in "
+          << getIDAndType(CI->getDest());
   }
   void visitUncheckedAddrCastInst(UncheckedAddrCastInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "unchecked_addr_cast");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUncheckedTrivialBitCastInst(UncheckedTrivialBitCastInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "unchecked_trivial_bit_cast");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUncheckedBitwiseCastInst(UncheckedBitwiseCastInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),
-                                 "unchecked_bitwise_cast");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitRefToRawPointerInst(RefToRawPointerInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "ref_to_raw_pointer");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitRawPointerToRefInst(RawPointerToRefInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "raw_pointer_to_ref");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitRefToUnownedInst(RefToUnownedInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "ref_to_unowned");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUnownedToRefInst(UnownedToRefInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "unowned_to_ref");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitRefToUnmanagedInst(RefToUnmanagedInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "ref_to_unmanaged");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitUnmanagedToRefInst(UnmanagedToRefInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(), "unmanaged_to_ref");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitThinToThickFunctionInst(ThinToThickFunctionInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),"thin_to_thick_function");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitThickToObjCMetatypeInst(ThickToObjCMetatypeInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),"thick_to_objc_metatype");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitObjCToThickMetatypeInst(ObjCToThickMetatypeInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),"objc_to_thick_metatype");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitObjCMetatypeToObjectInst(ObjCMetatypeToObjectInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),
-                                 "objc_metatype_to_object");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitObjCExistentialMetatypeToObjectInst(
                                       ObjCExistentialMetatypeToObjectInst *CI) {
-    printUncheckedConversionInst(CI, CI->getOperand(),
-                                 "objc_existential_metatype_to_object");
+    printUncheckedConversionInst(CI, CI->getOperand());
   }
   void visitObjCProtocolInst(ObjCProtocolInst *CI) {
-    *this << "objc_protocol #" << CI->getProtocol()->getName()
-       << " : " << CI->getType();
+    *this << "#" << CI->getProtocol()->getName() << " : " << CI->getType();
   }
   
   void visitRefToBridgeObjectInst(RefToBridgeObjectInst *I) {
-    *this << "ref_to_bridge_object " << getIDAndType(I->getConverted())
-       << ", " << getIDAndType(I->getBitsOperand());
+    *this << getIDAndType(I->getConverted()) << ", "
+          << getIDAndType(I->getBitsOperand());
   }
   
   void visitBridgeObjectToRefInst(BridgeObjectToRefInst *I) {
-    printUncheckedConversionInst(I, I->getOperand(), "bridge_object_to_ref");
+    printUncheckedConversionInst(I, I->getOperand());
   }
   void visitBridgeObjectToWordInst(BridgeObjectToWordInst *I) {
-    printUncheckedConversionInst(I, I->getOperand(), "bridge_object_to_word");
+    printUncheckedConversionInst(I, I->getOperand());
   }
 
   void visitIsNonnullInst(IsNonnullInst *I) {
-    *this << "is_nonnull " << getIDAndType(I->getOperand());
-  }
-  
-  void visitRetainValueInst(RetainValueInst *I) {
-    visitRefCountingInst(I, "retain_value");
+    *this << getIDAndType(I->getOperand());
   }
 
-  void visitReleaseValueInst(ReleaseValueInst *I) {
-    visitRefCountingInst(I, "release_value");
-  }
+  void visitRetainValueInst(RetainValueInst *I) { visitRefCountingInst(I); }
+
+  void visitReleaseValueInst(ReleaseValueInst *I) { visitRefCountingInst(I); }
 
   void visitAutoreleaseValueInst(AutoreleaseValueInst *I) {
-    visitRefCountingInst(I, "autorelease_value");
+    visitRefCountingInst(I);
   }
 
   void visitSetDeallocatingInst(SetDeallocatingInst *I) {
-    visitRefCountingInst(I, "set_deallocating");
+    visitRefCountingInst(I);
   }
 
   void visitStructInst(StructInst *SI) {
-    *this << "struct " << SI->getType() << " (";
+    *this << SI->getType() << " (";
     interleave(SI->getElements(),
                [&](const SILValue &V) { *this << getIDAndType(V); },
                [&] { *this << ", "; });
@@ -1258,7 +1280,6 @@
   }
 
   void visitTupleInst(TupleInst *TI) {
-    *this << "tuple ";
     
     // Check to see if the type of the tuple can be inferred accurately from the
     // elements.
@@ -1288,68 +1309,60 @@
   }
   
   void visitEnumInst(EnumInst *UI) {
-    *this << "enum " << UI->getType() << ", "
-       << SILDeclRef(UI->getElement(), SILDeclRef::Kind::EnumElement);
+    *this << UI->getType() << ", "
+          << SILDeclRef(UI->getElement(), SILDeclRef::Kind::EnumElement);
     if (UI->hasOperand()) {
       *this << ", " << getIDAndType(UI->getOperand());
     }
   }
 
   void visitInitEnumDataAddrInst(InitEnumDataAddrInst *UDAI) {
-    *this << "init_enum_data_addr "
-       << getIDAndType(UDAI->getOperand()) << ", "
-       << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
+    *this << getIDAndType(UDAI->getOperand()) << ", "
+          << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
   }
   
   void visitUncheckedEnumDataInst(UncheckedEnumDataInst *UDAI) {
-    *this << "unchecked_enum_data "
-       << getIDAndType(UDAI->getOperand()) << ", "
-       << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
+    *this << getIDAndType(UDAI->getOperand()) << ", "
+          << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
   }
   
   void visitUncheckedTakeEnumDataAddrInst(UncheckedTakeEnumDataAddrInst *UDAI) {
-    *this << "unchecked_take_enum_data_addr "
-       << getIDAndType(UDAI->getOperand()) << ", "
-       << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
+    *this << getIDAndType(UDAI->getOperand()) << ", "
+          << SILDeclRef(UDAI->getElement(), SILDeclRef::Kind::EnumElement);
   }
   
   void visitInjectEnumAddrInst(InjectEnumAddrInst *IUAI) {
-    *this << "inject_enum_addr "
-       << getIDAndType(IUAI->getOperand()) << ", "
-       << SILDeclRef(IUAI->getElement(), SILDeclRef::Kind::EnumElement);
+    *this << getIDAndType(IUAI->getOperand()) << ", "
+          << SILDeclRef(IUAI->getElement(), SILDeclRef::Kind::EnumElement);
   }
   
   void visitTupleExtractInst(TupleExtractInst *EI) {
-    *this << "tuple_extract " << getIDAndType(EI->getOperand()) << ", "
-          << EI->getFieldNo();
+    *this << getIDAndType(EI->getOperand()) << ", " << EI->getFieldNo();
   }
   void visitTupleElementAddrInst(TupleElementAddrInst *EI) {
-    *this << "tuple_element_addr " << getIDAndType(EI->getOperand()) << ", "
-          << EI->getFieldNo();
+    *this << getIDAndType(EI->getOperand()) << ", " << EI->getFieldNo();
   }
   void visitStructExtractInst(StructExtractInst *EI) {
-    *this << "struct_extract " << getIDAndType(EI->getOperand()) << ", #";
+    *this << getIDAndType(EI->getOperand()) << ", #";
     printFullContext(EI->getField()->getDeclContext(), PrintState.OS);
     *this << EI->getField()->getName().get();
   }
   void visitStructElementAddrInst(StructElementAddrInst *EI) {
-    *this << "struct_element_addr " << getIDAndType(EI->getOperand()) << ", #";
+    *this << getIDAndType(EI->getOperand()) << ", #";
     printFullContext(EI->getField()->getDeclContext(), PrintState.OS);
     *this << EI->getField()->getName().get();
   }
   void visitRefElementAddrInst(RefElementAddrInst *EI) {
-    *this << "ref_element_addr " << getIDAndType(EI->getOperand()) << ", #";
+    *this << getIDAndType(EI->getOperand()) << ", #";
     printFullContext(EI->getField()->getDeclContext(), PrintState.OS);
     *this << EI->getField()->getName().get();
   }
 
   void visitRefTailAddrInst(RefTailAddrInst *RTAI) {
-    *this << "ref_tail_addr " << getIDAndType(RTAI->getOperand()) << ", "
-          << RTAI->getTailType();
+    *this << getIDAndType(RTAI->getOperand()) << ", " << RTAI->getTailType();
   }
 
-  void printMethodInst(MethodInst *I, SILValue Operand, StringRef Name) {
-    *this << Name << " ";
+  void printMethodInst(MethodInst *I, SILValue Operand) {
     if (I->isVolatile())
       *this << "[volatile] ";
     
@@ -1357,19 +1370,18 @@
   }
   
   void visitClassMethodInst(ClassMethodInst *AMI) {
-    printMethodInst(AMI, AMI->getOperand(), "class_method");
+    printMethodInst(AMI, AMI->getOperand());
     *this << " : " << AMI->getMember().getDecl()->getInterfaceType();
     *this << " , ";
     *this << AMI->getType();
   }
   void visitSuperMethodInst(SuperMethodInst *AMI) {
-    printMethodInst(AMI, AMI->getOperand(), "super_method");
+    printMethodInst(AMI, AMI->getOperand());
     *this << " : " << AMI->getMember().getDecl()->getInterfaceType();
     *this << " , ";
     *this << AMI->getType();
   }
   void visitWitnessMethodInst(WitnessMethodInst *WMI) {
-    *this << "witness_method ";
     if (WMI->isVolatile())
       *this << "[volatile] ";
     *this << "$" << WMI->getLookupType() << ", " << WMI->getMember();
@@ -1380,186 +1392,161 @@
     *this << " : " << WMI->getType();
   }
   void visitDynamicMethodInst(DynamicMethodInst *DMI) {
-    printMethodInst(DMI, DMI->getOperand(), "dynamic_method");
+    printMethodInst(DMI, DMI->getOperand());
     *this << " : " << DMI->getMember().getDecl()->getInterfaceType();
     *this << ", ";
     *this << DMI->getType();
   }
   void visitOpenExistentialAddrInst(OpenExistentialAddrInst *OI) {
-    *this << "open_existential_addr " << getIDAndType(OI->getOperand())
-       << " to " << OI->getType();
+    *this << getIDAndType(OI->getOperand()) << " to " << OI->getType();
   }
   void visitOpenExistentialRefInst(OpenExistentialRefInst *OI) {
-    *this << "open_existential_ref " << getIDAndType(OI->getOperand())
-       << " to " << OI->getType();
+    *this << getIDAndType(OI->getOperand()) << " to " << OI->getType();
   }
   void visitOpenExistentialMetatypeInst(OpenExistentialMetatypeInst *OI) {
-    *this << "open_existential_metatype " << getIDAndType(OI->getOperand())
-       << " to " << OI->getType();
+    *this << getIDAndType(OI->getOperand()) << " to " << OI->getType();
   }
   void visitOpenExistentialBoxInst(OpenExistentialBoxInst *OI) {
-    *this << "open_existential_box " << getIDAndType(OI->getOperand())
-       << " to " << OI->getType();
+    *this << getIDAndType(OI->getOperand()) << " to " << OI->getType();
   }
   void visitInitExistentialAddrInst(InitExistentialAddrInst *AEI) {
-    *this << "init_existential_addr " << getIDAndType(AEI->getOperand()) << ", $"
+    *this << getIDAndType(AEI->getOperand()) << ", $"
           << AEI->getFormalConcreteType();
   }
   void visitInitExistentialRefInst(InitExistentialRefInst *AEI) {
-    *this << "init_existential_ref " << getIDAndType(AEI->getOperand())
-       << " : $" << AEI->getFormalConcreteType()
-       << ", " << AEI->getType();
+    *this << getIDAndType(AEI->getOperand()) << " : $"
+          << AEI->getFormalConcreteType() << ", " << AEI->getType();
   }
   void visitInitExistentialMetatypeInst(InitExistentialMetatypeInst *AEI) {
-    *this << "init_existential_metatype " << getIDAndType(AEI->getOperand())
-       << ", " << AEI->getType();
+    *this << getIDAndType(AEI->getOperand()) << ", " << AEI->getType();
   }
   void visitAllocExistentialBoxInst(AllocExistentialBoxInst *AEBI) {
-    *this << "alloc_existential_box " << AEBI->getExistentialType()
-       << ", $" << AEBI->getFormalConcreteType();
+    *this << AEBI->getExistentialType() << ", $"
+          << AEBI->getFormalConcreteType();
   }
   void visitDeinitExistentialAddrInst(DeinitExistentialAddrInst *DEI) {
-    *this << "deinit_existential_addr " << getIDAndType(DEI->getOperand());
+    *this << getIDAndType(DEI->getOperand());
   }
   void visitDeallocExistentialBoxInst(DeallocExistentialBoxInst *DEI) {
-    *this << "dealloc_existential_box " << getIDAndType(DEI->getOperand())
-       << ", $" << DEI->getConcreteType();
+    *this << getIDAndType(DEI->getOperand()) << ", $" << DEI->getConcreteType();
   }
   void visitProjectBlockStorageInst(ProjectBlockStorageInst *PBSI) {
-    *this << "project_block_storage " << getIDAndType(PBSI->getOperand());
+    *this << getIDAndType(PBSI->getOperand());
   }
   void visitInitBlockStorageHeaderInst(InitBlockStorageHeaderInst *IBSHI) {
-    *this << "init_block_storage_header " << getIDAndType(IBSHI->getBlockStorage())
-       << ", invoke " << getID(IBSHI->getInvokeFunction());
+    *this << getIDAndType(IBSHI->getBlockStorage()) << ", invoke "
+          << getID(IBSHI->getInvokeFunction());
     printSubstitutions(IBSHI->getSubstitutions());
     *this << " : " << IBSHI->getInvokeFunction()->getType()
           << ", type " << IBSHI->getType();
   }
   void visitValueMetatypeInst(ValueMetatypeInst *MI) {
-    *this << "value_metatype " << MI->getType() << ", "
-       << getIDAndType(MI->getOperand());
+    *this << MI->getType() << ", " << getIDAndType(MI->getOperand());
   }
   void visitExistentialMetatypeInst(ExistentialMetatypeInst *MI) {
-    *this << "existential_metatype " << MI->getType() << ", "
-       << getIDAndType(MI->getOperand());
+    *this << MI->getType() << ", " << getIDAndType(MI->getOperand());
   }
-  void visitMetatypeInst(MetatypeInst *MI) {
-    *this << "metatype " << MI->getType();
-  }
-  
+  void visitMetatypeInst(MetatypeInst *MI) { *this << MI->getType(); }
+
   void visitFixLifetimeInst(FixLifetimeInst *RI) {
-    *this << "fix_lifetime " << getIDAndType(RI->getOperand());
+    *this << getIDAndType(RI->getOperand());
   }
   void visitMarkDependenceInst(MarkDependenceInst *MDI) {
-    *this << "mark_dependence " << getIDAndType(MDI->getValue())
-       << " on " << getIDAndType(MDI->getBase());
+    *this << getIDAndType(MDI->getValue()) << " on "
+          << getIDAndType(MDI->getBase());
   }
   void visitCopyBlockInst(CopyBlockInst *RI) {
-    *this << "copy_block " << getIDAndType(RI->getOperand());
+    *this << getIDAndType(RI->getOperand());
   }
-  void visitRefCountingInst(RefCountingInst *I, StringRef InstName) {
-    *this << InstName << " ";
+  void visitRefCountingInst(RefCountingInst *I) {
     if (I->isNonAtomic())
       *this << "[nonatomic] ";
     *this << getIDAndType(I->getOperand(0));
   }
-  void visitStrongRetainInst(StrongRetainInst *RI) {
-    visitRefCountingInst(RI, "strong_retain");
-  }
+  void visitStrongRetainInst(StrongRetainInst *RI) { visitRefCountingInst(RI); }
   void visitStrongReleaseInst(StrongReleaseInst *RI) {
-    visitRefCountingInst(RI, "strong_release");
+    visitRefCountingInst(RI);
   }
-  void visitStrongPinInst(StrongPinInst *PI) {
-    visitRefCountingInst(PI, "strong_pin");
-  }
-  void visitStrongUnpinInst(StrongUnpinInst *UI) {
-    visitRefCountingInst(UI, "strong_unpin");
-  }
+  void visitStrongPinInst(StrongPinInst *PI) { visitRefCountingInst(PI); }
+  void visitStrongUnpinInst(StrongUnpinInst *UI) { visitRefCountingInst(UI); }
   void visitStrongRetainUnownedInst(StrongRetainUnownedInst *RI) {
-    visitRefCountingInst(RI, "strong_retain_unowned");
+    visitRefCountingInst(RI);
   }
   void visitUnownedRetainInst(UnownedRetainInst *RI) {
-    visitRefCountingInst(RI, "unowned_retain");
+    visitRefCountingInst(RI);
   }
   void visitUnownedReleaseInst(UnownedReleaseInst *RI) {
-    visitRefCountingInst(RI, "unowned_release");
+    visitRefCountingInst(RI);
   }
   void visitIsUniqueInst(IsUniqueInst *CUI) {
-    *this << "is_unique " << getIDAndType(CUI->getOperand());
+    *this << getIDAndType(CUI->getOperand());
   }
   void visitIsUniqueOrPinnedInst(IsUniqueOrPinnedInst *CUI) {
-    *this << "is_unique_or_pinned " << getIDAndType(CUI->getOperand());
+    *this << getIDAndType(CUI->getOperand());
   }
   void visitDeallocStackInst(DeallocStackInst *DI) {
-    *this << "dealloc_stack " << getIDAndType(DI->getOperand());
+    *this << getIDAndType(DI->getOperand());
   }
   void visitDeallocRefInst(DeallocRefInst *DI) {
-    *this << "dealloc_ref ";
     if (DI->canAllocOnStack())
       *this << "[stack] ";
     *this << getIDAndType(DI->getOperand());
   }
   void visitDeallocPartialRefInst(DeallocPartialRefInst *DPI) {
-    *this << "dealloc_partial_ref ";
     *this << getIDAndType(DPI->getInstance());
     *this << ", ";
     *this << getIDAndType(DPI->getMetatype());
   }
   void visitDeallocValueBufferInst(DeallocValueBufferInst *DVBI) {
-    *this << "dealloc_value_buffer " << DVBI->getValueType()
-       << " in " << getIDAndType(DVBI->getOperand());
+    *this << DVBI->getValueType() << " in " << getIDAndType(DVBI->getOperand());
   }
   void visitDeallocBoxInst(DeallocBoxInst *DI) {
-    *this << "dealloc_box " << getIDAndType(DI->getOperand());
+    *this << getIDAndType(DI->getOperand());
   }
   void visitDestroyAddrInst(DestroyAddrInst *DI) {
-    *this << "destroy_addr " << getIDAndType(DI->getOperand());
+    *this << getIDAndType(DI->getOperand());
   }
   void visitProjectValueBufferInst(ProjectValueBufferInst *PVBI) {
-    *this << "project_value_buffer " << PVBI->getValueType()
-       << " in " << getIDAndType(PVBI->getOperand());
+    *this << PVBI->getValueType() << " in " << getIDAndType(PVBI->getOperand());
   }
   void visitProjectBoxInst(ProjectBoxInst *PBI) {
-    *this << "project_box " << getIDAndType(PBI->getOperand());
+    *this << getIDAndType(PBI->getOperand());
   }
   void visitProjectExistentialBoxInst(ProjectExistentialBoxInst *PEBI) {
-    *this << "project_existential_box " << PEBI->getValueType()
-    << " in " << getIDAndType(PEBI->getOperand());
+    *this << PEBI->getValueType() << " in " << getIDAndType(PEBI->getOperand());
   }
 
   void visitCondFailInst(CondFailInst *FI) {
-    *this << "cond_fail " << getIDAndType(FI->getOperand());
+    *this << getIDAndType(FI->getOperand());
   }
   
   void visitIndexAddrInst(IndexAddrInst *IAI) {
-    *this << "index_addr " << getIDAndType(IAI->getBase()) << ", "
-       << getIDAndType(IAI->getIndex());
+    *this << getIDAndType(IAI->getBase()) << ", "
+          << getIDAndType(IAI->getIndex());
   }
 
   void visitTailAddrInst(TailAddrInst *TAI) {
-    *this << "tail_addr " << getIDAndType(TAI->getBase()) << ", "
+    *this << getIDAndType(TAI->getBase()) << ", "
           << getIDAndType(TAI->getIndex()) << ", " << TAI->getTailType();
   }
 
   void visitIndexRawPointerInst(IndexRawPointerInst *IAI) {
-    *this << "index_raw_pointer " << getIDAndType(IAI->getBase()) << ", "
-    << getIDAndType(IAI->getIndex());
-  }
-  
-  void visitUnreachableInst(UnreachableInst *UI) {
-    *this << "unreachable";
+    *this << getIDAndType(IAI->getBase()) << ", "
+          << getIDAndType(IAI->getIndex());
   }
 
+  void visitUnreachableInst(UnreachableInst *UI) {}
+
   void visitReturnInst(ReturnInst *RI) {
-    *this << "return " << getIDAndType(RI->getOperand());
+    *this << getIDAndType(RI->getOperand());
   }
   
   void visitThrowInst(ThrowInst *TI) {
-    *this << "throw " << getIDAndType(TI->getOperand());
+    *this << getIDAndType(TI->getOperand());
   }
 
   void visitSwitchValueInst(SwitchValueInst *SII) {
-    *this << "switch_value " << getIDAndType(SII->getOperand());
+    *this << getIDAndType(SII->getOperand());
     for (unsigned i = 0, e = SII->getNumCases(); i < e; ++i) {
       SILValue value;
       SILBasicBlock *dest;
@@ -1584,11 +1571,9 @@
   }
   
   void visitSwitchEnumInst(SwitchEnumInst *SOI) {
-    *this << "switch_enum ";
     printSwitchEnumInst(SOI);
   }
   void visitSwitchEnumAddrInst(SwitchEnumAddrInst *SOI) {
-    *this << "switch_enum_addr ";
     printSwitchEnumInst(SOI);
   }
   
@@ -1609,16 +1594,13 @@
   }
 
   void visitSelectEnumInst(SelectEnumInst *SEI) {
-    *this << "select_enum ";
     printSelectEnumInst(SEI);
   }
   void visitSelectEnumAddrInst(SelectEnumAddrInst *SEI) {
-    *this << "select_enum_addr ";
     printSelectEnumInst(SEI);
   }
 
   void visitSelectValueInst(SelectValueInst *SVI) {
-    *this << "select_value ";
     *this << getIDAndType(SVI->getOperand());
 
     for (unsigned i = 0, e = SVI->getNumCases(); i < e; ++i) {
@@ -1635,8 +1617,7 @@
   }
   
   void visitDynamicMethodBranchInst(DynamicMethodBranchInst *DMBI) {
-    *this << "dynamic_method_br " << getIDAndType(DMBI->getOperand()) << ", "
-          << DMBI->getMember()
+    *this << getIDAndType(DMBI->getOperand()) << ", " << DMBI->getMember()
           << ", " << getID(DMBI->getHasMethodBB()) << ", "
           << getID(DMBI->getNoMethodBB());
   }
@@ -1652,13 +1633,12 @@
   }
   
   void visitBranchInst(BranchInst *UBI) {
-    *this << "br " << getID(UBI->getDestBB());
+    *this << getID(UBI->getDestBB());
     printBranchArgs(UBI->getArgs());
   }
 
   void visitCondBranchInst(CondBranchInst *CBI) {
-    *this << "cond_br " << getID(CBI->getCondition()) << ", "
-       << getID(CBI->getTrueBB());
+    *this << getID(CBI->getCondition()) << ", " << getID(CBI->getTrueBB());
     printBranchArgs(CBI->getTrueArgs());
     *this << ", " << getID(CBI->getFalseBB());
     printBranchArgs(CBI->getFalseArgs());
@@ -1835,21 +1815,25 @@
     llvm::SmallString<16> disambiguatedNameBuf;
     unsigned disambiguatedNameCounter = 1;
     for (auto *paramTy : sig->getGenericParams()) {
-      auto *archetypeTy = mapTypeIntoContext(paramTy)->getAs<ArchetypeType>();
-      if (!archetypeTy)
-        continue;
-
-      Identifier name = archetypeTy->getName();
+      auto sugaredTy = env->getSugaredType(paramTy);
+      Identifier name = sugaredTy->getName();
       while (!UsedNames.insert(name).second) {
         disambiguatedNameBuf.clear();
         {
           llvm::raw_svector_ostream names(disambiguatedNameBuf);
-          names << archetypeTy->getName() << disambiguatedNameCounter++;
+          names << sugaredTy->getName() << disambiguatedNameCounter++;
         }
         name = getASTContext().getIdentifier(disambiguatedNameBuf);
       }
-      if (name != archetypeTy->getName())
-        Aliases[CanType(archetypeTy)] = name;
+      if (name != sugaredTy->getName()) {
+        Aliases[paramTy->getCanonicalType()] = name;
+
+        // Also for the archetype
+        auto archetypeTy = env->mapTypeIntoContext(paramTy)
+            ->getAs<ArchetypeType>();
+        if (archetypeTy)
+          Aliases[archetypeTy->getCanonicalType()] = name;
+      }
     }
   }
 
diff --git a/lib/SIL/SILVerifier.cpp b/lib/SIL/SILVerifier.cpp
index dbc8091..ea2d130 100644
--- a/lib/SIL/SILVerifier.cpp
+++ b/lib/SIL/SILVerifier.cpp
@@ -102,6 +102,7 @@
   const SILInstruction *CurInstruction = nullptr;
   DominanceInfo *Dominance = nullptr;
   bool SingleFunction = true;
+  bool EnforceSILOwnership;
 
   SILVerifier(const SILVerifier&) = delete;
   void operator=(const SILVerifier&) = delete;
@@ -406,9 +407,11 @@
     }
   }
 
-  SILVerifier(const SILFunction &F, bool SingleFunction=true)
-    : M(F.getModule().getSwiftModule()), F(F), TC(F.getModule().Types),
-      OpenedArchetypes(F), Dominance(nullptr), SingleFunction(SingleFunction) {
+  SILVerifier(const SILFunction &F, bool SingleFunction = true,
+              bool EnforceSILOwnership = false)
+      : M(F.getModule().getSwiftModule()), F(F), TC(F.getModule().Types),
+        OpenedArchetypes(F), Dominance(nullptr), SingleFunction(SingleFunction),
+        EnforceSILOwnership(EnforceSILOwnership) {
     if (F.isExternalDeclaration())
       return;
       
@@ -1100,6 +1103,7 @@
     require(ILI->getType().is<BuiltinIntegerType>(),
             "invalid integer literal type");
   }
+
   void checkLoadInst(LoadInst *LI) {
     require(LI->getType().isObject(), "Result of load must be an object");
     require(LI->getType().isLoadable(LI->getModule()),
@@ -1108,6 +1112,26 @@
             "Load operand must be an address");
     require(LI->getOperand()->getType().getObjectType() == LI->getType(),
             "Load operand type and result type mismatch");
+
+    // Ownership semantic checks.
+    switch (LI->getOwnershipQualifier()) {
+    case LoadOwnershipQualifier::Unqualified:
+      // We should not see loads with unqualified ownership when SILOwnership is
+      // enabled.
+      require(!EnforceSILOwnership, "Invalid load with unqualified ownership");
+      break;
+    case LoadOwnershipQualifier::Copy:
+    case LoadOwnershipQualifier::Take:
+      // TODO: Could probably make this a bit stricter.
+      require(!LI->getType().isTrivial(LI->getModule()),
+              "load [copy] or load [take] can only be applied to non-trivial "
+              "types");
+      break;
+    case LoadOwnershipQualifier::Trivial:
+      require(LI->getType().isTrivial(LI->getModule()),
+              "A load with trivial ownership must load a trivial type");
+      break;
+    }
   }
 
   void checkStoreInst(StoreInst *SI) {
@@ -1119,6 +1143,26 @@
             "Must store to an address dest");
     require(SI->getDest()->getType().getObjectType() == SI->getSrc()->getType(),
             "Store operand type and dest type mismatch");
+
+    // Perform ownership checks.
+    switch (SI->getOwnershipQualifier()) {
+    case StoreOwnershipQualifier::Unqualified:
+      // We should not see loads with unqualified ownership when SILOwnership is
+      // enabled.
+      require(!EnforceSILOwnership, "Invalid load with unqualified ownership");
+      break;
+    case StoreOwnershipQualifier::Init:
+    case StoreOwnershipQualifier::Assign:
+      // TODO: Could probably make this a bit stricter.
+      require(!SI->getSrc()->getType().isTrivial(SI->getModule()),
+              "store [init] or store [assign] can only be applied to "
+              "non-trivial types");
+      break;
+    case StoreOwnershipQualifier::Trivial:
+      require(SI->getSrc()->getType().isTrivial(SI->getModule()),
+              "A store with trivial ownership must store a trivial type");
+      break;
+    }
   }
 
   void checkAssignInst(AssignInst *AI) {
@@ -1491,8 +1535,9 @@
       if (auto dynamicSelf = dyn_cast<DynamicSelfType>(formalObjectType)) {
         formalObjectType = dynamicSelf->getSelfType()->getCanonicalType();
       }
-      return ((loweredOptionalKind == formalOptionalKind) &&
-              loweredObjectType == formalObjectType);
+      return loweredOptionalKind == formalOptionalKind &&
+             isLoweringOf(SILType::getPrimitiveAddressType(loweredObjectType),
+                          formalObjectType);
     }
 
     // Metatypes preserve their instance type through lowering.
@@ -3445,12 +3490,12 @@
 
 /// verify - Run the SIL verifier to make sure that the SILFunction follows
 /// invariants.
-void SILFunction::verify(bool SingleFunction) const {
+void SILFunction::verify(bool SingleFunction, bool EnforceSILOwnership) const {
 #ifndef NDEBUG
   // Please put all checks in visitSILFunction in SILVerifier, not here. This
   // ensures that the pretty stack trace in the verifier is included with the
   // back trace when the verifier crashes.
-  SILVerifier(*this, SingleFunction).verify();
+  SILVerifier(*this, SingleFunction, EnforceSILOwnership).verify();
 #endif
 }
 
@@ -3580,7 +3625,7 @@
 }
 
 /// Verify the module.
-void SILModule::verify() const {
+void SILModule::verify(bool EnforceSILOwnership) const {
 #ifndef NDEBUG
   // Uniquing set to catch symbol name collisions.
   llvm::StringSet<> symbolNames;
@@ -3591,7 +3636,7 @@
       llvm::errs() << "Symbol redefined: " << f.getName() << "!\n";
       assert(false && "triggering standard assertion failure routine");
     }
-    f.verify(/*SingleFunction=*/ false);
+    f.verify(/*SingleFunction=*/false, EnforceSILOwnership);
   }
 
   // Check all globals.
diff --git a/lib/SIL/TypeLowering.cpp b/lib/SIL/TypeLowering.cpp
index 3de69da..9fa0d9e 100644
--- a/lib/SIL/TypeLowering.cpp
+++ b/lib/SIL/TypeLowering.cpp
@@ -121,6 +121,10 @@
       if (var->isLet() && !getTypeLowering(var->getType()).isAddressOnly())
         return CaptureKind::Constant;
 
+      if (var->getType()->is<InOutType>()) {
+        return CaptureKind::StorageAddress;
+      }
+
       // If we're capturing into a non-escaping closure, we can generally just
       // capture the address of the value as no-escape.
       return capture.isNoEscape() ?
@@ -1787,14 +1791,23 @@
     return getFunctionInterfaceTypeWithCaptures(funcTy, func);
   }
 
-  case SILDeclRef::Kind::Allocator:
   case SILDeclRef::Kind::EnumElement:
     return cast<AnyFunctionType>(vd->getInterfaceType()->getCanonicalType());
   
-  case SILDeclRef::Kind::Initializer:
-    return cast<AnyFunctionType>(cast<ConstructorDecl>(vd)
-                           ->getInitializerInterfaceType()->getCanonicalType());
-  
+  case SILDeclRef::Kind::Allocator: {
+    auto *cd = cast<ConstructorDecl>(vd);
+    auto funcTy = cast<AnyFunctionType>(
+                                   cd->getInterfaceType()->getCanonicalType());
+    return getFunctionInterfaceTypeWithCaptures(funcTy, cd);
+  }
+
+  case SILDeclRef::Kind::Initializer: {
+    auto *cd = cast<ConstructorDecl>(vd);
+    auto funcTy = cast<AnyFunctionType>(
+                         cd->getInitializerInterfaceType()->getCanonicalType());
+    return getFunctionInterfaceTypeWithCaptures(funcTy, cd);
+  }
+
   case SILDeclRef::Kind::Destroyer:
   case SILDeclRef::Kind::Deallocator:
     return getDestructorInterfaceType(cast<DestructorDecl>(vd),
@@ -1858,7 +1871,8 @@
   case SILDeclRef::Kind::Destroyer:
   case SILDeclRef::Kind::Deallocator: {
     auto *afd = cast<AbstractFunctionDecl>(vd);
-    return afd->getGenericEnvironmentOfContext();
+    auto captureInfo = getLoweredLocalCaptures(afd);
+    return getEffectiveGenericEnvironment(afd, captureInfo);
   }
   case SILDeclRef::Kind::GlobalAccessor:
   case SILDeclRef::Kind::GlobalGetter: {
diff --git a/lib/SILGen/SILGenDecl.cpp b/lib/SILGen/SILGenDecl.cpp
index 796f292..7ac7392 100644
--- a/lib/SILGen/SILGenDecl.cpp
+++ b/lib/SILGen/SILGenDecl.cpp
@@ -1780,7 +1780,7 @@
   if (!allParams.empty()) {
     builder.finalize(SourceLoc());
 
-    auto *sig = builder.getGenericSignature(allParams);
+    auto *sig = builder.getGenericSignature();
 
     return cast<GenericFunctionType>(
       GenericFunctionType::get(sig, input, result, reqtTy->getExtInfo())
@@ -1800,6 +1800,7 @@
     return reqtEnv;
   }
 
+  SmallVector<GenericTypeParamType *, 4> genericParamTypes;
   TypeSubstitutionMap witnessContextParams;
 
   auto selfTy = conformance->getProtocol()->getSelfInterfaceType()
@@ -1809,8 +1810,14 @@
   // the conformance (which might not be the same as the generic
   // context of the witness, if the witness is defined in a
   // superclass, concrete extension or protocol extension).
-  if (auto *outerEnv = conformance->getGenericEnvironment())
+  if (auto *outerEnv = conformance->getGenericEnvironment()) {
     witnessContextParams = outerEnv->getInterfaceToArchetypeMap();
+    for (auto *paramTy : outerEnv->getGenericParams())
+      genericParamTypes.push_back(paramTy);
+  }
+
+  for (auto *paramTy : reqtEnv->getGenericParams().slice(1))
+    genericParamTypes.push_back(paramTy);
 
   // Inner generic parameters come from the requirement and
   // also map to the archetypes of the requirement.
@@ -1824,7 +1831,8 @@
   }
 
   if (!witnessContextParams.empty())
-    return GenericEnvironment::get(M.getASTContext(), witnessContextParams);
+    return GenericEnvironment::get(M.getASTContext(), genericParamTypes,
+                                   witnessContextParams);
 
   return nullptr;
 }
diff --git a/lib/SILGen/SILGenEpilog.cpp b/lib/SILGen/SILGenEpilog.cpp
index 483bd70..d7e669d 100644
--- a/lib/SILGen/SILGenEpilog.cpp
+++ b/lib/SILGen/SILGenEpilog.cpp
@@ -130,8 +130,7 @@
     B.setInsertionPoint(pred);
   } else {
     // Move the epilog block to the end of the ordinary section.
-    auto endOfOrdinarySection =
-      (StartOfPostmatter ? SILFunction::iterator(StartOfPostmatter) : F.end());
+    auto endOfOrdinarySection = StartOfPostmatter;
     B.moveBlockTo(epilogBB, endOfOrdinarySection);
 
     // Emit the epilog into the epilog bb. Its arguments are the
diff --git a/lib/SILGen/SILGenExpr.cpp b/lib/SILGen/SILGenExpr.cpp
index 7f543d3..778922c5 100644
--- a/lib/SILGen/SILGenExpr.cpp
+++ b/lib/SILGen/SILGenExpr.cpp
@@ -1141,6 +1141,7 @@
                        SGF.getLoweredType(destTy).castTo<SILFunctionType>());
       break;
     case SILFunctionType::Representation::Method:
+    case SILFunctionType::Representation::Closure:
     case SILFunctionType::Representation::ObjCMethod:
     case SILFunctionType::Representation::WitnessMethod:
       llvm_unreachable("should not do function conversion from method rep");
@@ -1168,6 +1169,7 @@
     case SILFunctionType::Representation::Block:
       llvm_unreachable("should not try block-to-block repr change");
     case SILFunctionType::Representation::Method:
+    case SILFunctionType::Representation::Closure:
     case SILFunctionType::Representation::ObjCMethod:
     case SILFunctionType::Representation::WitnessMethod:
       llvm_unreachable("should not do function conversion from method rep");
diff --git a/lib/SILGen/SILGenFunction.cpp b/lib/SILGen/SILGenFunction.cpp
index b7f6a77..e94b96e 100644
--- a/lib/SILGen/SILGenFunction.cpp
+++ b/lib/SILGen/SILGenFunction.cpp
@@ -34,12 +34,9 @@
 //===----------------------------------------------------------------------===//
 
 SILGenFunction::SILGenFunction(SILGenModule &SGM, SILFunction &F)
-  : SGM(SGM), F(F),
-    B(*this, createBasicBlock()),
-    OpenedArchetypesTracker(F),
-    CurrentSILLoc(F.getLocation()),
-    Cleanups(*this)
-{
+    : SGM(SGM), F(F), StartOfPostmatter(F.end()), B(*this, createBasicBlock()),
+      OpenedArchetypesTracker(F), CurrentSILLoc(F.getLocation()),
+      Cleanups(*this) {
   B.setCurrentDebugScope(F.getDebugScope());
   B.setOpenedArchetypesTracker(&OpenedArchetypesTracker);
 }
@@ -875,8 +872,8 @@
                              SmallVectorImpl<SILInstruction *> *insertedInsts)
   : SILBuilder(insertBB, insertedInsts), SGM(gen.SGM) {}
 SILGenBuilder::SILGenBuilder(SILGenFunction &gen, SILBasicBlock *insertBB,
-                             SILInstruction *insertInst)
-    : SILBuilder(insertBB, insertInst->getIterator()), SGM(gen.SGM) {}
+                             SILBasicBlock::iterator insertInst)
+    : SILBuilder(insertBB, insertInst), SGM(gen.SGM) {}
 
 MetatypeInst *SILGenBuilder::createMetatype(SILLocation loc, SILType metatype) {
   auto theMetatype = metatype.castTo<MetatypeType>();
diff --git a/lib/SILGen/SILGenFunction.h b/lib/SILGen/SILGenFunction.h
index 008bdab..1a70eb9 100644
--- a/lib/SILGen/SILGenFunction.h
+++ b/lib/SILGen/SILGenFunction.h
@@ -184,7 +184,7 @@
   SILGenBuilder(SILGenFunction &gen, SILBasicBlock *insertBB,
                 SmallVectorImpl<SILInstruction *> *insertedInsts);
   SILGenBuilder(SILGenFunction &gen, SILBasicBlock *insertBB,
-                SILInstruction *insertInst);
+                SILBasicBlock::iterator insertInst);
 
   SILGenBuilder(SILGenFunction &gen, SILFunction::iterator insertBB)
       : SILGenBuilder(gen, &*insertBB) {}
@@ -193,10 +193,10 @@
       : SILGenBuilder(gen, &*insertBB, insertedInsts) {}
   SILGenBuilder(SILGenFunction &gen, SILFunction::iterator insertBB,
                 SILInstruction *insertInst)
-      : SILGenBuilder(gen, &*insertBB, insertInst) {}
+      : SILGenBuilder(gen, &*insertBB, insertInst->getIterator()) {}
   SILGenBuilder(SILGenFunction &gen, SILFunction::iterator insertBB,
                 SILBasicBlock::iterator insertInst)
-      : SILGenBuilder(gen, &*insertBB, &*insertInst) {}
+      : SILGenBuilder(gen, &*insertBB, insertInst) {}
 
   // Metatype instructions use the conformances necessary to instantiate the
   // type.
@@ -319,7 +319,7 @@
   ///
   /// (This field must precede B because B's initializer calls
   /// createBasicBlock().)
-  SILBasicBlock *StartOfPostmatter = nullptr;
+  SILFunction::iterator StartOfPostmatter;
 
   /// The current section of the function that we're emitting code in.
   ///
@@ -328,12 +328,12 @@
   /// normal code sequence.
   ///
   /// If the current function section is Ordinary, and
-  /// StartOfPostmatter is non-null, the current insertion block
-  /// should be ordered before that.
-  ///  
+  /// StartOfPostmatter does not point to the function end, the current
+  /// insertion block should be ordered before that.
+  ///
   /// If the current function section is Postmatter, StartOfPostmatter
-  /// is non-null and the current insertion block is ordered after
-  /// that (inclusive).
+  /// does not point to the function end and the current insertion block is
+  /// ordered after that (inclusive).
   ///
   /// (This field must precede B because B's initializer calls
   /// createBasicBlock().)
@@ -1624,7 +1624,8 @@
     : SGF(SGF), SavedIP(SGF.B.getInsertionBB()),
       SavedSection(SGF.CurFunctionSection) {
     FunctionSection section = (optSection ? *optSection : SavedSection);
-    assert((section != FunctionSection::Postmatter || SGF.StartOfPostmatter) &&
+    assert((section != FunctionSection::Postmatter ||
+            SGF.StartOfPostmatter != SGF.F.end()) &&
            "trying to move to postmatter without a registered start "
            "of postmatter?");
 
diff --git a/lib/SILGen/SILGenGlobalVariable.cpp b/lib/SILGen/SILGenGlobalVariable.cpp
index 2bcecad..741665c 100644
--- a/lib/SILGen/SILGenGlobalVariable.cpp
+++ b/lib/SILGen/SILGenGlobalVariable.cpp
@@ -110,7 +110,7 @@
   // Global variables can be accessed directly with global_addr.  Emit this
   // instruction into the prolog of the function so we can memoize/CSE it in
   // VarLocs.
-  auto entryBB = getFunction().getBlocks().begin();
+  auto entryBB = getFunction().begin();
   SILGenBuilder prologueB(*this, entryBB, entryBB->begin());
   prologueB.setTrackingList(B.getTrackingList());
 
diff --git a/lib/SILGen/SILGenProlog.cpp b/lib/SILGen/SILGenProlog.cpp
index a1dd659..6e2544e 100644
--- a/lib/SILGen/SILGenProlog.cpp
+++ b/lib/SILGen/SILGenProlog.cpp
@@ -262,30 +262,18 @@
         gen.B.createDebugValueAddr(loc, address, {vd->isLet(), ArgNo});
         return;
       }
-
-      // Allocate the local variable for the inout.
-      auto initVar = gen.emitLocalVariableWithCleanup(vd, false, ArgNo);
-
-      // Initialize with the value from the inout with an "autogenerated"
-      // copyaddr.
-      loc.markAutoGenerated();
-      gen.B.createCopyAddr(loc, address, initVar->getAddress(),
-                           IsNotTake, IsInitialization);
-      initVar->finishInitialization(gen);
-
-      // Set up a cleanup to write back to the inout.
-      gen.Cleanups.pushCleanup<CleanupWriteBackToInOut>(vd, address);
+      assert(argrv.getType().isAddress() && "expected inout to be address");
     } else {
       assert(vd->isLet() && "expected parameter to be immutable!");
       // If the variable is immutable, we can bind the value as is.
       // Leave the cleanup on the argument, if any, in place to consume the
       // argument if we're responsible for it.
-      gen.VarLocs[vd] = SILGenFunction::VarLoc::get(argrv.getValue());
-      if (argrv.getType().isAddress())
-        gen.B.createDebugValueAddr(loc, argrv.getValue(), {vd->isLet(), ArgNo});
-      else
-        gen.B.createDebugValue(loc, argrv.getValue(), {vd->isLet(), ArgNo});
     }
+    gen.VarLocs[vd] = SILGenFunction::VarLoc::get(argrv.getValue());
+    if (argrv.getType().isAddress())
+      gen.B.createDebugValueAddr(loc, argrv.getValue(), {vd->isLet(), ArgNo});
+    else
+      gen.B.createDebugValue(loc, argrv.getValue(), {vd->isLet(), ArgNo});
   }
 
   void emitParam(ParamDecl *PD) {
diff --git a/lib/SILGen/SILGenStmt.cpp b/lib/SILGen/SILGenStmt.cpp
index d8d528e..31f3946 100644
--- a/lib/SILGen/SILGenStmt.cpp
+++ b/lib/SILGen/SILGenStmt.cpp
@@ -52,9 +52,9 @@
   case FunctionSection::Ordinary: {
     // The end of the ordinary section is just the end of the function
     // unless postmatter blocks exist.
-    SILBasicBlock *afterBB =
-        (StartOfPostmatter ? &*std::prev(StartOfPostmatter->getIterator())
-                           : nullptr);
+    SILBasicBlock *afterBB = (StartOfPostmatter != F.end())
+                                 ? &*std::prev(StartOfPostmatter)
+                                 : nullptr;
     return new (F.getModule()) SILBasicBlock(&F, afterBB);
   }
 
@@ -62,7 +62,8 @@
     // The end of the postmatter section is always the end of the function.
     // Register the new block as the start of the postmatter if needed.
     SILBasicBlock *newBB = new (F.getModule()) SILBasicBlock(&F, nullptr);
-    if (!StartOfPostmatter) StartOfPostmatter = newBB;
+    if (StartOfPostmatter == F.end())
+      StartOfPostmatter = newBB->getIterator();
     return newBB;
   }
 
@@ -73,8 +74,9 @@
 void SILGenFunction::eraseBasicBlock(SILBasicBlock *block) {
   assert(block->pred_empty() && "erasing block with predecessors");
   assert(block->empty() && "erasing block with content");
-  if (block == StartOfPostmatter) {
-    StartOfPostmatter = &*std::next(block->getIterator());
+  SILFunction::iterator blockIt = block->getIterator();
+  if (blockIt == StartOfPostmatter) {
+    StartOfPostmatter = next_or_end(blockIt, F.end());
   }
   block->eraseFromParent();
 }
diff --git a/lib/SILOptimizer/Mandatory/CMakeLists.txt b/lib/SILOptimizer/Mandatory/CMakeLists.txt
index 25f6ba1..176b390 100644
--- a/lib/SILOptimizer/Mandatory/CMakeLists.txt
+++ b/lib/SILOptimizer/Mandatory/CMakeLists.txt
@@ -6,5 +6,4 @@
   Mandatory/DiagnoseUnreachable.cpp
   Mandatory/PredictableMemOpt.cpp
   Mandatory/ConstantPropagation.cpp
-  Mandatory/InOutDeshadowing.cpp
   PARENT_SCOPE)
diff --git a/lib/SILOptimizer/Mandatory/InOutDeshadowing.cpp b/lib/SILOptimizer/Mandatory/InOutDeshadowing.cpp
deleted file mode 100644
index 4c352f3..0000000
--- a/lib/SILOptimizer/Mandatory/InOutDeshadowing.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-//===--- InOutDeshadowing.cpp - Remove non-escaping inout shadows ---------===//
-//
-// This source file is part of the Swift.org open source project
-//
-// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
-// Licensed under Apache License v2.0 with Runtime Library Exception
-//
-// See http://swift.org/LICENSE.txt for license information
-// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
-//
-//===----------------------------------------------------------------------===//
-//
-// SILGen produces shadow variables for "inout" arguments to provide proper
-// semantics for when the inout argument is closed over.  However, this shadow
-// value is *only* needed when the argument is closed over (and when that
-// closure isn't inlined).  This pass looks for shadow allocations and removes
-// them.
-//
-// This is a guaranteed optimization pass, because adding additional references
-// can cause algorithmic performance changes, e.g. turning amortized constant
-// time string and array operations into linear time operations.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "inout-deshadow"
-#include "swift/SILOptimizer/PassManager/Passes.h"
-#include "swift/SIL/SILArgument.h"
-#include "swift/SIL/SILBuilder.h"
-#include "swift/SILOptimizer/PassManager/Transforms.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-
-using namespace swift;
-
-STATISTIC(NumShadowsRemoved, "Number of inout shadow variables removed");
-STATISTIC(NumShadowsKept, "Number of inout shadow variables kept");
-
-//===----------------------------------------------------------------------===//
-//                          inout Deshadowing
-//===----------------------------------------------------------------------===//
-
-/// promoteShadow - Given an AllocStackInst that is copied to/from an inout
-/// argument, completely replace the alloc_stack with that inout argument.
-static void promoteShadow(AllocStackInst *Alloc, SILArgument *InOutArg) {
-
-  // Since the allocation has already been promoted to an alloc_stack, we know
-  // it doesn't escape.  Simply eliminate the allocation and any obviously
-  // trivial noop copies into and out of it.
-  while (!Alloc->use_empty()) {
-    auto Use = *Alloc->use_begin();
-    auto *User = Use->getUser();
-
-    // If this is the dealloc_stack, just zap the instruction.
-    if (isa<DeallocStackInst>(User)) {
-      User->eraseFromParent();
-      continue;
-    }
-
-    // Otherwise, it is a use of the argument.  If this is a copy_addr that
-    // defines or destroys the value, then remove it.
-    if (auto *CAI = dyn_cast<CopyAddrInst>(User)) {
-      if (CAI->getSrc() == InOutArg || CAI->getDest() == InOutArg) {
-        User->eraseFromParent();
-        continue;
-      }
-    }
-
-    // Otherwise, this is something else that is using the memory.  Remap this
-    // to use the InOutArg directly instead of using the allocation.
-    Use->set(InOutArg);
-  }
-  // Make the debug information stored in the AllocBox explicit.
-  SILBuilder B(Alloc);
-  B.createDebugValueAddr(Alloc->getLoc(), InOutArg, Alloc->getVarInfo());
-  Alloc->eraseFromParent();
-}
-
-
-//===----------------------------------------------------------------------===//
-//                     Candidate Variable Identification
-//===----------------------------------------------------------------------===//
-
-class StackSlotState {
-  bool Failed : 1;
-  bool HaveEntrySlot : 1;
-  
-  AllocStackInst *TheSlot = nullptr;
-  llvm::SmallPtrSet<SILBasicBlock*, 1> ExitBBs;
-  
-public:
-  StackSlotState(SILFunction *F)
-    : Failed(false), HaveEntrySlot(false)
-  {
-    // We need to see a store back to the inout on every exit path.
-    for (auto &bb : *F) {
-      auto term = bb.getTerminator();
-      if (term->isFunctionExiting()) {
-        DEBUG(llvm::dbgs() << "     need load from stack slot on exit " << &bb
-                           << '\n');
-        ExitBBs.insert(&bb);
-      }
-    }
-  }
-  
-  /// True if analysis has concluded that deshadowing cannot happen.
-  bool failed() {
-    return Failed;
-  }
-  
-  /// Get the single stack slot we can deshadow, or null if no such slot was
-  /// found.
-  AllocStackInst *getDeshadowableSlot() {
-    if (Failed)
-      return nullptr;
-    
-    // We must have seen both a store to and a load from the slot to deshadow
-    // on every exit BB.
-    if (!HaveEntrySlot) {
-      DEBUG(llvm::dbgs() << "*** Rejecting deshadow: no store to stack slot\n");
-      return nullptr;
-    }
-    
-    if (!ExitBBs.empty()) {
-      DEBUG(llvm::dbgs() << "*** Rejecting deshadow: no load from stack slot "
-                            "on some paths\n");
-      return nullptr;
-    }
-    
-    return TheSlot;
-  }
-  
-  /// Add a stack slot that was copy-initialized from the inout on entry
-  /// to the analysis. If we already have seen a load, or if the slot does not
-  /// match the exit slot, the analysis fails.
-  void addEntrySlot(AllocStackInst *slot) {
-    if (Failed) return;
-    
-    if (HaveEntrySlot)
-      return setFailed("inout is loaded multiple times");
-    if (TheSlot && slot != TheSlot)
-      return setFailed("inout is loaded and stored into different slots");
-    
-    DEBUG(llvm::dbgs() << "    found store to stack slot on entry\n");
-    HaveEntrySlot = true;
-    TheSlot = slot;
-  }
-  
-  /// Add a stack slot that was take-assigned to the inout from an exit BB
-  /// to the analysis. If we already have seen a store on this BB, or if the
-  /// slot does not match the entry slot, the analysis fails.
-  void addExitSlot(AllocStackInst *slot, SILBasicBlock *exitBB) {
-    if (Failed) return;
-    
-    if (TheSlot && slot != TheSlot)
-      return setFailed("inout is loaded and stored into different slots");
-    if (!ExitBBs.erase(exitBB))
-      return setFailed("inout is stored multiple times from same exit BB");
-    
-    DEBUG(llvm::dbgs() << "    found load from stack slot on exit "
-                       << exitBB << '\n');
-    TheSlot = slot;
-  }
-  
-  /// Fail the analysis.
-  void setFailed(StringRef reason) {
-    DEBUG(llvm::dbgs() << "*** Rejecting deshadow: " << reason << '\n');
-    Failed = true;
-  }
-};
-
-/// isCopyToOrFromStack - Check to see if the specified use of an inout
-/// argument is a copy_addr to/from an alloc_stack.
-///
-/// This returns the alloc_stack if found, or null if not.
-static void analyzeUseOfInOut(Operand *UI, StackSlotState &state) {
-  // Look for copy_addr instructions.
-  auto CAI = dyn_cast<CopyAddrInst>(UI->getUser());
-  // Non-copy_addr uses of the inout should only occur in canonical SIL, so
-  // fail the analysis if we see one.
-  if (!CAI)
-    return state.setFailed("inout is used by a non-copy_addr instruction");
-  
-  // We only look at autogenerated copy_addr's.  We don't want to muck with
-  // user variables, as in:
-  //   func f(inout a : Int) { var b = a }
-  if (!CAI->getLoc().isAutoGenerated() && !CAI->getLoc().isSILFile())
-    return;
-  
-  // Get a stack slot, looking through mark_uninitialized if necessary.
-  auto getStackSlot = [](SILValue V) {
-    // Look through mark_uninitialized.
-    if (auto *MUI = dyn_cast<MarkUninitializedInst>(V))
-      V = MUI->getOperand();
-    
-    return dyn_cast<AllocStackInst>(V);
-  };
-  
-  // Are we the source or destination?
-  switch (UI->getOperandNumber()) {
-  case 0: { // Source
-    // Is this copy in the entry block?
-    if (CAI->getParent()->getIterator() != CAI->getFunction()->begin())
-      // Any copy from the inout outside of the entry block fails the analysis.
-      // We don't need full flow-sensitive analysis for SILGen-ed code.
-      return state.setFailed("inout is loaded outside of the entry block");
-    
-    // Fail if this isn't a copy-initialization.
-    if (CAI->isTakeOfSrc() || !CAI->isInitializationOfDest())
-      return state.setFailed("inout is loaded as a non-copy-initialization");
-      
-    // Fail if this isn't a store to a stack slot.
-    AllocStackInst *destSlot = getStackSlot(CAI->getDest());
-    if (!destSlot)
-      return state.setFailed("inout is loaded to a non-stack slot");
-    
-    // Add the entry slot to the analysis.
-    return state.addEntrySlot(destSlot);
-  }
-  case 1: { // Destination
-    // Is this copy in an exit block?
-    auto term = CAI->getParent()->getTerminator();
-    
-    // Unreachable blocks don't matter to the analysis.
-    if (isa<UnreachableInst>(term))
-      return;
-    
-    if (!term->isFunctionExiting())
-      // Any copy from the inout outside of an exit block fails the analysis.
-      // We don't need full flow-sensitive analysis for SILGen-ed code.
-      return state.setFailed("inout is stored outside of an exit block");
-    
-    // Fail if this isn't an assignment.
-    if (CAI->isInitializationOfDest())
-      return state.setFailed("inout is stored as a non-assignment");
-    
-    // Fail if this isn't a load from a stack slot.
-    AllocStackInst *srcSlot = getStackSlot(CAI->getSrc());
-    if (!srcSlot)
-      return state.setFailed("inout is stored from a non-stack slot");
-      
-    // Add the exit slot to the analysis.
-    return state.addExitSlot(srcSlot, CAI->getParent());
-  }
-  default:
-    llvm_unreachable("copy_addr only has two operands");
-  }
-}
-
-
-/// processInOutValue - Walk the use-def list of the inout argument to find uses
-/// of it.  If we find any autogenerated copies to/from an alloc_stack, then
-/// remove the alloc stack in favor of loading/storing to the inout pointer
-/// directly.
-///
-/// This returns true if it promotes away the shadow variable.
-///
-static bool processInOutValue(SILArgument *InOutArg) {
-  assert(InOutArg->getType().isAddress() &&
-         "inout arguments should always be addresses");
-  
-  {
-    StackSlotState state(InOutArg->getFunction());
-    
-    for (auto UI : InOutArg->getUses()) {
-      analyzeUseOfInOut(UI, state);
-      if (state.failed())
-        goto failed;
-    }
-    
-    AllocStackInst *stackSlot = state.getDeshadowableSlot();
-    if (!stackSlot)
-      goto failed;
-    
-    DEBUG(llvm::dbgs() << "    Promoting shadow variable " << *stackSlot);
-    promoteShadow(stackSlot, InOutArg);
-    return true;
-  }
-failed:
-  // If we fail, dump out some internal state.
-  DEBUG({
-    llvm::dbgs() << "*** Failed to deshadow.  Uses:\n";
-    for (auto UI : InOutArg->getUses())
-      llvm::dbgs() << "    " << *UI->getUser();
-  });
-
-  return false;
-}
-
-namespace {
-class InOutDeshadowing : public SILFunctionTransform {
-
-  /// The entry point to the transformation.
-  void run() override {
-    SILFunction &F = *getFunction();
-
-    // For each function, find any inout arguments and try to optimize each of
-    // them.
-    SILFunctionType *FTI = F.getLoweredFunctionType();
-
-    for (unsigned arg = 0, e = FTI->getParameters().size();
-         arg != e; ++arg) {
-      if (!FTI->getParameters()[arg].isIndirectInOut()) continue;
-
-      DEBUG(llvm::dbgs()<< "  " << F.getName() << ": argument #"<< arg << "\n");
-
-      if (processInOutValue(F.getArgumentsWithoutIndirectResults()[arg]))
-        ++NumShadowsRemoved;
-      else {
-        ++NumShadowsKept;
-      }
-    }
-  }
-
-  StringRef getName() override { return "InOut Deshadowing"; }
-};
-} // end anonymous namespace
-
-
-SILTransform *swift::createInOutDeshadowing() {
-  return new InOutDeshadowing();
-}
diff --git a/lib/SILOptimizer/Mandatory/MandatoryInlining.cpp b/lib/SILOptimizer/Mandatory/MandatoryInlining.cpp
index d631be5..3bb8320 100644
--- a/lib/SILOptimizer/Mandatory/MandatoryInlining.cpp
+++ b/lib/SILOptimizer/Mandatory/MandatoryInlining.cpp
@@ -284,6 +284,7 @@
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Method:
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::WitnessMethod:
     break;
     
diff --git a/lib/SILOptimizer/PassManager/PassManager.cpp b/lib/SILOptimizer/PassManager/PassManager.cpp
index 3f814ab..4d3417d 100644
--- a/lib/SILOptimizer/PassManager/PassManager.cpp
+++ b/lib/SILOptimizer/PassManager/PassManager.cpp
@@ -247,7 +247,7 @@
 }
 
 bool SILPassManager::analysesUnlocked() {
-  for (auto A : Analysis)
+  for (auto *A : Analysis)
     if (A->isLocked())
       return false;
 
@@ -481,7 +481,7 @@
   }
   NumOptzIterations++;
   NumOptimizationIterations++;
-  SmallVector<SILFunctionTransform*, 16> PendingFuncTransforms;
+  SmallVector<SILFunctionTransform *, 16> PendingFuncTransforms;
 
   // Run the transforms by alternating between function transforms and
   // module transforms. We'll queue up all the function transforms
@@ -542,11 +542,11 @@
 /// D'tor.
 SILPassManager::~SILPassManager() {
   // Free all transformations.
-  for (auto T : Transformations)
+  for (auto *T : Transformations)
     delete T;
 
   // delete the analysis.
-  for (auto A : Analysis) {
+  for (auto *A : Analysis) {
     Mod->removeDeleteNotificationHandler(A);
     assert(!A->isLocked() &&
            "Deleting a locked analysis. Did we forget to unlock ?");
@@ -559,10 +559,29 @@
   assert(F && F->isDefinition() && F->shouldOptimize() &&
          "Expected optimizable function definition!");
 
-  const int MaxDeriveLevels = 10;
+  constexpr int MaxDeriveLevels = 10;
 
   int NewLevel = 1;
   if (DerivedFrom) {
+    // When SILVerifyAll is enabled, individual functions are verified after
+    // function passes are run upon them. This means that any functions created
+    // by a function pass will not be verified after the pass runs. Thus
+    // specialization errors that cause the verifier to trip will be
+    // misattributed to the first pass that makes a change to the specialized
+    // function. This is very misleading and increases triage time.
+    //
+    // As a result, when SILVerifyAll is enabled, we always verify newly
+    // specialized functions as they are added to the worklist.
+    //
+    // TODO: Currently, all specialized functions are added to the function
+    // worklist in this manner. This is all well and good, but we should really
+    // add support for verifying that all specialized functions are added via
+    // this function to the pass manager to ensure that we perform this
+    // verification.
+    if (getOptions().VerifyAll) {
+      F->verify();
+    }
+
     NewLevel = DerivationLevels[DerivedFrom] + 1;
     // Limit the number of derivations, i.e. don't allow that a pass specializes
     // a specialized function which is itself a specialized function, and so on.
@@ -590,7 +609,7 @@
 /// \brief Reset the state of the pass manager and remove all transformation
 /// owned by the pass manager. Analysis passes will be kept.
 void SILPassManager::resetAndRemoveTransformations() {
-  for (auto T : Transformations)
+  for (auto *T : Transformations)
     delete T;
 
   Transformations.clear();
diff --git a/lib/SILOptimizer/PassManager/Passes.cpp b/lib/SILOptimizer/PassManager/Passes.cpp
index dd8eb6a..4fb4878 100644
--- a/lib/SILOptimizer/PassManager/Passes.cpp
+++ b/lib/SILOptimizer/PassManager/Passes.cpp
@@ -86,10 +86,17 @@
     return Ctx.hadError();
   }
 
+  // If SILOwnership is enabled, run the ownership model eliminator
+  if (Module.getOptions().EnableSILOwnership) {
+    PM.addOwnershipModelEliminator();
+    PM.runOneIteration();
+    PM.resetAndRemoveTransformations();
+    Module.verify(true);
+  }
+
   // Otherwise run the rest of diagnostics.
   PM.addCapturePromotion();
   PM.addAllocBoxToStack();
-  PM.addInOutDeshadowing();
   PM.addNoReturnFolding();
   PM.addDefiniteInitialization();
 
diff --git a/lib/SILOptimizer/SILCombiner/SILCombinerApplyVisitors.cpp b/lib/SILOptimizer/SILCombiner/SILCombinerApplyVisitors.cpp
index 6626412..32e65ef 100644
--- a/lib/SILOptimizer/SILCombiner/SILCombinerApplyVisitors.cpp
+++ b/lib/SILOptimizer/SILCombiner/SILCombinerApplyVisitors.cpp
@@ -871,12 +871,17 @@
       return nullptr;
   }
 
-  // Obtain the protocol whose which should be used by the conformance.
+  // The lookup type is not a opened existential type, 
+  // thus it cannot be made more concrete.
+  if (!WMI->getLookupType()->isOpenedExistential())
+    return nullptr;
+
+  // Obtain the protocol which should be used by the conformance.
   auto *PD = WMI->getLookupProtocol();
 
   // Propagate the concrete type into a callee-operand, which is a
   // witness_method instruction.
-  auto PropagateIntoOperand = [this, &WMI](CanType ConcreteType,
+  auto PropagateIntoOperand = [this, &WMI, &AI](CanType ConcreteType,
                                            ProtocolConformanceRef Conformance) {
     // Keep around the dependence on the open instruction unless we've
     // actually eliminated the use.
@@ -885,8 +890,15 @@
                                                 Conformance, WMI->getMember(),
                                                 WMI->getType(),
                                                 WMI->isVolatile());
-    replaceInstUsesWith(*WMI, NewWMI);
-    eraseInstFromFunction(*WMI);
+    // Replace only uses of the witness_method in the apply that is going to
+    // be changed.
+    MutableArrayRef<Operand> Operands = AI.getInstruction()->getAllOperands();
+    for (auto &Op : Operands) {
+      if (Op.get() == WMI)
+         Op.set(NewWMI); 
+    }
+    if (WMI->use_empty())
+      eraseInstFromFunction(*WMI);
   };
 
   // Try to perform the propagation.
diff --git a/lib/SILOptimizer/Transforms/CMakeLists.txt b/lib/SILOptimizer/Transforms/CMakeLists.txt
index 6a138a1..9f9ce31 100644
--- a/lib/SILOptimizer/Transforms/CMakeLists.txt
+++ b/lib/SILOptimizer/Transforms/CMakeLists.txt
@@ -1,7 +1,7 @@
 set(TRANSFORMS_SOURCES
+  Transforms/ARCCodeMotion.cpp
   Transforms/AllocBoxToStack.cpp
   Transforms/ArrayCountPropagation.cpp
-  Transforms/ARCCodeMotion.cpp
   Transforms/ArrayElementValuePropagation.cpp
   Transforms/CSE.cpp
   Transforms/ConditionForwarding.cpp
@@ -13,6 +13,7 @@
   Transforms/FunctionSignatureOpts.cpp
   Transforms/GenericSpecializer.cpp
   Transforms/MergeCondFail.cpp
+  Transforms/OwnershipModelEliminator.cpp
   Transforms/PerformanceInliner.cpp
   Transforms/RedundantLoadElimination.cpp
   Transforms/RedundantOverflowCheckRemoval.cpp
diff --git a/lib/SILOptimizer/Transforms/OwnershipModelEliminator.cpp b/lib/SILOptimizer/Transforms/OwnershipModelEliminator.cpp
new file mode 100644
index 0000000..2f1f219
--- /dev/null
+++ b/lib/SILOptimizer/Transforms/OwnershipModelEliminator.cpp
@@ -0,0 +1,143 @@
+//===--- OwnershipModelEliminator.cpp - Eliminate SILOwnership Instr. -----===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+///
+///  \file
+///
+///  This file contains a small pass that lowers SIL ownership instructions to
+///  their constituent operations. This will enable us to separate
+///  implementation
+///  of Semantic ARC in SIL and SILGen from ensuring that all of the optimizer
+///  passes respect Semantic ARC. This is done by running this pass right after
+///  SILGen and as the pass pipeline is updated, moving this pass further and
+///  further back in the pipeline.
+///
+//===----------------------------------------------------------------------===//
+
+#define DEBUG_TYPE "sil-ownership-model-eliminator"
+#include "swift/SILOptimizer/PassManager/Transforms.h"
+#include "swift/SIL/SILBuilder.h"
+#include "swift/SIL/SILFunction.h"
+
+using namespace swift;
+
+//===----------------------------------------------------------------------===//
+//                               Implementation
+//===----------------------------------------------------------------------===//
+
+namespace {
+
+struct OwnershipModelEliminator : SILFunctionTransform {
+
+  bool processLoad(SILBuilder &B, LoadInst *LI) {
+    auto Qualifier = LI->getOwnershipQualifier();
+
+    // If the qualifier is unqualified, there is nothing further to do
+    // here. Just return.
+    if (Qualifier == LoadOwnershipQualifier::Unqualified)
+      return false;
+
+    // Otherwise, we need to break down the load inst into its unqualified
+    // components.
+    B.setInsertionPoint(LI);
+    B.setCurrentDebugScope(LI->getDebugScope());
+    auto *UnqualifiedLoad = B.createLoad(LI->getLoc(), LI->getOperand());
+
+    // If we have a copy, insert a retain_value. All other copies do not require
+    // more work.
+    if (Qualifier == LoadOwnershipQualifier::Copy) {
+      B.createRetainValue(UnqualifiedLoad->getLoc(), UnqualifiedLoad,
+                          Atomicity::Atomic);
+    }
+
+    // Then remove the qualified load and use the unqualified load as the def of
+    // all of LI's uses.
+    LI->replaceAllUsesWith(UnqualifiedLoad);
+    LI->removeFromParent();
+    return true;
+  }
+
+  bool processStore(SILBuilder &B, StoreInst *SI) {
+    auto Qualifier = SI->getOwnershipQualifier();
+
+    // If the qualifier is unqualified, there is nothing further to do
+    // here. Just return.
+    if (Qualifier == StoreOwnershipQualifier::Unqualified)
+      return false;
+
+    // Otherwise, we need to break down the load.
+    B.setInsertionPoint(SI);
+    B.setCurrentDebugScope(SI->getDebugScope());
+
+    if (Qualifier != StoreOwnershipQualifier::Assign) {
+      // If the ownership qualifier is not an assign, we can just emit an
+      // unqualified store.
+      B.createStore(SI->getLoc(), SI->getSrc(), SI->getDest());
+    } else {
+      // If the ownership qualifier is [assign], then we need to eliminate the
+      // old value.
+      //
+      // 1. Load old value.
+      // 2. Store new value.
+      // 3. Release old value.
+      auto *Old = B.createLoad(SI->getLoc(), SI->getDest());
+      B.createStore(SI->getLoc(), SI->getSrc(), SI->getDest());
+      B.createReleaseValue(SI->getLoc(), Old, Atomicity::Atomic);
+    }
+
+    // Then remove the qualified store.
+    SI->removeFromParent();
+    return true;
+  }
+
+  void run() override {
+    bool MadeChange = false;
+    SILFunction *F = getFunction();
+    SILBuilder B(*F);
+    for (auto &BB : *F) {
+      for (auto II = BB.begin(), IE = BB.end(); II != IE;) {
+        // Since we are going to be potentially removing instructions, we need
+        // to make sure to grab out instruction and increment first.
+        SILInstruction *I = &*II;
+        ++II;
+
+        if (auto *LI = dyn_cast<LoadInst>(I)) {
+          MadeChange |= processLoad(B, LI);
+          continue;
+        }
+
+        auto *SI = dyn_cast<StoreInst>(I);
+        if (!SI)
+          continue;
+
+        MadeChange |= processStore(B, SI);
+      }
+    }
+
+    if (MadeChange) {
+      // If we made any changes, we just changed instructions, so invalidate
+      // that analysis.
+      invalidateAnalysis(SILAnalysis::InvalidationKind::Instructions);
+    }
+  }
+
+  StringRef getName() override { return "Ownership Model Eliminator"; }
+};
+
+} // end anonymous namespace
+
+//===----------------------------------------------------------------------===//
+//                           Top Level Entry Point
+//===----------------------------------------------------------------------===//
+
+SILTransform *swift::createOwnershipModelEliminator() {
+  return new OwnershipModelEliminator();
+}
diff --git a/lib/SILOptimizer/Transforms/PerformanceInliner.cpp b/lib/SILOptimizer/Transforms/PerformanceInliner.cpp
index 64471e5..218fd9b 100644
--- a/lib/SILOptimizer/Transforms/PerformanceInliner.cpp
+++ b/lib/SILOptimizer/Transforms/PerformanceInliner.cpp
@@ -11,29 +11,12 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "sil-inliner"
-#include "swift/SIL/SILInstruction.h"
-#include "swift/SIL/Dominance.h"
-#include "swift/SIL/SILModule.h"
-#include "swift/SIL/Projection.h"
-#include "swift/SIL/InstructionUtils.h"
-#include "swift/SILOptimizer/Analysis/ColdBlockInfo.h"
-#include "swift/SILOptimizer/Analysis/DominanceAnalysis.h"
-#include "swift/SILOptimizer/Analysis/FunctionOrder.h"
-#include "swift/SILOptimizer/Analysis/LoopAnalysis.h"
-#include "swift/SILOptimizer/Analysis/ArraySemantic.h"
 #include "swift/SILOptimizer/PassManager/Passes.h"
 #include "swift/SILOptimizer/PassManager/Transforms.h"
-#include "swift/SILOptimizer/Utils/Local.h"
-#include "swift/SILOptimizer/Utils/ConstantFolding.h"
-#include "swift/SILOptimizer/Utils/SILInliner.h"
-#include "llvm/ADT/SetVector.h"
-#include "llvm/ADT/SmallVector.h"
+#include "swift/SILOptimizer/Utils/PerformanceInlinerUtils.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/CommandLine.h"
-#include "llvm/ADT/MapVector.h"
-#include <functional>
-
 
 using namespace swift;
 
@@ -43,921 +26,6 @@
     "print-shortest-path-info", llvm::cl::init(false),
     llvm::cl::desc("Print shortest-path information for inlining"));
 
-llvm::cl::opt<bool> EnableSILInliningOfGenerics(
-    "sil-inline-generics", llvm::cl::init(false),
-    llvm::cl::desc("Enable inlining of generics"));
-
-//===----------------------------------------------------------------------===//
-//                               ConstantTracker
-//===----------------------------------------------------------------------===//
-
-// Tracks constants in the caller and callee to get an estimation of what
-// values get constant if the callee is inlined.
-// This can be seen as a "simulation" of several optimizations: SROA, mem2reg
-// and constant propagation.
-// Note that this is only a simplified model and not correct in all cases.
-// For example aliasing information is not taken into account.
-class ConstantTracker {
-
-  // Represents a value in integer constant evaluation.
-  struct IntConst {
-    IntConst() : isValid(false), isFromCaller(false) { }
-
-    IntConst(const APInt &value, bool isFromCaller) :
-    value(value), isValid(true), isFromCaller(isFromCaller) { }
-
-    // The actual value.
-    APInt value;
-
-    // True if the value is valid, i.e. could be evaluated to a constant.
-    bool isValid;
-
-    // True if the value is only valid, because a constant is passed to the
-    // callee. False if constant propagation could do the same job inside the
-    // callee without inlining it.
-    bool isFromCaller;
-  };
-  
-  // Links between loaded and stored values.
-  // The key is a load instruction, the value is the corresponding store
-  // instruction which stores the loaded value. Both, key and value can also
-  // be copy_addr instructions.
-  llvm::DenseMap<SILInstruction *, SILInstruction *> links;
-  
-  // The current stored values at memory addresses.
-  // The key is the base address of the memory (after skipping address
-  // projections). The value are store (or copy_addr) instructions, which
-  // store the current value.
-  // This is only an estimation, because e.g. it does not consider potential
-  // aliasing.
-  llvm::DenseMap<SILValue, SILInstruction *> memoryContent;
-  
-  // Cache for evaluated constants.
-  llvm::SmallDenseMap<BuiltinInst *, IntConst> constCache;
-
-  // The caller/callee function which is tracked.
-  SILFunction *F;
-  
-  // The constant tracker of the caller function (null if this is the
-  // tracker of the callee).
-  ConstantTracker *callerTracker;
-  
-  // The apply instruction in the caller (null if this is the tracker of the
-  // callee).
-  FullApplySite AI;
-  
-  // Walks through address projections and (optionally) collects them.
-  // Returns the base address, i.e. the first address which is not a
-  // projection.
-  SILValue scanProjections(SILValue addr,
-                           SmallVectorImpl<Projection> *Result = nullptr);
-  
-  // Get the stored value for a load. The loadInst can be either a real load
-  // or a copy_addr.
-  SILValue getStoredValue(SILInstruction *loadInst,
-                          ProjectionPath &projStack);
-
-  // Gets the parameter in the caller for a function argument.
-  SILValue getParam(SILValue value) {
-    if (SILArgument *arg = dyn_cast<SILArgument>(value)) {
-      if (AI && arg->isFunctionArg() && arg->getFunction() == F) {
-        // Continue at the caller.
-        return AI.getArgument(arg->getIndex());
-      }
-    }
-    return SILValue();
-  }
-  
-  SILInstruction *getMemoryContent(SILValue addr) {
-    // The memory content can be stored in this ConstantTracker or in the
-    // caller's ConstantTracker.
-    SILInstruction *storeInst = memoryContent[addr];
-    if (storeInst)
-      return storeInst;
-    if (callerTracker)
-      return callerTracker->getMemoryContent(addr);
-    return nullptr;
-  }
-  
-  // Gets the estimated definition of a value.
-  SILInstruction *getDef(SILValue val, ProjectionPath &projStack);
-
-  // Gets the estimated integer constant result of a builtin.
-  IntConst getBuiltinConst(BuiltinInst *BI, int depth);
-  
-public:
-  
-  // Constructor for the caller function.
-  ConstantTracker(SILFunction *function) :
-    F(function), callerTracker(nullptr), AI()
-  { }
-  
-  // Constructor for the callee function.
-  ConstantTracker(SILFunction *function, ConstantTracker *caller,
-                  FullApplySite callerApply) :
-     F(function), callerTracker(caller), AI(callerApply)
-  { }
-  
-  void beginBlock() {
-    // Currently we don't do any sophisticated dataflow analysis, so we keep
-    // the memoryContent alive only for a single block.
-    memoryContent.clear();
-  }
-
-  // Must be called for each instruction visited in dominance order.
-  void trackInst(SILInstruction *inst);
-  
-  // Gets the estimated definition of a value.
-  SILInstruction *getDef(SILValue val) {
-    ProjectionPath projStack(val->getType());
-    return getDef(val, projStack);
-  }
-  
-  // Gets the estimated definition of a value if it is in the caller.
-  SILInstruction *getDefInCaller(SILValue val) {
-    SILInstruction *def = getDef(val);
-    if (def && def->getFunction() != F)
-      return def;
-    return nullptr;
-  }
-
-  bool isStackAddrInCaller(SILValue val) {
-    if (SILValue Param = getParam(stripAddressProjections(val))) {
-      return isa<AllocStackInst>(stripAddressProjections(Param));
-    }
-    return false;
-  }
-
-  // Gets the estimated integer constant of a value.
-  IntConst getIntConst(SILValue val, int depth = 0);
-
-  SILBasicBlock *getTakenBlock(TermInst *term);
-};
-
-void ConstantTracker::trackInst(SILInstruction *inst) {
-  if (auto *LI = dyn_cast<LoadInst>(inst)) {
-    SILValue baseAddr = scanProjections(LI->getOperand());
-    if (SILInstruction *loadLink = getMemoryContent(baseAddr))
-      links[LI] = loadLink;
-  } else if (StoreInst *SI = dyn_cast<StoreInst>(inst)) {
-    SILValue baseAddr = scanProjections(SI->getOperand(1));
-    memoryContent[baseAddr] = SI;
-  } else if (CopyAddrInst *CAI = dyn_cast<CopyAddrInst>(inst)) {
-    if (!CAI->isTakeOfSrc()) {
-      // Treat a copy_addr as a load + store
-      SILValue loadAddr = scanProjections(CAI->getOperand(0));
-      if (SILInstruction *loadLink = getMemoryContent(loadAddr)) {
-        links[CAI] = loadLink;
-        SILValue storeAddr = scanProjections(CAI->getOperand(1));
-        memoryContent[storeAddr] = CAI;
-      }
-    }
-  }
-}
-
-SILValue ConstantTracker::scanProjections(SILValue addr,
-                                          SmallVectorImpl<Projection> *Result) {
-  for (;;) {
-    if (Projection::isAddressProjection(addr)) {
-      SILInstruction *I = cast<SILInstruction>(addr);
-      if (Result) {
-        Result->push_back(Projection(I));
-      }
-      addr = I->getOperand(0);
-      continue;
-    }
-    if (SILValue param = getParam(addr)) {
-      // Go to the caller.
-      addr = param;
-      continue;
-    }
-    // Return the base address = the first address which is not a projection.
-    return addr;
-  }
-}
-
-SILValue ConstantTracker::getStoredValue(SILInstruction *loadInst,
-                                         ProjectionPath &projStack) {
-  SILInstruction *store = links[loadInst];
-  if (!store && callerTracker)
-    store = callerTracker->links[loadInst];
-  if (!store) return SILValue();
-
-  assert(isa<LoadInst>(loadInst) || isa<CopyAddrInst>(loadInst));
-
-  // Push the address projections of the load onto the stack.
-  SmallVector<Projection, 4> loadProjections;
-  scanProjections(loadInst->getOperand(0), &loadProjections);
-  for (const Projection &proj : loadProjections) {
-    projStack.push_back(proj);
-  }
-
-  //  Pop the address projections of the store from the stack.
-  SmallVector<Projection, 4> storeProjections;
-  scanProjections(store->getOperand(1), &storeProjections);
-  for (auto iter = storeProjections.rbegin(); iter != storeProjections.rend();
-       ++iter) {
-    const Projection &proj = *iter;
-    // The corresponding load-projection must match the store-projection.
-    if (projStack.empty() || projStack.back() != proj)
-      return SILValue();
-    projStack.pop_back();
-  }
-
-  if (isa<StoreInst>(store))
-    return store->getOperand(0);
-
-  // The copy_addr instruction is both a load and a store. So we follow the link
-  // again.
-  assert(isa<CopyAddrInst>(store));
-  return getStoredValue(store, projStack);
-}
-
-// Get the aggregate member based on the top of the projection stack.
-static SILValue getMember(SILInstruction *inst, ProjectionPath &projStack) {
-  if (!projStack.empty()) {
-    const Projection &proj = projStack.back();
-    return proj.getOperandForAggregate(inst);
-  }
-  return SILValue();
-}
-
-SILInstruction *ConstantTracker::getDef(SILValue val,
-                                        ProjectionPath &projStack) {
-
-  // Track the value up the dominator tree.
-  for (;;) {
-    if (SILInstruction *inst = dyn_cast<SILInstruction>(val)) {
-      if (Projection::isObjectProjection(inst)) {
-        // Extract a member from a struct/tuple/enum.
-        projStack.push_back(Projection(inst));
-        val = inst->getOperand(0);
-        continue;
-      } else if (SILValue member = getMember(inst, projStack)) {
-        // The opposite of a projection instruction: composing a struct/tuple.
-        projStack.pop_back();
-        val = member;
-        continue;
-      } else if (SILValue loadedVal = getStoredValue(inst, projStack)) {
-        // A value loaded from memory.
-        val = loadedVal;
-        continue;
-      } else if (isa<ThinToThickFunctionInst>(inst)) {
-        val = inst->getOperand(0);
-        continue;
-      }
-      return inst;
-    } else if (SILValue param = getParam(val)) {
-      // Continue in the caller.
-      val = param;
-      continue;
-    }
-    return nullptr;
-  }
-}
-
-ConstantTracker::IntConst ConstantTracker::getBuiltinConst(BuiltinInst *BI, int depth) {
-  const BuiltinInfo &Builtin = BI->getBuiltinInfo();
-  OperandValueArrayRef Args = BI->getArguments();
-  switch (Builtin.ID) {
-    default: break;
-
-      // Fold comparison predicates.
-#define BUILTIN(id, name, Attrs)
-#define BUILTIN_BINARY_PREDICATE(id, name, attrs, overload) \
-case BuiltinValueKind::id:
-#include "swift/AST/Builtins.def"
-    {
-      IntConst lhs = getIntConst(Args[0], depth);
-      IntConst rhs = getIntConst(Args[1], depth);
-      if (lhs.isValid && rhs.isValid) {
-        return IntConst(constantFoldComparison(lhs.value, rhs.value,
-                                               Builtin.ID),
-                        lhs.isFromCaller || rhs.isFromCaller);
-      }
-      break;
-    }
-
-    case BuiltinValueKind::SAddOver:
-    case BuiltinValueKind::UAddOver:
-    case BuiltinValueKind::SSubOver:
-    case BuiltinValueKind::USubOver:
-    case BuiltinValueKind::SMulOver:
-    case BuiltinValueKind::UMulOver: {
-      IntConst lhs = getIntConst(Args[0], depth);
-      IntConst rhs = getIntConst(Args[1], depth);
-      if (lhs.isValid && rhs.isValid) {
-        bool IgnoredOverflow;
-        return IntConst(constantFoldBinaryWithOverflow(lhs.value, rhs.value,
-                        IgnoredOverflow,
-                        getLLVMIntrinsicIDForBuiltinWithOverflow(Builtin.ID)),
-                          lhs.isFromCaller || rhs.isFromCaller);
-      }
-      break;
-    }
-
-    case BuiltinValueKind::SDiv:
-    case BuiltinValueKind::SRem:
-    case BuiltinValueKind::UDiv:
-    case BuiltinValueKind::URem: {
-      IntConst lhs = getIntConst(Args[0], depth);
-      IntConst rhs = getIntConst(Args[1], depth);
-      if (lhs.isValid && rhs.isValid && rhs.value != 0) {
-        bool IgnoredOverflow;
-        return IntConst(constantFoldDiv(lhs.value, rhs.value,
-                                        IgnoredOverflow, Builtin.ID),
-                        lhs.isFromCaller || rhs.isFromCaller);
-      }
-      break;
-    }
-
-    case BuiltinValueKind::And:
-    case BuiltinValueKind::AShr:
-    case BuiltinValueKind::LShr:
-    case BuiltinValueKind::Or:
-    case BuiltinValueKind::Shl:
-    case BuiltinValueKind::Xor: {
-      IntConst lhs = getIntConst(Args[0], depth);
-      IntConst rhs = getIntConst(Args[1], depth);
-      if (lhs.isValid && rhs.isValid) {
-        return IntConst(constantFoldBitOperation(lhs.value, rhs.value,
-                                                 Builtin.ID),
-                        lhs.isFromCaller || rhs.isFromCaller);
-      }
-      break;
-    }
-
-    case BuiltinValueKind::Trunc:
-    case BuiltinValueKind::ZExt:
-    case BuiltinValueKind::SExt:
-    case BuiltinValueKind::TruncOrBitCast:
-    case BuiltinValueKind::ZExtOrBitCast:
-    case BuiltinValueKind::SExtOrBitCast: {
-      IntConst val = getIntConst(Args[0], depth);
-      if (val.isValid) {
-        return IntConst(constantFoldCast(val.value, Builtin), val.isFromCaller);
-      }
-      break;
-    }
-  }
-  return IntConst();
-}
-
-// Tries to evaluate the integer constant of a value. The \p depth is used
-// to limit the complexity.
-ConstantTracker::IntConst ConstantTracker::getIntConst(SILValue val, int depth) {
-
-  // Don't spend too much time with constant evaluation.
-  if (depth >= 10)
-    return IntConst();
-  
-  SILInstruction *I = getDef(val);
-  if (!I)
-    return IntConst();
-  
-  if (auto *IL = dyn_cast<IntegerLiteralInst>(I)) {
-    return IntConst(IL->getValue(), IL->getFunction() != F);
-  }
-  if (auto *BI = dyn_cast<BuiltinInst>(I)) {
-    if (constCache.count(BI) != 0)
-      return constCache[BI];
-    
-    IntConst builtinConst = getBuiltinConst(BI, depth + 1);
-    constCache[BI] = builtinConst;
-    return builtinConst;
-  }
-  return IntConst();
-}
-
-// Returns the taken block of a terminator instruction if the condition turns
-// out to be constant.
-SILBasicBlock *ConstantTracker::getTakenBlock(TermInst *term) {
-  if (CondBranchInst *CBI = dyn_cast<CondBranchInst>(term)) {
-    IntConst condConst = getIntConst(CBI->getCondition());
-    if (condConst.isFromCaller) {
-      return condConst.value != 0 ? CBI->getTrueBB() : CBI->getFalseBB();
-    }
-    return nullptr;
-  }
-  if (SwitchValueInst *SVI = dyn_cast<SwitchValueInst>(term)) {
-    IntConst switchConst = getIntConst(SVI->getOperand());
-    if (switchConst.isFromCaller) {
-      for (unsigned Idx = 0; Idx < SVI->getNumCases(); ++Idx) {
-        auto switchCase = SVI->getCase(Idx);
-        if (auto *IL = dyn_cast<IntegerLiteralInst>(switchCase.first)) {
-          if (switchConst.value == IL->getValue())
-            return switchCase.second;
-        } else {
-          return nullptr;
-        }
-      }
-      if (SVI->hasDefault())
-        return SVI->getDefaultBB();
-    }
-    return nullptr;
-  }
-  if (SwitchEnumInst *SEI = dyn_cast<SwitchEnumInst>(term)) {
-    if (SILInstruction *def = getDefInCaller(SEI->getOperand())) {
-      if (EnumInst *EI = dyn_cast<EnumInst>(def)) {
-        for (unsigned Idx = 0; Idx < SEI->getNumCases(); ++Idx) {
-          auto enumCase = SEI->getCase(Idx);
-          if (enumCase.first == EI->getElement())
-            return enumCase.second;
-        }
-        if (SEI->hasDefault())
-          return SEI->getDefaultBB();
-      }
-    }
-    return nullptr;
-  }
-  if (CheckedCastBranchInst *CCB = dyn_cast<CheckedCastBranchInst>(term)) {
-    if (SILInstruction *def = getDefInCaller(CCB->getOperand())) {
-      if (UpcastInst *UCI = dyn_cast<UpcastInst>(def)) {
-        SILType castType = UCI->getOperand()->getType();
-        if (CCB->getCastType().isExactSuperclassOf(castType)) {
-          return CCB->getSuccessBB();
-        }
-        if (!castType.isBindableToSuperclassOf(CCB->getCastType())) {
-          return CCB->getFailureBB();
-        }
-      }
-    }
-  }
-  return nullptr;
-}
-
-//===----------------------------------------------------------------------===//
-//                           Shortest path analysis
-//===----------------------------------------------------------------------===//
-
-/// Computes the length of the shortest path through a block in a scope.
-///
-/// A scope is either a loop or the whole function. The "length" is an
-/// estimation of the execution time. For example if the shortest path of a
-/// block B is N, it means that the execution time of the scope (either
-/// function or a single loop iteration), when execution includes the block, is
-/// at least N, regardless of what branches are taken.
-///
-/// The shortest path of a block is the sum of the shortest path from the scope
-/// entry and the shortest path to the scope exit.
-class ShortestPathAnalysis {
-public:
-  enum {
-    /// We assume that cold block take very long to execute.
-    ColdBlockLength = 1000,
-
-    /// Our assumption on how many times a loop is executed.
-    LoopCount = 10,
-
-    /// To keep things simple we only analyse up to this number of nested loops.
-    MaxNumLoopLevels = 4,
-
-    /// The "weight" for the benefit which a single loop nest gives.
-    SingleLoopWeight = 4,
-
-    /// Pretty large but small enough to add something without overflowing.
-    InitialDist = (1 << 29)
-  };
-
-  /// A weight for an inlining benefit.
-  class Weight {
-    /// How long does it take to execute the scope (either loop or the whole
-    /// function) of the call to inline? The larger it is the less important it
-    /// is to inline.
-    int ScopeLength;
-
-    /// Represents the loop nest. The larger it is the more important it is to
-    /// inline
-    int LoopWeight;
-
-    friend class ShortestPathAnalysis;
-
-  public:
-    Weight(int ScopeLength, int LoopWeight) : ScopeLength(ScopeLength),
-                                              LoopWeight(LoopWeight) { }
-
-    Weight(const Weight &RHS, int AdditionalLoopWeight) :
-      Weight(RHS.ScopeLength, RHS.LoopWeight + AdditionalLoopWeight) { }
-
-    Weight() : ScopeLength(-1), LoopWeight(0) {
-      assert(!isValid());
-    }
-
-    bool isValid() const { return ScopeLength >= 0; }
-
-    /// Updates the \p Benefit by weighting the \p Importance.
-    void updateBenefit(int &Benefit, int Importance) const {
-      assert(isValid());
-      int newBenefit = 0;
-
-      // Use some heuristics. The basic idea is: length is bad, loops are good.
-      if (ScopeLength > 320) {
-        newBenefit = Importance;
-      } else if (ScopeLength > 160) {
-        newBenefit = Importance + LoopWeight * 4;
-      } else if (ScopeLength > 80) {
-        newBenefit = Importance + LoopWeight * 8;
-      } else if (ScopeLength > 40) {
-        newBenefit = Importance + LoopWeight * 12;
-      } else if (ScopeLength > 20) {
-        newBenefit = Importance + LoopWeight * 16;
-      } else {
-        newBenefit = Importance + 20 + LoopWeight * 16;
-      }
-      // We don't accumulate the benefit instead we max it.
-      if (newBenefit > Benefit)
-        Benefit = newBenefit;
-    }
-
-#ifndef NDEBUG
-    friend raw_ostream &operator<<(raw_ostream &os, const Weight &W) {
-      os << W.LoopWeight << '/' << W.ScopeLength;
-      return os;
-    }
-#endif
-  };
-
-private:
-  /// The distances for a block in it's scope (either loop or function).
-  struct Distances {
-    /// The shortest distance from the scope entry to the block entry.
-    int DistFromEntry = InitialDist;
-
-    /// The shortest distance from the block entry to the scope exit.
-    int DistToExit = InitialDist;
-
-    /// Additional length to account for loop iterations. It's != 0 for loop
-    /// headers (or loop predecessors).
-    int LoopHeaderLength = 0;
-  };
-
-  /// Holds the distance information for a block in all it's scopes, i.e. in all
-  /// its containing loops and the function itself.
-  struct BlockInfo {
-  private:
-    /// Distances for all scopes. Element 0 refers to the function, elements
-    /// > 0 to loops.
-    Distances Dists[MaxNumLoopLevels];
-  public:
-    /// The length of the block itself.
-    int Length = 0;
-
-    /// Returns the distances for the loop with nesting level \p LoopDepth.
-    Distances &getDistances(int LoopDepth) {
-      assert(LoopDepth >= 0 && LoopDepth < MaxNumLoopLevels);
-      return Dists[LoopDepth];
-    }
-
-    /// Returns the length including the LoopHeaderLength for a given
-    /// \p LoopDepth.
-    int getLength(int LoopDepth) {
-      return Length + getDistances(LoopDepth).LoopHeaderLength;
-    }
-
-    /// Returns the length of the shortest path of this block in the loop with
-    /// nesting level \p LoopDepth.
-    int getScopeLength(int LoopDepth) {
-      const Distances &D = getDistances(LoopDepth);
-      return D.DistFromEntry + D.DistToExit;
-    }
-  };
-
-  SILFunction *F;
-  SILLoopInfo *LI;
-  llvm::DenseMap<const SILBasicBlock *, BlockInfo *> BlockInfos;
-  std::vector<BlockInfo> BlockInfoStorage;
-
-  BlockInfo *getBlockInfo(const SILBasicBlock *BB) {
-    BlockInfo *BI = BlockInfos[BB];
-    assert(BI);
-    return BI;
-  }
-
-  // Utility functions to make the template solveDataFlow compilable for a block
-  // list containing references _and_ a list containing pointers.
-
-  const SILBasicBlock *getBlock(const SILBasicBlock *BB) { return BB; }
-  const SILBasicBlock *getBlock(const SILBasicBlock &BB) { return &BB; }
-
-  /// Returns the minimum distance from all predecessor blocks of \p BB.
-  int getEntryDistFromPreds(const SILBasicBlock *BB, int LoopDepth);
-
-  /// Returns the minimum distance from all successor blocks of \p BB.
-  int getExitDistFromSuccs(const SILBasicBlock *BB, int LoopDepth);
-
-  /// Computes the distances by solving the dataflow problem for all \p Blocks
-  /// in a scope.
-  template <typename BlockList>
-  void solveDataFlow(const BlockList &Blocks, int LoopDepth) {
-    bool Changed = false;
-
-    // Compute the distances from the entry block.
-    do {
-      Changed = false;
-      for (auto &Block : Blocks) {
-        const SILBasicBlock *BB = getBlock(Block);
-        BlockInfo *BBInfo = getBlockInfo(BB);
-        int DistFromEntry = getEntryDistFromPreds(BB, LoopDepth);
-        Distances &BBDists = BBInfo->getDistances(LoopDepth);
-        if (DistFromEntry < BBDists.DistFromEntry) {
-          BBDists.DistFromEntry = DistFromEntry;
-          Changed = true;
-        }
-      }
-    } while (Changed);
-
-    // Compute the distances to the exit block.
-    do {
-      Changed = false;
-      for (auto &Block : reverse(Blocks)) {
-        const SILBasicBlock *BB = getBlock(Block);
-        BlockInfo *BBInfo = getBlockInfo(BB);
-        int DistToExit =
-          getExitDistFromSuccs(BB, LoopDepth) + BBInfo->getLength(LoopDepth);
-        Distances &BBDists = BBInfo->getDistances(LoopDepth);
-        if (DistToExit < BBDists.DistToExit) {
-          BBDists.DistToExit = DistToExit;
-          Changed = true;
-        }
-      }
-    } while (Changed);
-  }
-
-  /// Analyze \p Loop and all its inner loops.
-  void analyzeLoopsRecursively(SILLoop *Loop, int LoopDepth);
-
-  void printFunction(llvm::raw_ostream &OS);
-
-  void printLoop(llvm::raw_ostream &OS, SILLoop *Loop, int LoopDepth);
-
-  void printBlockInfo(llvm::raw_ostream &OS, SILBasicBlock *BB, int LoopDepth);
-
-public:
-  ShortestPathAnalysis(SILFunction *F, SILLoopInfo *LI) : F(F), LI(LI) { }
-
-  bool isValid() const { return !BlockInfos.empty(); }
-
-  /// Compute the distances. The function \p getApplyLength returns the length
-  /// of a function call.
-  template <typename Func>
-  void analyze(ColdBlockInfo &CBI, Func getApplyLength) {
-    assert(!isValid());
-
-    BlockInfoStorage.resize(F->size());
-
-    // First step: compute the length of the blocks.
-    unsigned BlockIdx = 0;
-    for (SILBasicBlock &BB : *F) {
-      int Length = 0;
-      if (CBI.isCold(&BB)) {
-        Length = ColdBlockLength;
-      } else {
-        for (SILInstruction &I : BB) {
-          if (auto FAS = FullApplySite::isa(&I)) {
-            Length += getApplyLength(FAS);
-          } else {
-            Length += (int)instructionInlineCost(I);
-          }
-        }
-      }
-      BlockInfo *BBInfo = &BlockInfoStorage[BlockIdx++];
-      BlockInfos[&BB] = BBInfo;
-      BBInfo->Length = Length;
-
-      // Initialize the distances for the entry and exit blocks, used when
-      // computing the distances for the function itself.
-      if (&BB == &F->front())
-        BBInfo->getDistances(0).DistFromEntry = 0;
-
-      if (isa<ReturnInst>(BB.getTerminator()))
-        BBInfo->getDistances(0).DistToExit = Length;
-      else if (isa<ThrowInst>(BB.getTerminator()))
-        BBInfo->getDistances(0).DistToExit = Length + ColdBlockLength;
-    }
-    // Compute the distances for all loops in the function.
-    for (SILLoop *Loop : *LI) {
-      analyzeLoopsRecursively(Loop, 1);
-    }
-    // Compute the distances for the function itself.
-    solveDataFlow(F->getBlocks(), 0);
-  }
-
-  /// Returns the length of the shortest path of the block \p BB in the loop
-  /// with nesting level \p LoopDepth. If \p LoopDepth is 0 ir returns the
-  /// shortest path in the function.
-  int getScopeLength(SILBasicBlock *BB, int LoopDepth) {
-    assert(BB->getParent() == F);
-    if (LoopDepth >= MaxNumLoopLevels)
-      LoopDepth = MaxNumLoopLevels - 1;
-    return getBlockInfo(BB)->getScopeLength(LoopDepth);
-  }
-
-  /// Returns the weight of block \p BB also considering the \p CallerWeight
-  /// which is the weight of the call site's block in the caller.
-  Weight getWeight(SILBasicBlock *BB, Weight CallerWeight);
-
-  void dump();
-};
-
-int ShortestPathAnalysis::getEntryDistFromPreds(const SILBasicBlock *BB,
-                                                int LoopDepth) {
-  int MinDist = InitialDist;
-  for (SILBasicBlock *Pred : BB->getPreds()) {
-    BlockInfo *PredInfo = getBlockInfo(Pred);
-    Distances &PDists = PredInfo->getDistances(LoopDepth);
-    int DistFromEntry = PDists.DistFromEntry + PredInfo->Length +
-                          PDists.LoopHeaderLength;
-    assert(DistFromEntry >= 0);
-    if (DistFromEntry < MinDist)
-      MinDist = DistFromEntry;
-  }
-  return MinDist;
-}
-
-int ShortestPathAnalysis::getExitDistFromSuccs(const SILBasicBlock *BB,
-                                               int LoopDepth) {
-  int MinDist = InitialDist;
-  for (const SILSuccessor &Succ : BB->getSuccessors()) {
-    BlockInfo *SuccInfo = getBlockInfo(Succ);
-    Distances &SDists = SuccInfo->getDistances(LoopDepth);
-    if (SDists.DistToExit < MinDist)
-      MinDist = SDists.DistToExit;
-  }
-  return MinDist;
-}
-
-/// Detect an edge from the loop pre-header's predecessor to the loop exit
-/// block. Such an edge "short-cuts" a loop if it is never iterated. But usually
-/// it is the less frequent case and we want to ignore it.
-/// E.g. it handles the case of N==0 for
-///     for i in 0..<N { ... }
-/// If the \p Loop has such an edge the source block of this edge is returned,
-/// which is the predecessor of the loop pre-header.
-static SILBasicBlock *detectLoopBypassPreheader(SILLoop *Loop) {
-  SILBasicBlock *Pred = Loop->getLoopPreheader();
-  if (!Pred)
-    return nullptr;
-
-  SILBasicBlock *PredPred = Pred->getSinglePredecessor();
-  if (!PredPred)
-    return nullptr;
-
-  auto *CBR = dyn_cast<CondBranchInst>(PredPred->getTerminator());
-  if (!CBR)
-    return nullptr;
-
-  SILBasicBlock *Succ = (CBR->getTrueBB() == Pred ? CBR->getFalseBB() :
-                                                    CBR->getTrueBB());
-
-  for (SILBasicBlock *PredOfSucc : Succ->getPreds()) {
-    SILBasicBlock *Exiting = PredOfSucc->getSinglePredecessor();
-    if (!Exiting)
-      Exiting = PredOfSucc;
-    if (Loop->contains(Exiting))
-      return PredPred;
-  }
-  return nullptr;
-}
-
-void ShortestPathAnalysis::analyzeLoopsRecursively(SILLoop *Loop, int LoopDepth) {
-  if (LoopDepth >= MaxNumLoopLevels)
-    return;
-
-  // First dive into the inner loops.
-  for (SILLoop *SubLoop : Loop->getSubLoops()) {
-    analyzeLoopsRecursively(SubLoop, LoopDepth + 1);
-  }
-
-  BlockInfo *HeaderInfo = getBlockInfo(Loop->getHeader());
-  Distances &HeaderDists = HeaderInfo->getDistances(LoopDepth);
-
-  // Initial values for the entry (== header) and exit-predecessor (== header as
-  // well).
-  HeaderDists.DistFromEntry = 0;
-  HeaderDists.DistToExit = 0;
-
-  solveDataFlow(Loop->getBlocks(), LoopDepth);
-
-  int LoopLength = getExitDistFromSuccs(Loop->getHeader(), LoopDepth) +
-  HeaderInfo->getLength(LoopDepth);
-  HeaderDists.DistToExit = LoopLength;
-
-  // If there is a loop bypass edge, add the loop length to the loop pre-pre-
-  // header instead to the header. This actually let us ignore the loop bypass
-  // edge in the length calculation for the loop's parent scope.
-  if (SILBasicBlock *Bypass = detectLoopBypassPreheader(Loop))
-    HeaderInfo = getBlockInfo(Bypass);
-
-  // Add the full loop length (= assumed-iteration-count * length) to the loop
-  // header so that it is considered in the parent scope.
-  HeaderInfo->getDistances(LoopDepth - 1).LoopHeaderLength =
-    LoopCount * LoopLength;
-}
-
-ShortestPathAnalysis::Weight ShortestPathAnalysis::
-getWeight(SILBasicBlock *BB, Weight CallerWeight) {
-  assert(BB->getParent() == F);
-
-  SILLoop *Loop = LI->getLoopFor(BB);
-  if (!Loop) {
-    // We are not in a loop. So just account the length of our function scope
-    // in to the length of the CallerWeight.
-    return Weight(CallerWeight.ScopeLength + getScopeLength(BB, 0),
-                  CallerWeight.LoopWeight);
-  }
-  int LoopDepth = Loop->getLoopDepth();
-  // Deal with the corner case of having more than 4 nested loops.
-  while (LoopDepth >= MaxNumLoopLevels) {
-    --LoopDepth;
-    Loop = Loop->getParentLoop();
-  }
-  Weight W(getScopeLength(BB, LoopDepth), SingleLoopWeight);
-
-  // Add weights for all the loops BB is in.
-  while (Loop) {
-    assert(LoopDepth > 0);
-    BlockInfo *HeaderInfo = getBlockInfo(Loop->getHeader());
-    int InnerLoopLength = HeaderInfo->getScopeLength(LoopDepth) *
-                            ShortestPathAnalysis::LoopCount;
-    int OuterLoopWeight = SingleLoopWeight;
-    int OuterScopeLength = HeaderInfo->getScopeLength(LoopDepth - 1);
-
-    // Reaching the outermost loop, we use the CallerWeight to get the outer
-    // length+loopweight.
-    if (LoopDepth == 1) {
-      // If the apply in the caller is not in a significant loop, just stop with
-      // what we have now.
-      if (CallerWeight.LoopWeight < 4)
-        return W;
-
-      // If this function is part of the caller's scope length take the caller's
-      // scope length. Note: this is not the case e.g. if the apply is in a
-      // then-branch of an if-then-else in the caller and the else-branch is
-      // the short path.
-      if (CallerWeight.ScopeLength > OuterScopeLength)
-        OuterScopeLength = CallerWeight.ScopeLength;
-      OuterLoopWeight = CallerWeight.LoopWeight;
-    }
-    assert(OuterScopeLength >= InnerLoopLength);
-
-    // If the current loop is only a small part of its outer loop, we don't
-    // take the outer loop that much into account. Only if the current loop is
-    // actually the "main part" in the outer loop we add the full loop weight
-    // for the outer loop.
-    if (OuterScopeLength < InnerLoopLength * 2) {
-      W.LoopWeight += OuterLoopWeight - 1;
-    } else if (OuterScopeLength < InnerLoopLength * 3) {
-      W.LoopWeight += OuterLoopWeight - 2;
-    } else if (OuterScopeLength < InnerLoopLength * 4) {
-      W.LoopWeight += OuterLoopWeight - 3;
-    } else {
-      return W;
-    }
-    --LoopDepth;
-    Loop = Loop->getParentLoop();
-  }
-  assert(LoopDepth == 0);
-  return W;
-}
-
-void ShortestPathAnalysis::dump() {
-  printFunction(llvm::errs());
-}
-
-void ShortestPathAnalysis::printFunction(llvm::raw_ostream &OS) {
-  OS << "SPA @" << F->getName() << "\n";
-  for (SILBasicBlock &BB : *F) {
-    printBlockInfo(OS, &BB, 0);
-  }
-  for (SILLoop *Loop : *LI) {
-    printLoop(OS, Loop, 1);
-  }
-}
-
-void ShortestPathAnalysis::printLoop(llvm::raw_ostream &OS, SILLoop *Loop,
-                                     int LoopDepth) {
-  if (LoopDepth >= MaxNumLoopLevels)
-    return;
-  assert(LoopDepth == (int)Loop->getLoopDepth());
-
-  OS << "Loop bb" << Loop->getHeader()->getDebugID() << ":\n";
-  for (SILBasicBlock *BB : Loop->getBlocks()) {
-    printBlockInfo(OS, BB, LoopDepth);
-  }
-  for (SILLoop *SubLoop : Loop->getSubLoops()) {
-    printLoop(OS, SubLoop, LoopDepth + 1);
-  }
-}
-
-void ShortestPathAnalysis::printBlockInfo(llvm::raw_ostream &OS,
-                                          SILBasicBlock *BB, int LoopDepth) {
-  BlockInfo *BBInfo = getBlockInfo(BB);
-  Distances &D = BBInfo->getDistances(LoopDepth);
-  OS << "  bb" << BB->getDebugID() << ": length=" << BBInfo->Length << '+'
-     << D.LoopHeaderLength << ", d-entry=" << D.DistFromEntry
-     << ", d-exit=" << D.DistToExit << '\n';
-}
-
 //===----------------------------------------------------------------------===//
 //                           Performance Inliner
 //===----------------------------------------------------------------------===//
@@ -1049,7 +117,7 @@
 
   SILFunction *getEligibleFunction(FullApplySite AI);
 
-  bool isProfitableToInline(FullApplySite AI,
+  bool isProfitableToInlineNonGeneric(FullApplySite AI,
                             Weight CallerWeight,
                             ConstantTracker &constTracker,
                             int &NumCallerBlocks);
@@ -1124,10 +192,8 @@
   }
 
   // We don't support this yet.
-  if (AI.hasSubstitutions()) {
-    if (!EnableSILInliningOfGenerics)
-      return nullptr;
-  }
+  if (AI.hasSubstitutions())
+    return nullptr;
 
   SILFunction *Caller = AI.getFunction();
 
@@ -1174,10 +240,13 @@
 }
 
 /// Return true if inlining this call site is profitable.
-bool SILPerformanceInliner::isProfitableToInline(FullApplySite AI,
+bool SILPerformanceInliner::isProfitableToInlineNonGeneric(FullApplySite AI,
                                               Weight CallerWeight,
                                               ConstantTracker &callerTracker,
                                               int &NumCallerBlocks) {
+  assert(AI.getSubstitutions().empty() &&
+         "Expected a non-generic apply");
+
   SILFunction *Callee = AI.getReferencedFunction();
 
   if (Callee->getInlineStrategy() == AlwaysInline)
@@ -1413,7 +482,9 @@
         // The actual weight including a possible weight correction.
         Weight W(BlockWeight, WeightCorrections.lookup(AI));
 
-        if (isProfitableToInline(AI, W, constTracker, NumCallerBlocks))
+        bool IsProfitableToInline = isProfitableToInlineNonGeneric(
+            AI, W, constTracker, NumCallerBlocks);
+        if (IsProfitableToInline)
           InitialCandidates.push_back(AI);
       }
     }
diff --git a/lib/SILOptimizer/Transforms/SimplifyCFG.cpp b/lib/SILOptimizer/Transforms/SimplifyCFG.cpp
index 48d3620..d5c964e 100644
--- a/lib/SILOptimizer/Transforms/SimplifyCFG.cpp
+++ b/lib/SILOptimizer/Transforms/SimplifyCFG.cpp
@@ -3420,6 +3420,16 @@
   bool Changed = false;
   llvm::SmallPtrSet<SILInstruction *, 4> InstsToRemove;
   for (auto &I : *BB) {
+    // We can only remove the instructions below from the ARC-inert BB
+    // We *can't* replace copy_addr with move instructions:
+    // If the copy_addr was [take] [initialization]:
+    //   * previous passes would have replaced it with moves
+    // If the copy_addr contains [initialization]:
+    //   * nothing we can do - the target address is invalid
+    // Else, i.e. the copy_addr was [take] assignment, it is not always safe:
+    // The type being operated on might contain weak references,
+    // or other side references - We'll corrupt the weak reference table
+    // if we fail to release the old value.
     if (!isa<StrongReleaseInst>(I) && !isa<UnownedReleaseInst>(I) && 
         !isa<ReleaseValueInst>(I) && !isa<DestroyAddrInst>(I))
       continue;
diff --git a/lib/SILOptimizer/Transforms/SpeculativeDevirtualizer.cpp b/lib/SILOptimizer/Transforms/SpeculativeDevirtualizer.cpp
index 0530fa3..7a83bf3 100644
--- a/lib/SILOptimizer/Transforms/SpeculativeDevirtualizer.cpp
+++ b/lib/SILOptimizer/Transforms/SpeculativeDevirtualizer.cpp
@@ -133,15 +133,16 @@
 
   // See if Continue has a release on self as the instruction right after the
   // apply. If it exists, move it into position in the diamond.
-  if (auto *Release =
-          dyn_cast<StrongReleaseInst>(std::next(Continue->begin()))) {
-    if (Release->getOperand() == CMI->getOperand()) {
-      VirtBuilder.createStrongRelease(Release->getLoc(), CMI->getOperand(),
-                                      Atomicity::Atomic);
-      IdenBuilder.createStrongRelease(
-          Release->getLoc(), DownCastedClassInstance, Atomicity::Atomic);
-      Release->eraseFromParent();
-    }
+  SILBasicBlock::iterator next =
+      next_or_end(Continue->begin(), Continue->end());
+  auto *Release =
+      (next == Continue->end()) ? nullptr : dyn_cast<StrongReleaseInst>(next);
+  if (Release && Release->getOperand() == CMI->getOperand()) {
+    VirtBuilder.createStrongRelease(Release->getLoc(), CMI->getOperand(),
+                                    Atomicity::Atomic);
+    IdenBuilder.createStrongRelease(Release->getLoc(), DownCastedClassInstance,
+                                    Atomicity::Atomic);
+    Release->eraseFromParent();
   }
 
   // Create a PHInode for returning the return value from both apply
diff --git a/lib/SILOptimizer/Transforms/StackPromotion.cpp b/lib/SILOptimizer/Transforms/StackPromotion.cpp
index 68c9156..0a1e107 100644
--- a/lib/SILOptimizer/Transforms/StackPromotion.cpp
+++ b/lib/SILOptimizer/Transforms/StackPromotion.cpp
@@ -319,7 +319,7 @@
     return nodes_iterator(SP->getFunction()->end(), SP->getFunction()->end());
   }
   static unsigned size(GraphType SP) {
-    return std::distance(nodes_begin(SP), nodes_end(SP));
+    return std::distance(SP->getFunction()->begin(), SP->getFunction()->end());
   }
 };
 
diff --git a/lib/SILOptimizer/UtilityPasses/InstCount.cpp b/lib/SILOptimizer/UtilityPasses/InstCount.cpp
index c9f2613..2fa5cd6 100644
--- a/lib/SILOptimizer/UtilityPasses/InstCount.cpp
+++ b/lib/SILOptimizer/UtilityPasses/InstCount.cpp
@@ -57,8 +57,8 @@
           "specialized functions");
 
 // Individual instruction statistics
-#define INST(Id, Parent, MemBehavior, ReleasingBehavior) \
-  STATISTIC(Num ## Id, "Number of " #Id);
+#define INST(Id, Parent, TextualName, MemBehavior, ReleasingBehavior)          \
+  STATISTIC(Num##Id, "Number of " #Id);
 #include "swift/SIL/SILNodes.def"
 
 namespace {
@@ -80,7 +80,7 @@
 
   void visitValueBase(ValueBase *V) { }
 
-#define INST(Id, Parent, MemBehavior, ReleasingBehavior)                       \
+#define INST(Id, Parent, TextualName, MemBehavior, ReleasingBehavior)          \
   void visit##Id(Id *I) {                                                      \
     ++Num##Id;                                                                 \
     ++InstCount;                                                               \
diff --git a/lib/SILOptimizer/Utils/CMakeLists.txt b/lib/SILOptimizer/Utils/CMakeLists.txt
index 56402e5..2fe09c2 100644
--- a/lib/SILOptimizer/Utils/CMakeLists.txt
+++ b/lib/SILOptimizer/Utils/CMakeLists.txt
@@ -9,6 +9,7 @@
   Utils/LoadStoreOptUtils.cpp
   Utils/Local.cpp
   Utils/LoopUtils.cpp
+  Utils/PerformanceInlinerUtils.cpp
   Utils/SILInliner.cpp
   Utils/SILSSAUpdater.cpp
   PARENT_SCOPE)
diff --git a/lib/SILOptimizer/Utils/Devirtualize.cpp b/lib/SILOptimizer/Utils/Devirtualize.cpp
index 47a0d69..fd3b798 100644
--- a/lib/SILOptimizer/Utils/Devirtualize.cpp
+++ b/lib/SILOptimizer/Utils/Devirtualize.cpp
@@ -866,6 +866,73 @@
                                 origSubs, NewSubs);
 }
 
+/// Check if an upcast is legal.
+/// THe logic in this function is heavily based on the checks in
+/// the SILVerifier.
+bool swift::isLegalUpcast(SILType FromTy, SILType ToTy) {
+  if (ToTy.is<MetatypeType>()) {
+    CanType InstTy(ToTy.castTo<MetatypeType>()->getInstanceType());
+    if (!FromTy.is<MetatypeType>())
+      return false;
+    CanType OpInstTy(FromTy.castTo<MetatypeType>()->getInstanceType());
+    auto InstClass = InstTy->getClassOrBoundGenericClass();
+    if (!InstClass)
+      return false;
+
+    bool CanBeUpcasted =
+        InstClass->usesObjCGenericsModel()
+            ? InstClass->getDeclaredTypeInContext()->isBindableToSuperclassOf(
+                  OpInstTy, nullptr)
+            : InstTy->isExactSuperclassOf(OpInstTy, nullptr);
+
+    return CanBeUpcasted;
+  }
+
+  // Upcast from Optional<B> to Optional<A> is legal as long as B is a
+  // subclass of A.
+  if (ToTy.getSwiftRValueType().getAnyOptionalObjectType() &&
+      FromTy.getSwiftRValueType().getAnyOptionalObjectType()) {
+    ToTy = SILType::getPrimitiveObjectType(
+        ToTy.getSwiftRValueType().getAnyOptionalObjectType());
+    FromTy = SILType::getPrimitiveObjectType(
+        FromTy.getSwiftRValueType().getAnyOptionalObjectType());
+  }
+
+  auto ToClass = ToTy.getClassOrBoundGenericClass();
+  if (!ToClass)
+    return false;
+  bool CanBeUpcasted =
+      ToClass->usesObjCGenericsModel()
+          ? ToClass->getDeclaredTypeInContext()->isBindableToSuperclassOf(
+                FromTy.getSwiftRValueType(), nullptr)
+          : ToTy.isExactSuperclassOf(FromTy);
+
+  return CanBeUpcasted;
+}
+
+/// Check if we can pass/convert all arguments of the original apply
+/// as required by the found devirtualized method.
+static bool
+canPassOrConvertAllArguments(ApplySite AI,
+                             CanSILFunctionType SubstCalleeCanType) {
+  for (unsigned ArgN = 0, ArgE = AI.getNumArguments(); ArgN != ArgE; ++ArgN) {
+    SILValue A = AI.getArgument(ArgN);
+    auto ParamType = SubstCalleeCanType->getSILArgumentType(
+      SubstCalleeCanType->getNumSILArguments() - AI.getNumArguments() + ArgN);
+    // Check if we can cast the provided argument into the required
+    // parameter type.
+    auto FromTy = A->getType();
+    auto ToTy = ParamType;
+    // If types are the same, no conversion will be required.
+    if (FromTy == ToTy)
+      continue;
+    // Otherwise, it should be possible to upcast the arguments.
+    if (!isLegalUpcast(FromTy, ToTy))
+      return false;
+  }
+  return true;
+}
+
 /// Generate a new apply of a function_ref to replace an apply of a
 /// witness_method when we've determined the actual function we'll end
 /// up calling.
@@ -890,6 +957,11 @@
   auto SubstCalleeCanType = CalleeCanType->substGenericArgs(
     Module, Module.getSwiftModule(), NewSubs);
 
+  // Bail if some of the arguments cannot be converted into
+  // types required by the found devirtualized method.
+  if (!canPassOrConvertAllArguments(AI, SubstCalleeCanType))
+    return ApplySite();
+
   // Collect arguments from the apply instruction.
   auto Arguments = SmallVector<SILValue, 4>();
 
diff --git a/lib/SILOptimizer/Utils/FunctionSignatureOptUtils.cpp b/lib/SILOptimizer/Utils/FunctionSignatureOptUtils.cpp
index 2bf1ba7..cdabe4b 100644
--- a/lib/SILOptimizer/Utils/FunctionSignatureOptUtils.cpp
+++ b/lib/SILOptimizer/Utils/FunctionSignatureOptUtils.cpp
@@ -52,6 +52,7 @@
 static bool isSpecializableRepresentation(SILFunctionTypeRepresentation Rep) {
   switch (Rep) {
   case SILFunctionTypeRepresentation::Method:
+  case SILFunctionTypeRepresentation::Closure:
   case SILFunctionTypeRepresentation::Thin:
   case SILFunctionTypeRepresentation::Thick:
   case SILFunctionTypeRepresentation::CFunctionPointer:
diff --git a/lib/SILOptimizer/Utils/PerformanceInlinerUtils.cpp b/lib/SILOptimizer/Utils/PerformanceInlinerUtils.cpp
new file mode 100644
index 0000000..4bc5f12
--- /dev/null
+++ b/lib/SILOptimizer/Utils/PerformanceInlinerUtils.cpp
@@ -0,0 +1,536 @@
+//===--- PerformanceInlinerUtils.cpp - Performance inliner utilities. -----===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+#include "swift/SILOptimizer/Utils/PerformanceInlinerUtils.h"
+
+//===----------------------------------------------------------------------===//
+//                               ConstantTracker
+//===----------------------------------------------------------------------===//
+
+void ConstantTracker::trackInst(SILInstruction *inst) {
+  if (auto *LI = dyn_cast<LoadInst>(inst)) {
+    SILValue baseAddr = scanProjections(LI->getOperand());
+    if (SILInstruction *loadLink = getMemoryContent(baseAddr))
+      links[LI] = loadLink;
+  } else if (StoreInst *SI = dyn_cast<StoreInst>(inst)) {
+    SILValue baseAddr = scanProjections(SI->getOperand(1));
+    memoryContent[baseAddr] = SI;
+  } else if (CopyAddrInst *CAI = dyn_cast<CopyAddrInst>(inst)) {
+    if (!CAI->isTakeOfSrc()) {
+      // Treat a copy_addr as a load + store
+      SILValue loadAddr = scanProjections(CAI->getOperand(0));
+      if (SILInstruction *loadLink = getMemoryContent(loadAddr)) {
+        links[CAI] = loadLink;
+        SILValue storeAddr = scanProjections(CAI->getOperand(1));
+        memoryContent[storeAddr] = CAI;
+      }
+    }
+  }
+}
+
+SILValue ConstantTracker::scanProjections(SILValue addr,
+                                          SmallVectorImpl<Projection> *Result) {
+  for (;;) {
+    if (Projection::isAddressProjection(addr)) {
+      SILInstruction *I = cast<SILInstruction>(addr);
+      if (Result) {
+        Result->push_back(Projection(I));
+      }
+      addr = I->getOperand(0);
+      continue;
+    }
+    if (SILValue param = getParam(addr)) {
+      // Go to the caller.
+      addr = param;
+      continue;
+    }
+    // Return the base address = the first address which is not a projection.
+    return addr;
+  }
+}
+
+SILValue ConstantTracker::getStoredValue(SILInstruction *loadInst,
+                                         ProjectionPath &projStack) {
+  SILInstruction *store = links[loadInst];
+  if (!store && callerTracker)
+    store = callerTracker->links[loadInst];
+  if (!store) return SILValue();
+
+  assert(isa<LoadInst>(loadInst) || isa<CopyAddrInst>(loadInst));
+
+  // Push the address projections of the load onto the stack.
+  SmallVector<Projection, 4> loadProjections;
+  scanProjections(loadInst->getOperand(0), &loadProjections);
+  for (const Projection &proj : loadProjections) {
+    projStack.push_back(proj);
+  }
+
+  //  Pop the address projections of the store from the stack.
+  SmallVector<Projection, 4> storeProjections;
+  scanProjections(store->getOperand(1), &storeProjections);
+  for (auto iter = storeProjections.rbegin(); iter != storeProjections.rend();
+       ++iter) {
+    const Projection &proj = *iter;
+    // The corresponding load-projection must match the store-projection.
+    if (projStack.empty() || projStack.back() != proj)
+      return SILValue();
+    projStack.pop_back();
+  }
+
+  if (isa<StoreInst>(store))
+    return store->getOperand(0);
+
+  // The copy_addr instruction is both a load and a store. So we follow the link
+  // again.
+  assert(isa<CopyAddrInst>(store));
+  return getStoredValue(store, projStack);
+}
+
+// Get the aggregate member based on the top of the projection stack.
+static SILValue getMember(SILInstruction *inst, ProjectionPath &projStack) {
+  if (!projStack.empty()) {
+    const Projection &proj = projStack.back();
+    return proj.getOperandForAggregate(inst);
+  }
+  return SILValue();
+}
+
+SILInstruction *ConstantTracker::getDef(SILValue val,
+                                        ProjectionPath &projStack) {
+
+  // Track the value up the dominator tree.
+  for (;;) {
+    if (SILInstruction *inst = dyn_cast<SILInstruction>(val)) {
+      if (Projection::isObjectProjection(inst)) {
+        // Extract a member from a struct/tuple/enum.
+        projStack.push_back(Projection(inst));
+        val = inst->getOperand(0);
+        continue;
+      } else if (SILValue member = getMember(inst, projStack)) {
+        // The opposite of a projection instruction: composing a struct/tuple.
+        projStack.pop_back();
+        val = member;
+        continue;
+      } else if (SILValue loadedVal = getStoredValue(inst, projStack)) {
+        // A value loaded from memory.
+        val = loadedVal;
+        continue;
+      } else if (isa<ThinToThickFunctionInst>(inst)) {
+        val = inst->getOperand(0);
+        continue;
+      }
+      return inst;
+    } else if (SILValue param = getParam(val)) {
+      // Continue in the caller.
+      val = param;
+      continue;
+    }
+    return nullptr;
+  }
+}
+
+ConstantTracker::IntConst ConstantTracker::getBuiltinConst(BuiltinInst *BI, int depth) {
+  const BuiltinInfo &Builtin = BI->getBuiltinInfo();
+  OperandValueArrayRef Args = BI->getArguments();
+  switch (Builtin.ID) {
+    default: break;
+
+      // Fold comparison predicates.
+#define BUILTIN(id, name, Attrs)
+#define BUILTIN_BINARY_PREDICATE(id, name, attrs, overload) \
+case BuiltinValueKind::id:
+#include "swift/AST/Builtins.def"
+    {
+      IntConst lhs = getIntConst(Args[0], depth);
+      IntConst rhs = getIntConst(Args[1], depth);
+      if (lhs.isValid && rhs.isValid) {
+        return IntConst(constantFoldComparison(lhs.value, rhs.value,
+                                               Builtin.ID),
+                        lhs.isFromCaller || rhs.isFromCaller);
+      }
+      break;
+    }
+
+    case BuiltinValueKind::SAddOver:
+    case BuiltinValueKind::UAddOver:
+    case BuiltinValueKind::SSubOver:
+    case BuiltinValueKind::USubOver:
+    case BuiltinValueKind::SMulOver:
+    case BuiltinValueKind::UMulOver: {
+      IntConst lhs = getIntConst(Args[0], depth);
+      IntConst rhs = getIntConst(Args[1], depth);
+      if (lhs.isValid && rhs.isValid) {
+        bool IgnoredOverflow;
+        return IntConst(constantFoldBinaryWithOverflow(lhs.value, rhs.value,
+                        IgnoredOverflow,
+                        getLLVMIntrinsicIDForBuiltinWithOverflow(Builtin.ID)),
+                          lhs.isFromCaller || rhs.isFromCaller);
+      }
+      break;
+    }
+
+    case BuiltinValueKind::SDiv:
+    case BuiltinValueKind::SRem:
+    case BuiltinValueKind::UDiv:
+    case BuiltinValueKind::URem: {
+      IntConst lhs = getIntConst(Args[0], depth);
+      IntConst rhs = getIntConst(Args[1], depth);
+      if (lhs.isValid && rhs.isValid && rhs.value != 0) {
+        bool IgnoredOverflow;
+        return IntConst(constantFoldDiv(lhs.value, rhs.value,
+                                        IgnoredOverflow, Builtin.ID),
+                        lhs.isFromCaller || rhs.isFromCaller);
+      }
+      break;
+    }
+
+    case BuiltinValueKind::And:
+    case BuiltinValueKind::AShr:
+    case BuiltinValueKind::LShr:
+    case BuiltinValueKind::Or:
+    case BuiltinValueKind::Shl:
+    case BuiltinValueKind::Xor: {
+      IntConst lhs = getIntConst(Args[0], depth);
+      IntConst rhs = getIntConst(Args[1], depth);
+      if (lhs.isValid && rhs.isValid) {
+        return IntConst(constantFoldBitOperation(lhs.value, rhs.value,
+                                                 Builtin.ID),
+                        lhs.isFromCaller || rhs.isFromCaller);
+      }
+      break;
+    }
+
+    case BuiltinValueKind::Trunc:
+    case BuiltinValueKind::ZExt:
+    case BuiltinValueKind::SExt:
+    case BuiltinValueKind::TruncOrBitCast:
+    case BuiltinValueKind::ZExtOrBitCast:
+    case BuiltinValueKind::SExtOrBitCast: {
+      IntConst val = getIntConst(Args[0], depth);
+      if (val.isValid) {
+        return IntConst(constantFoldCast(val.value, Builtin), val.isFromCaller);
+      }
+      break;
+    }
+  }
+  return IntConst();
+}
+
+// Tries to evaluate the integer constant of a value. The \p depth is used
+// to limit the complexity.
+ConstantTracker::IntConst ConstantTracker::getIntConst(SILValue val, int depth) {
+
+  // Don't spend too much time with constant evaluation.
+  if (depth >= 10)
+    return IntConst();
+  
+  SILInstruction *I = getDef(val);
+  if (!I)
+    return IntConst();
+  
+  if (auto *IL = dyn_cast<IntegerLiteralInst>(I)) {
+    return IntConst(IL->getValue(), IL->getFunction() != F);
+  }
+  if (auto *BI = dyn_cast<BuiltinInst>(I)) {
+    if (constCache.count(BI) != 0)
+      return constCache[BI];
+    
+    IntConst builtinConst = getBuiltinConst(BI, depth + 1);
+    constCache[BI] = builtinConst;
+    return builtinConst;
+  }
+  return IntConst();
+}
+
+// Returns the taken block of a terminator instruction if the condition turns
+// out to be constant.
+SILBasicBlock *ConstantTracker::getTakenBlock(TermInst *term) {
+  if (CondBranchInst *CBI = dyn_cast<CondBranchInst>(term)) {
+    IntConst condConst = getIntConst(CBI->getCondition());
+    if (condConst.isFromCaller) {
+      return condConst.value != 0 ? CBI->getTrueBB() : CBI->getFalseBB();
+    }
+    return nullptr;
+  }
+  if (SwitchValueInst *SVI = dyn_cast<SwitchValueInst>(term)) {
+    IntConst switchConst = getIntConst(SVI->getOperand());
+    if (switchConst.isFromCaller) {
+      for (unsigned Idx = 0; Idx < SVI->getNumCases(); ++Idx) {
+        auto switchCase = SVI->getCase(Idx);
+        if (auto *IL = dyn_cast<IntegerLiteralInst>(switchCase.first)) {
+          if (switchConst.value == IL->getValue())
+            return switchCase.second;
+        } else {
+          return nullptr;
+        }
+      }
+      if (SVI->hasDefault())
+        return SVI->getDefaultBB();
+    }
+    return nullptr;
+  }
+  if (SwitchEnumInst *SEI = dyn_cast<SwitchEnumInst>(term)) {
+    if (SILInstruction *def = getDefInCaller(SEI->getOperand())) {
+      if (EnumInst *EI = dyn_cast<EnumInst>(def)) {
+        for (unsigned Idx = 0; Idx < SEI->getNumCases(); ++Idx) {
+          auto enumCase = SEI->getCase(Idx);
+          if (enumCase.first == EI->getElement())
+            return enumCase.second;
+        }
+        if (SEI->hasDefault())
+          return SEI->getDefaultBB();
+      }
+    }
+    return nullptr;
+  }
+  if (CheckedCastBranchInst *CCB = dyn_cast<CheckedCastBranchInst>(term)) {
+    if (SILInstruction *def = getDefInCaller(CCB->getOperand())) {
+      if (UpcastInst *UCI = dyn_cast<UpcastInst>(def)) {
+        SILType castType = UCI->getOperand()->getType();
+        if (CCB->getCastType().isExactSuperclassOf(castType)) {
+          return CCB->getSuccessBB();
+        }
+        if (!castType.isBindableToSuperclassOf(CCB->getCastType())) {
+          return CCB->getFailureBB();
+        }
+      }
+    }
+  }
+  return nullptr;
+}
+
+//===----------------------------------------------------------------------===//
+//                           Shortest path analysis
+//===----------------------------------------------------------------------===//
+
+int ShortestPathAnalysis::getEntryDistFromPreds(const SILBasicBlock *BB,
+                                                int LoopDepth) {
+  int MinDist = InitialDist;
+  for (SILBasicBlock *Pred : BB->getPreds()) {
+    BlockInfo *PredInfo = getBlockInfo(Pred);
+    Distances &PDists = PredInfo->getDistances(LoopDepth);
+    int DistFromEntry = PDists.DistFromEntry + PredInfo->Length +
+                          PDists.LoopHeaderLength;
+    assert(DistFromEntry >= 0);
+    if (DistFromEntry < MinDist)
+      MinDist = DistFromEntry;
+  }
+  return MinDist;
+}
+
+int ShortestPathAnalysis::getExitDistFromSuccs(const SILBasicBlock *BB,
+                                               int LoopDepth) {
+  int MinDist = InitialDist;
+  for (const SILSuccessor &Succ : BB->getSuccessors()) {
+    BlockInfo *SuccInfo = getBlockInfo(Succ);
+    Distances &SDists = SuccInfo->getDistances(LoopDepth);
+    if (SDists.DistToExit < MinDist)
+      MinDist = SDists.DistToExit;
+  }
+  return MinDist;
+}
+
+/// Detect an edge from the loop pre-header's predecessor to the loop exit
+/// block. Such an edge "short-cuts" a loop if it is never iterated. But usually
+/// it is the less frequent case and we want to ignore it.
+/// E.g. it handles the case of N==0 for
+///     for i in 0..<N { ... }
+/// If the \p Loop has such an edge the source block of this edge is returned,
+/// which is the predecessor of the loop pre-header.
+static SILBasicBlock *detectLoopBypassPreheader(SILLoop *Loop) {
+  SILBasicBlock *Pred = Loop->getLoopPreheader();
+  if (!Pred)
+    return nullptr;
+
+  SILBasicBlock *PredPred = Pred->getSinglePredecessor();
+  if (!PredPred)
+    return nullptr;
+
+  auto *CBR = dyn_cast<CondBranchInst>(PredPred->getTerminator());
+  if (!CBR)
+    return nullptr;
+
+  SILBasicBlock *Succ = (CBR->getTrueBB() == Pred ? CBR->getFalseBB() :
+                                                    CBR->getTrueBB());
+
+  for (SILBasicBlock *PredOfSucc : Succ->getPreds()) {
+    SILBasicBlock *Exiting = PredOfSucc->getSinglePredecessor();
+    if (!Exiting)
+      Exiting = PredOfSucc;
+    if (Loop->contains(Exiting))
+      return PredPred;
+  }
+  return nullptr;
+}
+
+void ShortestPathAnalysis::analyzeLoopsRecursively(SILLoop *Loop, int LoopDepth) {
+  if (LoopDepth >= MaxNumLoopLevels)
+    return;
+
+  // First dive into the inner loops.
+  for (SILLoop *SubLoop : Loop->getSubLoops()) {
+    analyzeLoopsRecursively(SubLoop, LoopDepth + 1);
+  }
+
+  BlockInfo *HeaderInfo = getBlockInfo(Loop->getHeader());
+  Distances &HeaderDists = HeaderInfo->getDistances(LoopDepth);
+
+  // Initial values for the entry (== header) and exit-predecessor (== header as
+  // well).
+  HeaderDists.DistFromEntry = 0;
+  HeaderDists.DistToExit = 0;
+
+  solveDataFlow(Loop->getBlocks(), LoopDepth);
+
+  int LoopLength = getExitDistFromSuccs(Loop->getHeader(), LoopDepth) +
+  HeaderInfo->getLength(LoopDepth);
+  HeaderDists.DistToExit = LoopLength;
+
+  // If there is a loop bypass edge, add the loop length to the loop pre-pre-
+  // header instead to the header. This actually let us ignore the loop bypass
+  // edge in the length calculation for the loop's parent scope.
+  if (SILBasicBlock *Bypass = detectLoopBypassPreheader(Loop))
+    HeaderInfo = getBlockInfo(Bypass);
+
+  // Add the full loop length (= assumed-iteration-count * length) to the loop
+  // header so that it is considered in the parent scope.
+  HeaderInfo->getDistances(LoopDepth - 1).LoopHeaderLength =
+    LoopCount * LoopLength;
+}
+
+ShortestPathAnalysis::Weight ShortestPathAnalysis::
+getWeight(SILBasicBlock *BB, Weight CallerWeight) {
+  assert(BB->getParent() == F);
+
+  SILLoop *Loop = LI->getLoopFor(BB);
+  if (!Loop) {
+    // We are not in a loop. So just account the length of our function scope
+    // in to the length of the CallerWeight.
+    return Weight(CallerWeight.ScopeLength + getScopeLength(BB, 0),
+                  CallerWeight.LoopWeight);
+  }
+  int LoopDepth = Loop->getLoopDepth();
+  // Deal with the corner case of having more than 4 nested loops.
+  while (LoopDepth >= MaxNumLoopLevels) {
+    --LoopDepth;
+    Loop = Loop->getParentLoop();
+  }
+  Weight W(getScopeLength(BB, LoopDepth), SingleLoopWeight);
+
+  // Add weights for all the loops BB is in.
+  while (Loop) {
+    assert(LoopDepth > 0);
+    BlockInfo *HeaderInfo = getBlockInfo(Loop->getHeader());
+    int InnerLoopLength = HeaderInfo->getScopeLength(LoopDepth) *
+                            ShortestPathAnalysis::LoopCount;
+    int OuterLoopWeight = SingleLoopWeight;
+    int OuterScopeLength = HeaderInfo->getScopeLength(LoopDepth - 1);
+
+    // Reaching the outermost loop, we use the CallerWeight to get the outer
+    // length+loopweight.
+    if (LoopDepth == 1) {
+      // If the apply in the caller is not in a significant loop, just stop with
+      // what we have now.
+      if (CallerWeight.LoopWeight < 4)
+        return W;
+
+      // If this function is part of the caller's scope length take the caller's
+      // scope length. Note: this is not the case e.g. if the apply is in a
+      // then-branch of an if-then-else in the caller and the else-branch is
+      // the short path.
+      if (CallerWeight.ScopeLength > OuterScopeLength)
+        OuterScopeLength = CallerWeight.ScopeLength;
+      OuterLoopWeight = CallerWeight.LoopWeight;
+    }
+    assert(OuterScopeLength >= InnerLoopLength);
+
+    // If the current loop is only a small part of its outer loop, we don't
+    // take the outer loop that much into account. Only if the current loop is
+    // actually the "main part" in the outer loop we add the full loop weight
+    // for the outer loop.
+    if (OuterScopeLength < InnerLoopLength * 2) {
+      W.LoopWeight += OuterLoopWeight - 1;
+    } else if (OuterScopeLength < InnerLoopLength * 3) {
+      W.LoopWeight += OuterLoopWeight - 2;
+    } else if (OuterScopeLength < InnerLoopLength * 4) {
+      W.LoopWeight += OuterLoopWeight - 3;
+    } else {
+      return W;
+    }
+    --LoopDepth;
+    Loop = Loop->getParentLoop();
+  }
+  assert(LoopDepth == 0);
+  return W;
+}
+
+void ShortestPathAnalysis::dump() {
+  printFunction(llvm::errs());
+}
+
+void ShortestPathAnalysis::printFunction(llvm::raw_ostream &OS) {
+  OS << "SPA @" << F->getName() << "\n";
+  for (SILBasicBlock &BB : *F) {
+    printBlockInfo(OS, &BB, 0);
+  }
+  for (SILLoop *Loop : *LI) {
+    printLoop(OS, Loop, 1);
+  }
+}
+
+void ShortestPathAnalysis::printLoop(llvm::raw_ostream &OS, SILLoop *Loop,
+                                     int LoopDepth) {
+  if (LoopDepth >= MaxNumLoopLevels)
+    return;
+  assert(LoopDepth == (int)Loop->getLoopDepth());
+
+  OS << "Loop bb" << Loop->getHeader()->getDebugID() << ":\n";
+  for (SILBasicBlock *BB : Loop->getBlocks()) {
+    printBlockInfo(OS, BB, LoopDepth);
+  }
+  for (SILLoop *SubLoop : Loop->getSubLoops()) {
+    printLoop(OS, SubLoop, LoopDepth + 1);
+  }
+}
+
+void ShortestPathAnalysis::printBlockInfo(llvm::raw_ostream &OS,
+                                          SILBasicBlock *BB, int LoopDepth) {
+  BlockInfo *BBInfo = getBlockInfo(BB);
+  Distances &D = BBInfo->getDistances(LoopDepth);
+  OS << "  bb" << BB->getDebugID() << ": length=" << BBInfo->Length << '+'
+     << D.LoopHeaderLength << ", d-entry=" << D.DistFromEntry
+     << ", d-exit=" << D.DistToExit << '\n';
+}
+
+void ShortestPathAnalysis::Weight::updateBenefit(int &Benefit,
+                                                 int Importance) const {
+  assert(isValid());
+  int newBenefit = 0;
+
+  // Use some heuristics. The basic idea is: length is bad, loops are good.
+  if (ScopeLength > 320) {
+    newBenefit = Importance;
+  } else if (ScopeLength > 160) {
+    newBenefit = Importance + LoopWeight * 4;
+  } else if (ScopeLength > 80) {
+    newBenefit = Importance + LoopWeight * 8;
+  } else if (ScopeLength > 40) {
+    newBenefit = Importance + LoopWeight * 12;
+  } else if (ScopeLength > 20) {
+    newBenefit = Importance + LoopWeight * 16;
+  } else {
+    newBenefit = Importance + 20 + LoopWeight * 16;
+  }
+  // We don't accumulate the benefit instead we max it.
+  if (newBenefit > Benefit)
+    Benefit = newBenefit;
+}
diff --git a/lib/Sema/CSApply.cpp b/lib/Sema/CSApply.cpp
index c9f45c5..97e86ba 100644
--- a/lib/Sema/CSApply.cpp
+++ b/lib/Sema/CSApply.cpp
@@ -94,16 +94,7 @@
   }
 
   // Produce the concrete form of the opened type.
-  auto type = openedType.transform([&](Type type) -> Type {
-    if (auto tv = dyn_cast<TypeVariableType>(type.getPointer())) {
-      auto archetype = tv->getImpl().getArchetype();
-      auto simplified = getFixedType(tv);
-      return SubstitutedType::get(archetype, simplified,
-                                  tc.Context);
-    }
-
-    return type;
-  });
+  Type type = simplifyType(tc, openedType);
 
   auto mod = getConstraintSystem().DC->getParentModule();
   GenericSignature *sig;
@@ -2669,11 +2660,8 @@
       expr->setType(arrayTy);
 
       // If the array element type was defaulted, note that in the expression.
-      auto elementTypeVariable = cs.ArrayElementTypeVariables.find(expr);
-      if (elementTypeVariable != cs.ArrayElementTypeVariables.end()) {
-        if (solution.DefaultedTypeVariables.count(elementTypeVariable->second))
-          expr->setIsTypeDefaulted();
-      }
+      if (solution.DefaultedConstraints.count(cs.getConstraintLocator(expr)))
+        expr->setIsTypeDefaulted();
 
       return expr;
     }
@@ -2747,14 +2735,8 @@
 
       // If the dictionary key or value type was defaulted, note that in the
       // expression.
-      auto elementTypeVariable = cs.DictionaryElementTypeVariables.find(expr);
-      if (elementTypeVariable != cs.DictionaryElementTypeVariables.end()) {
-        if (solution.DefaultedTypeVariables.count(
-              elementTypeVariable->second.first) ||
-            solution.DefaultedTypeVariables.count(
-              elementTypeVariable->second.second))
-          expr->setIsTypeDefaulted();
-      }
+      if (solution.DefaultedConstraints.count(cs.getConstraintLocator(expr)))
+        expr->setIsTypeDefaulted();
 
       return expr;
     }
@@ -5111,6 +5093,7 @@
 
 static CollectionUpcastConversionExpr::ConversionPair
 buildElementConversion(ExprRewriter &rewriter,
+                       SourceLoc srcLoc,
                        Type srcCollectionType,
                        Type destCollectionType,
                        ConstraintLocatorBuilder locator,
@@ -5123,7 +5106,7 @@
 
   // Build the conversion.
   ASTContext &ctx = rewriter.getConstraintSystem().getASTContext();
-  auto opaque = new (ctx) OpaqueValueExpr(SourceLoc(), srcType);
+  auto opaque = new (ctx) OpaqueValueExpr(srcLoc, srcType);
   auto conversion =
     rewriter.coerceToType(opaque, destType,
            locator.withPathElement(
@@ -5283,8 +5266,8 @@
       }
 
       // Build the value conversion.
-      auto conv =
-        buildElementConversion(*this, expr->getType(), toType, locator, 0);
+      auto conv = buildElementConversion(*this, expr->getLoc(), expr->getType(),
+                                         toType, locator, 0);
 
       // Form the upcast.
       return new (tc.Context) CollectionUpcastConversionExpr(expr, toType,
@@ -5325,10 +5308,10 @@
       }
 
       // Build the key and value conversions.
-      auto keyConv =
-        buildElementConversion(*this, expr->getType(), toType, locator, 0);
-      auto valueConv =
-        buildElementConversion(*this, expr->getType(), toType, locator, 1);
+      auto keyConv = buildElementConversion(
+          *this, expr->getLoc(), expr->getType(), toType, locator, 0);
+      auto valueConv = buildElementConversion(
+          *this, expr->getLoc(), expr->getType(), toType, locator, 1);
 
       // If the source key and value types are object types, this is an upcast.
       // Otherwise, it's bridged.
@@ -5348,8 +5331,8 @@
       }
 
       // Build the value conversion.
-      auto conv =
-        buildElementConversion(*this, expr->getType(), toType, locator, 0);
+      auto conv = buildElementConversion(*this, expr->getLoc(), expr->getType(),
+                                         toType, locator, 0);
 
       return new (tc.Context) CollectionUpcastConversionExpr(expr, toType,
                                                              {}, conv);
diff --git a/lib/Sema/CSDiag.cpp b/lib/Sema/CSDiag.cpp
index 3b05f41..a53fe5d 100644
--- a/lib/Sema/CSDiag.cpp
+++ b/lib/Sema/CSDiag.cpp
@@ -29,7 +29,7 @@
 using namespace constraints;
 
 static bool isUnresolvedOrTypeVarType(Type ty) {
-  return ty->is<TypeVariableType>() || ty->is<UnresolvedType>();
+  return ty->isTypeVariableOrMember() || ty->is<UnresolvedType>();
 }
 
 /// Given a subpath of an old locator, compute its summary flags.
@@ -1286,15 +1286,27 @@
   bool mismatchesAreNearMisses = true;
 
   CalleeCandidateInfo::FailedArgumentInfo failureInfo;
-  
+
+  // Local function which extracts type from the parameter container.
+  auto getType = [](const CallArgParam &param) -> Type {
+    // If parameter is marked as @autoclosure, we are
+    // only interested in it's resulting type.
+    if (param.isAutoClosure()) {
+      if (auto fnType = param.Ty->getAs<AnyFunctionType>())
+        return fnType->getResult();
+    }
+
+    return param.Ty;
+  };
+
   for (unsigned i = 0, e = paramBindings.size(); i != e; ++i) {
     // Bindings specify the arguments that source the parameter.  The only case
     // this returns a non-singular value is when there are varargs in play.
     auto &bindings = paramBindings[i];
-    auto paramType = candArgs[i].Ty;
+    auto paramType = getType(candArgs[i]);
     
     for (auto argNo : bindings) {
-      auto argType = actualArgs[argNo].Ty;
+      auto argType = getType(actualArgs[argNo]);
       auto rArgType = argType->getRValueType();
       
       // If the argument has an unresolved type, then we're not actually
@@ -2957,7 +2969,8 @@
   // If simplification has turned this into the same types, then this isn't the
   // broken constraint that we're looking for.
   if (fromType->isEqual(toType) &&
-      constraint->getKind() != ConstraintKind::ConformsTo)
+      constraint->getKind() != ConstraintKind::ConformsTo &&
+      constraint->getKind() != ConstraintKind::LiteralConformsTo)
     return false;
   
   
@@ -3324,7 +3337,7 @@
  auto &ctx = ty->getASTContext();
 
   return ty.transform([&](Type type) -> Type {
-    if (type->is<TypeVariableType>() ||
+    if (type->isTypeVariableOrMember() ||
         type->is<ArchetypeType>() ||
         type->isTypeParameter())
       return ctx.TheUnresolvedType;
@@ -5300,7 +5313,7 @@
       argType = tupleTy;
     }
   }
-  
+
   // Get the expression result of type checking the arguments to the call
   // independently, so we have some idea of what we're working with.
   //
@@ -6424,10 +6437,8 @@
   
   // If we have a paren expr and our contextual type is a ParenType, remove the
   // paren expr sugar.
-  if (isa<ParenExpr>(E) && contextualType)
-    if (auto *PT = dyn_cast<ParenType>(contextualType.getPointer()))
-      contextualType = PT->getUnderlyingType();
-  
+  if (contextualType)
+    contextualType = contextualType->getWithoutParens();
   if (!typeCheckChildIndependently(E->getSubExpr(), contextualType,
                                    CS->getContextualTypePurpose()))
     return true;
@@ -6613,8 +6624,7 @@
 
       // ...but only if they were actually resolved by the constraint system
       // despite the failure.
-      TypeVariableType *unused;
-      Type maybeFixedType = cs.getFixedTypeRecursive(preferred, unused,
+      Type maybeFixedType = cs.getFixedTypeRecursive(preferred,
                                                      /*wantRValue*/true);
       if (maybeFixedType->hasTypeVariable() ||
           maybeFixedType->hasUnresolvedType()) {
diff --git a/lib/Sema/CSGen.cpp b/lib/Sema/CSGen.cpp
index 3d8038d..ea6691e 100644
--- a/lib/Sema/CSGen.cpp
+++ b/lib/Sema/CSGen.cpp
@@ -500,49 +500,46 @@
     return false;
   }
   
-  /// Determine whether the given parameter and argument type should be
+  /// Determine whether the given parameter type and argument should be
   /// "favored" because they match exactly.
   bool isFavoredParamAndArg(ConstraintSystem &CS,
                             Type paramTy,
+                            Expr *arg,
                             Type argTy,
-                            Type otherArgTy) {
-    if (argTy->getAs<LValueType>())
-      argTy = argTy->getLValueOrInOutObjectType();
-    
-    if (!otherArgTy.isNull() &&
-        otherArgTy->getAs<LValueType>())
-      otherArgTy = otherArgTy->getLValueOrInOutObjectType();
-    
+                            Type otherArgTy = Type()) {
+    // Determine the argument type.
+    argTy = argTy->getLValueOrInOutObjectType();
+
     // Do the types match exactly?
     if (paramTy->isEqual(argTy))
       return true;
-    
-    // If the argument is a type variable created for a literal that has a
-    // default type, this is a favored param/arg pair if the parameter is of
-    // that default type.
-    // Is the argument a type variable...
-    if (auto argTypeVar = argTy->getAs<TypeVariableType>()) {
-      if (auto proto = argTypeVar->getImpl().literalConformanceProto) {
-        // If it's a struct type associated with the literal conformance,
-        // test against it directly. This helps to avoid 'widening' the
-        // favored type to the default type for the literal.
-        if (!otherArgTy.isNull() &&
-            otherArgTy->getAs<StructType>()) {
-          
-          if (CS.TC.conformsToProtocol(otherArgTy,
-                                       proto,
-                                       CS.DC,
-                                       ConformanceCheckFlags::InExpression)) {
-            return otherArgTy->isEqual(paramTy);
-          }
-        } else if (auto defaultTy = CS.TC.getDefaultType(proto, CS.DC)) {
-          if (paramTy->isEqual(defaultTy)) {
-            return true;
-          }
-        }
-      }
+
+    // If the argument is a literal, this is a favored param/arg pair if
+    // the parameter is of that default type.
+    auto &tc = CS.getTypeChecker();
+    auto literalProto = tc.getLiteralProtocol(arg->getSemanticsProvidingExpr());
+    if (!literalProto) return false;
+
+    // Dig out the second argument type.
+    if (otherArgTy)
+      otherArgTy = otherArgTy->getLValueOrInOutObjectType();
+
+    // If there is another, concrete argument, check whether it's type
+    // conforms to the literal protocol and test against it directly.
+    // This helps to avoid 'widening' the favored type to the default type for
+    // the literal.
+    if (otherArgTy && otherArgTy->getAnyNominal()) {
+      return otherArgTy->isEqual(paramTy) &&
+             tc.conformsToProtocol(otherArgTy, literalProto, CS.DC,
+                                   ConformanceCheckFlags::InExpression);
     }
-    
+
+    // If there is a default type for the literal protocol, check whether
+    // it is the same as the parameter type.
+    // Check whether there is a default type to compare against.
+    if (Type defaultType = tc.getDefaultType(literalProto, CS.DC))
+      return paramTy->isEqual(defaultType);
+
     return false;
   }
   
@@ -701,14 +698,6 @@
     return NTD->getHasFailableInits();
   }
   
-  Type getInnerParenType(const Type &t) {
-    if (auto parenType = dyn_cast<ParenType>(t.getPointer())) {
-      return getInnerParenType(parenType->getUnderlyingType());
-    }
-    
-    return t;
-  }
-  
   size_t getOperandCount(Type t) {
     size_t nOperands = 0;
     
@@ -750,9 +739,6 @@
   /// for the operand and contextual type.
   void favorMatchingUnaryOperators(ApplyExpr *expr,
                                    ConstraintSystem &CS) {
-    // Find the argument type.
-    auto argTy = getInnerParenType(expr->getArg()->getType());
-    
     // Determine whether the given declaration is favored.
     auto isFavoredDecl = [&](ValueDecl *value) -> bool {
       auto valueTy = value->getType();
@@ -770,7 +756,8 @@
       auto resultTy = fnTy->getResult();
       auto contextualTy = CS.getContextualType(expr);
       
-      return isFavoredParamAndArg(CS, paramTy, argTy, Type()) &&
+      return isFavoredParamAndArg(CS, paramTy, expr->getArg(),
+               expr->getArg()->getType()->getWithoutParens()) &&
           (!contextualTy || contextualTy->isEqual(resultTy));
     };
     
@@ -878,8 +865,8 @@
     auto argTy = expr->getArg()->getType();
     auto argTupleTy = argTy->castTo<TupleType>();
     auto argTupleExpr = dyn_cast<TupleExpr>(expr->getArg());
-    Type firstArgTy = getInnerParenType(argTupleTy->getElement(0).getType());
-    Type secondArgTy = getInnerParenType(argTupleTy->getElement(1).getType());
+    Type firstArgTy = argTupleTy->getElement(0).getType()->getWithoutParens();
+    Type secondArgTy = argTupleTy->getElement(1).getType()->getWithoutParens();
     
     // Determine whether the given declaration is favored.
     auto isFavoredDecl = [&](ValueDecl *value) -> bool {
@@ -889,8 +876,10 @@
       if (!fnTy)
         return false;
 
-      auto firstFavoredTy = CS.getFavoredType(argTupleExpr->getElement(0));
-      auto secondFavoredTy = CS.getFavoredType(argTupleExpr->getElement(1));
+      Expr *firstArg = argTupleExpr->getElement(0);
+      auto firstFavoredTy = CS.getFavoredType(firstArg);
+      Expr *secondArg = argTupleExpr->getElement(1);
+      auto secondFavoredTy = CS.getFavoredType(secondArg);
       
       auto favoredExprTy = CS.getFavoredType(expr);
       
@@ -934,8 +923,10 @@
       auto contextualTy = CS.getContextualType(expr);
       
       return
-        (isFavoredParamAndArg(CS, firstParamTy, firstArgTy, secondArgTy) ||
-         isFavoredParamAndArg(CS, secondParamTy, secondArgTy, firstArgTy)) &&
+        (isFavoredParamAndArg(CS, firstParamTy, firstArg, firstArgTy,
+                              secondArgTy) ||
+         isFavoredParamAndArg(CS, secondParamTy, secondArg, secondArgTy,
+                              firstArgTy)) &&
          firstParamTy->isEqual(secondParamTy) &&
         (!contextualTy || contextualTy->isEqual(resultTy));
     };
@@ -1091,7 +1082,7 @@
           auto keyTy = dictTy->first;
           auto valueTy = dictTy->second;
           
-          if (isFavoredParamAndArg(CS, keyTy, index->getType(), Type())) {
+          if (isFavoredParamAndArg(CS, keyTy, index, index->getType())) {
             outputTy = OptionalType::get(valueTy);
             
             if (isLValueBase)
@@ -1172,10 +1163,7 @@
 
       auto tv = CS.createTypeVariable(CS.getConstraintLocator(expr),
                                       TVO_PrefersSubtypeBinding);
-      
-      tv->getImpl().literalConformanceProto = protocol;
-      
-      CS.addConstraint(ConstraintKind::ConformsTo, tv,
+      CS.addConstraint(ConstraintKind::LiteralConformsTo, tv,
                        protocol->getDeclaredType(),
                        CS.getConstraintLocator(expr));
       return tv;
@@ -1198,8 +1186,7 @@
       // ExpressibleByStringInterpolation protocol.
       auto locator = CS.getConstraintLocator(expr);
       auto tv = CS.createTypeVariable(locator, TVO_PrefersSubtypeBinding);
-      tv->getImpl().literalConformanceProto = interpolationProto;
-      CS.addConstraint(ConstraintKind::ConformsTo, tv,
+      CS.addConstraint(ConstraintKind::LiteralConformsTo, tv,
                        interpolationProto->getDeclaredType(),
                        locator);
 
@@ -1272,9 +1259,7 @@
       auto tv = CS.createTypeVariable(CS.getConstraintLocator(expr),
                                       TVO_PrefersSubtypeBinding);
       
-      tv->getImpl().literalConformanceProto = protocol;
-      
-      CS.addConstraint(ConstraintKind::ConformsTo, tv,
+      CS.addConstraint(ConstraintKind::LiteralConformsTo, tv,
                        protocol->getDeclaredType(),
                        CS.getConstraintLocator(expr));
 
@@ -1691,7 +1676,7 @@
         contextualArrayElementType =
             CS.getBaseTypeForArrayType(contextualType.getPointer());
         
-        CS.addConstraint(ConstraintKind::ConformsTo, contextualType,
+        CS.addConstraint(ConstraintKind::LiteralConformsTo, contextualType,
                          arrayProto->getDeclaredType(),
                          locator);
         
@@ -1711,7 +1696,7 @@
       auto arrayTy = CS.createTypeVariable(locator, TVO_PrefersSubtypeBinding);
 
       // The array must be an array literal type.
-      CS.addConstraint(ConstraintKind::ConformsTo, arrayTy,
+      CS.addConstraint(ConstraintKind::LiteralConformsTo, arrayTy,
                        arrayProto->getDeclaredType(),
                        locator);
       
@@ -1738,10 +1723,9 @@
       }
 
       // The array element type defaults to 'Any'.
-      if (auto elementTypeVar = arrayElementTy->getAs<TypeVariableType>()) {
+      if (arrayElementTy->isTypeVariableOrMember()) {
         CS.addConstraint(ConstraintKind::Defaultable, arrayElementTy,
                          tc.Context.TheAnyType, locator);
-        CS.ArrayElementTypeVariables[expr] = elementTypeVar;
       }
 
       return arrayTy;
@@ -1777,8 +1761,8 @@
       auto dictionaryTy = CS.createTypeVariable(locator,
                                                 TVO_PrefersSubtypeBinding);
 
-      // The array must be a dictionary literal type.
-      CS.addConstraint(ConstraintKind::ConformsTo, dictionaryTy,
+      // The dictionary must be a dictionary literal type.
+      CS.addConstraint(ConstraintKind::LiteralConformsTo, dictionaryTy,
                        dictionaryProto->getDeclaredType(),
                        locator);
 
@@ -1871,8 +1855,8 @@
       }
 
       // The dictionary key type defaults to 'AnyHashable'.
-      auto keyTypeVar = dictionaryKeyTy->getAs<TypeVariableType>();
-      if (keyTypeVar && tc.Context.getAnyHashableDecl()) {
+      if (dictionaryKeyTy->isTypeVariableOrMember() &&
+          tc.Context.getAnyHashableDecl()) {
         auto anyHashable = tc.Context.getAnyHashableDecl();
         tc.validateDecl(anyHashable);
         CS.addConstraint(ConstraintKind::Defaultable, dictionaryKeyTy,
@@ -1880,16 +1864,11 @@
       }
 
       // The dictionary value type defaults to 'Any'.
-      auto valueTypeVar = dictionaryValueTy->getAs<TypeVariableType>();
-      if (valueTypeVar) {
+      if (dictionaryValueTy->isTypeVariableOrMember()) {
         CS.addConstraint(ConstraintKind::Defaultable, dictionaryValueTy,
                          tc.Context.TheAnyType, locator);
       }
 
-      // Record key/value type variables.
-      if (keyTypeVar || valueTypeVar)
-        CS.DictionaryElementTypeVariables[expr] = { keyTypeVar, valueTypeVar };
-
       return dictionaryTy;
     }
 
diff --git a/lib/Sema/CSSimplify.cpp b/lib/Sema/CSSimplify.cpp
index b68f3e8..77e564e 100644
--- a/lib/Sema/CSSimplify.cpp
+++ b/lib/Sema/CSSimplify.cpp
@@ -614,24 +614,6 @@
 matchCallArguments(ConstraintSystem &cs, TypeMatchKind kind,
                    Type argType, Type paramType,
                    ConstraintLocatorBuilder locator) {
-  
-  // In the empty existential parameter case, we don't need to decompose the
-  // arguments.
-  if (paramType->isEmptyExistentialComposition()) {
-    if (argType->is<InOutType>())
-      return ConstraintSystem::SolutionKind::Error;
-
-    // If the param type is an empty existential composition, the function can
-    // only have one argument. Check if exactly one argument was passed to this
-    // function, otherwise we obviously have a mismatch
-    if (auto tupleArgType = dyn_cast<TupleType>(argType.getPointer())) {
-      if (tupleArgType->getNumElements() != 1) {
-        return ConstraintSystem::SolutionKind::Error;
-      }
-    }
-    return ConstraintSystem::SolutionKind::Solved;
-  }
-
   // Extract the parameters.
   ValueDecl *callee;
   unsigned calleeLevel;
@@ -653,6 +635,16 @@
                                       parameterBindings))
     return ConstraintSystem::SolutionKind::Error;
 
+  // In the empty existential parameter case,
+  // it's sufficient to simply match call arguments.
+  if (paramType->isEmptyExistentialComposition()) {
+    // Argument of the existential type can't be inout.
+    if (argType->is<InOutType>())
+      return ConstraintSystem::SolutionKind::Error;
+
+    return ConstraintSystem::SolutionKind::Solved;
+  }
+
   // Check the argument types for each of the parameters.
   unsigned subflags = ConstraintSystem::TMF_GenerateConstraints;
   TypeMatchKind subKind;
@@ -1169,25 +1161,48 @@
                              ConstraintLocatorBuilder locator) {
   // If we have type variables that have been bound to fixed types, look through
   // to the fixed type.
-  TypeVariableType *typeVar1;
   bool isArgumentTupleConversion
           = kind == TypeMatchKind::ArgumentTupleConversion ||
             kind == TypeMatchKind::OperatorArgumentTupleConversion;
-  type1 = getFixedTypeRecursive(type1, typeVar1,
-                                kind == TypeMatchKind::SameType,
+  type1 = getFixedTypeRecursive(type1, kind == TypeMatchKind::SameType,
                                 isArgumentTupleConversion);
   auto desugar1 = type1->getDesugaredType();
+  TypeVariableType *typeVar1 = desugar1->getAs<TypeVariableType>();
 
-  TypeVariableType *typeVar2;
-  type2 = getFixedTypeRecursive(type2, typeVar2,
-                                kind == TypeMatchKind::SameType,
+  type2 = getFixedTypeRecursive(type2, kind == TypeMatchKind::SameType,
                                 isArgumentTupleConversion);
   auto desugar2 = type2->getDesugaredType();
+  TypeVariableType *typeVar2 = desugar2->getAs<TypeVariableType>();
 
   // If the types are obviously equivalent, we're done.
   if (kind != TypeMatchKind::ConformsTo && desugar1->isEqual(desugar2))
     return SolutionKind::Solved;
 
+  // Local function that should be used to produce the return value whenever
+  // this function was unable to resolve the constraint. It should be used
+  // within \c matchTypes() as
+  //
+  //   return formUnsolvedResult();
+  //
+  // along any unsolved path. No other returns should produce
+  // SolutionKind::Unsolved or inspect TMF_GenerateConstraints.
+  auto formUnsolvedResult = [&] {
+    // If we're supposed to generate constraints (i.e., this is a
+    // newly-generated constraint), do so now.
+    if (flags & TMF_GenerateConstraints) {
+      // Add a new constraint between these types. We consider the current
+      // type-matching problem to the "solved" by this addition, because
+      // this new constraint will be solved at a later point.
+      // Obviously, this must not happen at the top level, or the
+      // algorithm would not terminate.
+      addConstraint(getConstraintKind(kind), type1, type2,
+                    getConstraintLocator(locator));
+      return SolutionKind::Solved;
+    }
+
+    return SolutionKind::Unsolved;
+  };
+
   // If either (or both) types are type variables, unify the type variables.
   if (typeVar1 || typeVar2) {
     switch (kind) {
@@ -1206,24 +1221,8 @@
         // If exactly one of the type variables can bind to an lvalue, we
         // can't merge these two type variables.
         if (rep1->getImpl().canBindToLValue()
-              != rep2->getImpl().canBindToLValue()) {
-          if (flags & TMF_GenerateConstraints) {
-            if (kind == TypeMatchKind::BindToPointerType) {
-              increaseScore(ScoreKind::SK_ScalarPointerConversion);
-            }
-
-            // Add a new constraint between these types. We consider the current
-            // type-matching problem to the "solved" by this addition, because
-            // this new constraint will be solved at a later point.
-            // Obviously, this must not happen at the top level, or the
-            // algorithm would not terminate.
-            addConstraint(getConstraintKind(kind), rep1, rep2,
-                          getConstraintLocator(locator));
-            return SolutionKind::Solved;
-          }
-
-          return SolutionKind::Unsolved;
-        }
+              != rep2->getImpl().canBindToLValue())
+          return formUnsolvedResult();
 
         // Merge the equivalence classes corresponding to these two variables.
         mergeEquivalenceClasses(rep1, rep2);
@@ -1256,8 +1255,7 @@
 
         // A constraint that binds any pointer to a void pointer is
         // ineffective, since any pointer can be converted to a void pointer.
-        if (kind == TypeMatchKind::BindToPointerType && desugar2->isVoid() &&
-            (flags & TMF_GenerateConstraints)) {
+        if (kind == TypeMatchKind::BindToPointerType && desugar2->isVoid()) {
           // Bind type1 to Void only as a last resort.
           addConstraint(ConstraintKind::Defaultable, typeVar1, type2,
                         getConstraintLocator(locator));
@@ -1311,7 +1309,8 @@
           return SolutionKind::Solved;
         }
       }
-      return SolutionKind::Unsolved;
+
+      return formUnsolvedResult();
     }
 
     case TypeMatchKind::ArgumentTupleConversion:
@@ -1333,22 +1332,13 @@
     case TypeMatchKind::ArgumentConversion:
     case TypeMatchKind::OperatorArgumentTupleConversion:
     case TypeMatchKind::OperatorArgumentConversion:
-      if (flags & TMF_GenerateConstraints) {
-        // Add a new constraint between these types. We consider the current
-        // type-matching problem to the "solved" by this addition, because
-        // this new constraint will be solved at a later point.
-        // Obviously, this must not happen at the top level, or the algorithm
-        // would not terminate.
-        addConstraint(getConstraintKind(kind), type1, type2,
-                      getConstraintLocator(locator));
-        return SolutionKind::Solved;
-      }
-
       // We couldn't solve this constraint. If only one of the types is a type
       // variable, perhaps we can do something with it below.
-      if (typeVar1 && typeVar2)
-        return typeVar1 == typeVar2 ? SolutionKind::Solved
-                                    : SolutionKind::Unsolved;
+      if (typeVar1 && typeVar2) {
+        if (typeVar1 == typeVar2) return SolutionKind::Solved;
+
+        return formUnsolvedResult();
+      }
         
       break;
     }
@@ -1365,18 +1355,7 @@
       return ::matchCallArguments(*this, kind, type1, type2, locator);
     }
 
-    if (flags & TMF_GenerateConstraints) {
-      // Add a new constraint between these types. We consider the current
-      // type-matching problem to the "solved" by this addition, because
-      // this new constraint will be solved at a later point.
-      // Obviously, this must not happen at the top level, or the algorithm
-      // would not terminate.
-      addConstraint(getConstraintKind(kind), type1, type2,
-                    getConstraintLocator(locator));
-      return SolutionKind::Solved;
-    }
-
-    return SolutionKind::Unsolved;
+    return formUnsolvedResult();
   }
 
   // Decompose parallel structure.
@@ -1783,19 +1762,17 @@
           // scalar or array.
           if (auto inoutType1 = dyn_cast<InOutType>(desugar1)) {
             auto inoutBaseType = inoutType1->getInOutObjectType();
-            
-            auto isWrappedArray = isArrayType(inoutBaseType);
-            
-            if (auto baseTyVar1 = dyn_cast<TypeVariableType>(inoutBaseType.
-                                                                getPointer())) {
-              TypeVariableType *tv1;
-              auto bt1 = getFixedTypeRecursive(baseTyVar1, tv1,
+
+            Type simplifiedInoutBaseType =
+              getFixedTypeRecursive(inoutBaseType,
                                     kind == TypeMatchKind::SameType,
                                     isArgumentTupleConversion);
-              
-              isWrappedArray = isArrayType(bt1);
-            }
-            
+
+            // FIXME: If the base is still a type variable, we can't tell
+            // what to do here. Might have to try \c ArrayToPointer and make it
+            // more robust.
+            bool isWrappedArray = isArrayType(simplifiedInoutBaseType);
+
             if (isWrappedArray) {
               conversionsOrFixes.push_back(
                                      ConversionRestrictionKind::ArrayToPointer);
@@ -1858,11 +1835,10 @@
               // The pointer can be converted from a string, if the element type
               // is compatible.
               if (type1->isEqual(TC.getStringType(DC))) {
-                TypeVariableType *tv = nullptr;
-                auto baseTy = getFixedTypeRecursive(pointeeTy, tv, false,
-                                                    false);
+                auto baseTy = getFixedTypeRecursive(pointeeTy, false);
                 
-                if (tv || isStringCompatiblePointerBaseType(TC, DC, baseTy))
+                if (baseTy->isTypeVariableOrMember() ||
+                    isStringCompatiblePointerBaseType(TC, DC, baseTy))
                   conversionsOrFixes.push_back(
                                     ConversionRestrictionKind::StringToPointer);
               }
@@ -2080,8 +2056,7 @@
 
   if (conversionsOrFixes.empty()) {
     // If one of the types is a type variable, we leave this unsolved.
-    if (typeVar1 || typeVar2)
-      return SolutionKind::Unsolved;
+    if (typeVar1 || typeVar2) return formUnsolvedResult();
 
     return SolutionKind::Error;
   }
@@ -2149,18 +2124,8 @@
     Type valueType, FunctionType *fnType, unsigned flags,
     FunctionRefKind functionRefKind, ConstraintLocator *locator) {
   // Desugar the value type.
-  auto desugarValueType = valueType->getDesugaredType();
-
-  // If we have a type variable that has been bound to a fixed type,
-  // look through to that fixed type.
-  auto desugarValueTypeVar = dyn_cast<TypeVariableType>(desugarValueType);
-  if (desugarValueTypeVar) {
-    if (auto fixed = getFixedType(desugarValueTypeVar)) {
-      valueType = fixed;
-      desugarValueType = fixed->getDesugaredType();
-      desugarValueTypeVar = nullptr;
-    }
-  }
+  auto desugarValueType = getFixedTypeRecursive(valueType, true)
+                            ->getDesugaredType();
 
   Type argType = fnType->getInput();
   Type resultType = fnType->getResult();
@@ -2286,12 +2251,11 @@
                                  ConstraintLocatorBuilder locator,
                                  unsigned flags) {
   // Dig out the fixed type to which this type refers.
-  TypeVariableType *typeVar;
-  type = getFixedTypeRecursive(type, typeVar, /*wantRValue=*/true);
+  type = getFixedTypeRecursive(type, /*wantRValue=*/true);
 
   // If we hit a type variable without a fixed type, we can't
   // solve this yet.
-  if (typeVar)
+  if (type->isTypeVariableOrMember())
     return SolutionKind::Unsolved;
 
   // For purposes of argument type matching, existential types don't need to
@@ -2304,6 +2268,7 @@
       return SolutionKind::Solved;
     break;
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
     // Check whether this type conforms to the protocol.
     if (TC.conformsToProtocol(type, protocol, DC,
                               ConformanceCheckFlags::InExpression))
@@ -2376,21 +2341,19 @@
                     ConstraintLocatorBuilder locator) {
   do {
     // Dig out the fixed type to which this type refers.
-    TypeVariableType *typeVar1;
-    fromType = getFixedTypeRecursive(fromType, typeVar1, /*wantRValue=*/true);
+    fromType = getFixedTypeRecursive(fromType, /*wantRValue=*/true);
 
     // If we hit a type variable without a fixed type, we can't
     // solve this yet.
-    if (typeVar1)
+    if (fromType->isTypeVariableOrMember())
       return SolutionKind::Unsolved;
 
     // Dig out the fixed type to which this type refers.
-    TypeVariableType *typeVar2;
-    toType = getFixedTypeRecursive(toType, typeVar2, /*wantRValue=*/true);
+    toType = getFixedTypeRecursive(toType, /*wantRValue=*/true);
 
     // If we hit a type variable without a fixed type, we can't
     // solve this yet.
-    if (typeVar2)
+    if (toType->isTypeVariableOrMember())
       return SolutionKind::Unsolved;
 
     Type origFromType = fromType;
@@ -2558,7 +2521,7 @@
   Type optLValueTy = simplifyType(constraint.getFirstType());
   Type optTy = optLValueTy->getRValueType();
   
-  if (optTy->is<TypeVariableType>()) {
+  if (optTy->isTypeVariableOrMember()) {
     return SolutionKind::Unsolved;
   }
   
@@ -2692,7 +2655,7 @@
 
   bool isExistential = instanceTy->isExistentialType();
   
-  if (instanceTy->is<TypeVariableType>() ||
+  if (instanceTy->isTypeVariableOrMember() ||
       instanceTy->is<UnresolvedType>()) {
     MemberLookupResult result;
     result.OverallResult = MemberLookupResult::Unsolved;
@@ -2856,13 +2819,7 @@
           if (auto fnType =
                   fnTypeWithSelf->getResult()->getAs<FunctionType>()) {
           
-            auto argType = fnType->getInput();
-            
-            if (auto parenType =
-                dyn_cast<ParenType>(argType.getPointer())) {
-              argType = parenType->getUnderlyingType();
-            }
-            
+            auto argType = fnType->getInput()->getWithoutParens();
             if (argType->isEqual(favoredType))
               result.FavoredChoice = result.ViableCandidates.size();
           }
@@ -3268,15 +3225,9 @@
 ConstraintSystem::simplifyArchetypeConstraint(const Constraint &constraint) {
   // Resolve the base type, if we can. If we can't resolve the base type,
   // then we can't solve this constraint.
-  Type baseTy = constraint.getFirstType()->getRValueType();
-  if (auto tv = dyn_cast<TypeVariableType>(baseTy.getPointer())) {
-    auto fixed = getFixedType(tv);
-    if (!fixed)
-      return SolutionKind::Unsolved;
-
-    // Continue with the fixed type.
-    baseTy = fixed->getRValueType();
-  }
+  Type baseTy = getFixedTypeRecursive(constraint.getFirstType(), true);
+  if (baseTy->isTypeVariableOrMember())
+    return SolutionKind::Unsolved;
 
   if (baseTy->is<ArchetypeType>())
     return SolutionKind::Solved;
@@ -3284,29 +3235,10 @@
   return SolutionKind::Error;
 }
 
-/// Simplify the given type for use in a type property constraint.
-static Type simplifyForTypePropertyConstraint(ConstraintSystem &cs, Type type) {
-  if (auto tv = type->getAs<TypeVariableType>()) {
-    auto fixed = cs.getFixedType(tv);
-    if (!fixed)
-      return Type();
-
-    // Continue with the fixed type.
-    type = fixed;
-
-    // Look through parentheses.
-    while (auto paren = dyn_cast<ParenType>(type.getPointer()))
-      type = paren->getUnderlyingType();
-  }
-
-  return type;
-}
-
 ConstraintSystem::SolutionKind
 ConstraintSystem::simplifyClassConstraint(const Constraint &constraint){
-  auto baseTy = simplifyForTypePropertyConstraint(*this,
-                                                  constraint.getFirstType());
-  if (!baseTy)
+  auto baseTy = getFixedTypeRecursive(constraint.getFirstType(), true);
+  if (baseTy->isTypeVariableOrMember())
     return SolutionKind::Unsolved;
 
   if (baseTy->getClassOrBoundGenericClass())
@@ -3321,10 +3253,9 @@
 
 ConstraintSystem::SolutionKind
 ConstraintSystem::simplifyDefaultableConstraint(const Constraint &constraint) {
-  // Leave the constraint around if the first variable is still opaque.
-  auto baseTy = simplifyForTypePropertyConstraint(*this,
-                                                  constraint.getFirstType());
-  if (!baseTy)
+  auto baseTy = getFixedTypeRecursive(constraint.getFirstType(), true);
+
+  if (baseTy->isTypeVariableOrMember())
     return SolutionKind::Unsolved;
 
   // Otherwise, any type is fine.
@@ -3335,10 +3266,9 @@
 ConstraintSystem::SolutionKind
 ConstraintSystem::simplifyDynamicTypeOfConstraint(const Constraint &constraint) {
   // Solve forward.
-  TypeVariableType *typeVar2;
-  Type type2 = getFixedTypeRecursive(constraint.getSecondType(), typeVar2,
+  Type type2 = getFixedTypeRecursive(constraint.getSecondType(),
                                      /*wantRValue=*/ true);
-  if (!typeVar2) {
+  if (!type2->isTypeVariableOrMember()) {
     Type dynamicType2;
     if (type2->isAnyExistentialType()) {
       dynamicType2 = ExistentialMetatypeType::get(type2);
@@ -3351,8 +3281,10 @@
   }
 
   // Okay, can't solve forward.  See what we can do backwards.
-  TypeVariableType *typeVar1;
-  Type type1 = getFixedTypeRecursive(constraint.getFirstType(), typeVar1, true);
+  Type type1 = getFixedTypeRecursive(constraint.getFirstType(), true);
+
+  if (type1->isTypeVariableOrMember())
+    return SolutionKind::Unsolved;
 
   // If we have an existential metatype, that's good enough to solve
   // the constraint.
@@ -3364,22 +3296,18 @@
   // If we have a normal metatype, we can't solve backwards unless we
   // know what kind of object it is.
   if (auto metatype1 = type1->getAs<MetatypeType>()) {
-    TypeVariableType *instanceTypeVar1;
     Type instanceType1 = getFixedTypeRecursive(metatype1->getInstanceType(),
-                                               instanceTypeVar1, true);
-    if (!instanceTypeVar1) {
+                                               true);
+    if (!instanceType1->isTypeVariableOrMember()) {
       return matchTypes(instanceType1, type2,
                         TypeMatchKind::BindType,
                         TMF_GenerateConstraints, constraint.getLocator());
     }
-
-  // If it's definitely not either kind of metatype, then we can
-  // report failure right away.
-  } else if (!typeVar1) {
-    return SolutionKind::Error;
   }
 
-  return SolutionKind::Unsolved;
+  // It's definitely not either kind of metatype, so we can
+  // report failure right away.
+  return SolutionKind::Error;
 }
 
 ConstraintSystem::SolutionKind
@@ -3391,8 +3319,7 @@
   assert(type1->is<FunctionType>());
 
   // Drill down to the concrete type on the right hand side.
-  TypeVariableType *typeVar2;
-  Type type2 = getFixedTypeRecursive(constraint.getSecondType(), typeVar2, 
+  Type type2 = getFixedTypeRecursive(constraint.getSecondType(),
                                      /*wantRValue=*/true);
   auto desugar2 = type2->getDesugaredType();
 
@@ -3411,7 +3338,7 @@
     return SolutionKind::Solved;
 
   // If right-hand side is a type variable, the constraint is unsolved.
-  if (typeVar2)
+  if (desugar2->isTypeVariableOrMember())
     return SolutionKind::Unsolved;
 
   // Strip the 'ApplyFunction' off the locator.
@@ -3521,6 +3448,7 @@
     llvm_unreachable("Overload binding constraints don't involve type matches");
 
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::SelfObjectOfProtocol:
     llvm_unreachable("Conformance constraints don't involve type matches");
 
@@ -3735,8 +3663,7 @@
       obj1 = inout1->getObjectType();
     }
     
-    TypeVariableType *tv1;
-    obj1 = getFixedTypeRecursive(obj1, tv1, false, false);
+    obj1 = getFixedTypeRecursive(obj1, false, false);
     
     auto t1 = obj1->getDesugaredType();
     auto t2 = type2->getDesugaredType();
@@ -3759,23 +3686,22 @@
     // TODO: Handle different encodings based on pointer element type, such as
     // UTF16 for [U]Int16 or UTF32 for [U]Int32. For now we only interop with
     // Int8 pointers using UTF8 encoding.
-    TypeVariableType *btv2 = nullptr;
-    baseType2 = getFixedTypeRecursive(baseType2, btv2, false, false);
+    baseType2 = getFixedTypeRecursive(baseType2, false, false);
     // If we haven't resolved the element type, generate constraints.
-    if (btv2) {
+    if (baseType2->isTypeVariableOrMember()) {
       if (flags & TMF_GenerateConstraints) {
         auto int8Con = Constraint::create(*this, ConstraintKind::Bind,
-                                       btv2, TC.getInt8Type(DC),
+                                       baseType2, TC.getInt8Type(DC),
                                        DeclName(),
                                        FunctionRefKind::Compound,
                                        getConstraintLocator(locator));
         auto uint8Con = Constraint::create(*this, ConstraintKind::Bind,
-                                        btv2, TC.getUInt8Type(DC),
+                                        baseType2, TC.getUInt8Type(DC),
                                         DeclName(),
                                         FunctionRefKind::Compound,
                                         getConstraintLocator(locator));
         auto voidCon = Constraint::create(*this, ConstraintKind::Bind,
-                                        btv2, TC.Context.TheEmptyTupleType,
+                                        baseType2, TC.Context.TheEmptyTupleType,
                                         DeclName(),
                                         FunctionRefKind::Compound,
                                         getConstraintLocator(locator));
@@ -4182,6 +4108,7 @@
     return SolutionKind::Solved;
 
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::SelfObjectOfProtocol:
     return simplifyConformsToConstraint(
              constraint.getFirstType(),
diff --git a/lib/Sema/CSSolver.cpp b/lib/Sema/CSSolver.cpp
index 9718fc6..3772c9c 100644
--- a/lib/Sema/CSSolver.cpp
+++ b/lib/Sema/CSSolver.cpp
@@ -62,14 +62,24 @@
     return None;
 
   // If the type is a type variable itself, don't permit the binding.
-  // FIXME: This is a hack. We need to be smarter about whether there's enough
-  // structure in the type to produce an interesting binding, or not.
   if (auto bindingTypeVar = type->getRValueType()->getAs<TypeVariableType>()) {
-    if (isNilLiteral &&
-        bindingTypeVar->getImpl().literalConformanceProto &&
-        bindingTypeVar->getImpl().literalConformanceProto->isSpecificProtocol(
-          KnownProtocolKind::ExpressibleByNilLiteral))
-      *isNilLiteral = true;
+    if (isNilLiteral) {
+      *isNilLiteral = false;
+
+      // Look for a literal-conformance constraint on the type variable.
+      SmallVector<Constraint *, 8> constraints;
+      cs.getConstraintGraph().gatherConstraints(bindingTypeVar, constraints);
+      for (auto constraint : constraints) {
+        if (constraint->getKind() == ConstraintKind::LiteralConformsTo &&
+            constraint->getProtocol()->isSpecificProtocol(
+              KnownProtocolKind::ExpressibleByNilLiteral) &&
+            cs.simplifyType(constraint->getFirstType())
+              ->isEqual(bindingTypeVar)) {
+          *isNilLiteral = true;
+          break;
+        }
+      }
+    }
     
     return None;
   }
@@ -200,8 +210,8 @@
   }
 
   // Remember the defaulted type variables.
-  solution.DefaultedTypeVariables.insert(DefaultedTypeVariables.begin(),
-                                         DefaultedTypeVariables.end());
+  solution.DefaultedConstraints.insert(DefaultedConstraints.begin(),
+                                       DefaultedConstraints.end());
 
   return solution;
 }
@@ -260,8 +270,8 @@
   }
 
   // Register the defaulted type variables.
-  DefaultedTypeVariables.append(solution.DefaultedTypeVariables.begin(),
-                                solution.DefaultedTypeVariables.end());
+  DefaultedConstraints.append(solution.DefaultedConstraints.begin(),
+                              solution.DefaultedConstraints.end());
 
   // Register any fixes produced along this path.
   Fixes.append(solution.Fixes.begin(), solution.Fixes.end());
@@ -447,7 +457,7 @@
   numDisjunctionChoices = cs.DisjunctionChoices.size();
   numOpenedTypes = cs.OpenedTypes.size();
   numOpenedExistentialTypes = cs.OpenedExistentialTypes.size();
-  numDefaultedTypeVariables = cs.DefaultedTypeVariables.size();
+  numDefaultedConstraints = cs.DefaultedConstraints.size();
   numGeneratedConstraints = cs.solverState->generatedConstraints.size();
   PreviousScore = cs.CurrentScore;
 
@@ -505,7 +515,7 @@
   truncate(cs.OpenedExistentialTypes, numOpenedExistentialTypes);
 
   // Remove any defaulted type variables.
-  truncate(cs.DefaultedTypeVariables, numDefaultedTypeVariables);
+  truncate(cs.DefaultedConstraints, numDefaultedConstraints);
   
   // Reset the previous score.
   cs.CurrentScore = PreviousScore;
@@ -546,14 +556,17 @@
     /// The defaulted protocol associated with this binding.
     Optional<ProtocolDecl *> DefaultedProtocol;
 
-    /// Whether this is a binding that comes from a 'Defaultable' constraint.
-    bool IsDefaultableBinding = false;
+    /// If this is a binding that comes from a \c Defaultable constraint,
+    /// the locator of that constraint.
+    ConstraintLocator *DefaultableBinding = nullptr;
 
     PotentialBinding(Type type, AllowedBindingKind kind,
                      Optional<ProtocolDecl *> defaultedProtocol = None,
-                     bool isDefaultableBinding = false)
+                     ConstraintLocator *defaultableBinding = nullptr)
       : BindingType(type), Kind(kind), DefaultedProtocol(defaultedProtocol),
-        IsDefaultableBinding(isDefaultableBinding) { }
+        DefaultableBinding(defaultableBinding) { }
+
+    bool isDefaultableBinding() const { return DefaultableBinding != nullptr; }
   };
 
   struct PotentialBindings {
@@ -664,6 +677,7 @@
   case ConstraintKind::Equal:
   case ConstraintKind::BindParam:
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::CheckedCast:
   case ConstraintKind::SelfObjectOfProtocol:
   case ConstraintKind::ApplicableFunction:
@@ -710,7 +724,7 @@
     if (binding.Kind == AllowedBindingKind::Supertypes &&
         !binding.BindingType->hasTypeVariable() &&
         !binding.DefaultedProtocol &&
-        !binding.IsDefaultableBinding &&
+        !binding.isDefaultableBinding() &&
         allowJoinMeet) {
       if (lastSupertypeIndex) {
         // Can we compute a join?
@@ -779,15 +793,18 @@
       result.InvolvesTypeVariables = true;
       continue;
 
-    case ConstraintKind::ConformsTo: 
+    case ConstraintKind::LiteralConformsTo:
+        // If there is a 'nil' literal constraint, we might need optional
+        // supertype bindings.
+        if (constraint->getProtocol()->isSpecificProtocol(
+              KnownProtocolKind::ExpressibleByNilLiteral))
+          addOptionalSupertypeBindings = true;
+
+        SWIFT_FALLTHROUGH;
+
+    case ConstraintKind::ConformsTo:
     case ConstraintKind::SelfObjectOfProtocol: {
-      // FIXME: Can we always assume that the type variable is the lower bound?
-      TypeVariableType *lowerTypeVar = nullptr;
-      cs.getFixedTypeRecursive(constraint->getFirstType(), lowerTypeVar,
-                               /*wantRValue=*/false);
-      if (lowerTypeVar != typeVar) {
-        continue;
-      }
+      // FIXME: Only for LiteralConformsTo?
 
       // If there is a default literal type for this protocol, it's a
       // potential binding.
@@ -913,13 +930,17 @@
     // Check whether we can perform this binding.
     // FIXME: this has a super-inefficient extraneous simplifyType() in it.
     bool isNilLiteral = false;
-    if (auto boundType = checkTypeOfBinding(cs, typeVar, type, &isNilLiteral)) {
+    bool *isNilLiteralPtr = nullptr;
+    if (!addOptionalSupertypeBindings && kind == AllowedBindingKind::Supertypes)
+      isNilLiteralPtr = &isNilLiteral;
+    if (auto boundType = checkTypeOfBinding(cs, typeVar, type,
+                                            isNilLiteralPtr)) {
       type = *boundType;
       if (type->hasTypeVariable())
         result.InvolvesTypeVariables = true;
     } else {
       // If the bound is a 'nil' literal type, add optional supertype bindings.
-      if (isNilLiteral && kind == AllowedBindingKind::Supertypes) {
+      if (isNilLiteral) {
         addOptionalSupertypeBindings = true;
         continue;
       }
@@ -1060,7 +1081,8 @@
       continue;
 
     ++result.NumDefaultableBindings;
-    addPotentialBinding({type, AllowedBindingKind::Exact, None, true});
+    addPotentialBinding({type, AllowedBindingKind::Exact, None,
+                         constraint->getLocator()});
   }
 
   // Determine if the bindings only constrain the type variable from above with
@@ -1154,7 +1176,7 @@
     for (const auto &binding : bindings) {
       // If this is a defaultable binding and we have found any solutions,
       // don't explore the default binding.
-      if (binding.IsDefaultableBinding && anySolved)
+      if (binding.isDefaultableBinding() && anySolved)
         continue;
 
       auto type = binding.BindingType;
@@ -1222,8 +1244,8 @@
                        typeVar->getImpl().getLocator());
 
       // If this was from a defaultable binding note that.
-      if (binding.IsDefaultableBinding) {
-        cs.DefaultedTypeVariables.push_back(typeVar);
+      if (binding.isDefaultableBinding()) {
+        cs.DefaultedConstraints.push_back(binding.DefaultableBinding);
       }
 
       if (!cs.solveRec(solutions, allowFreeTypeVariables))
diff --git a/lib/Sema/Constraint.cpp b/lib/Sema/Constraint.cpp
index 59b5e04..2fb0f6a 100644
--- a/lib/Sema/Constraint.cpp
+++ b/lib/Sema/Constraint.cpp
@@ -61,6 +61,7 @@
   case ConstraintKind::OperatorArgumentTupleConversion:
   case ConstraintKind::OperatorArgumentConversion:
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::CheckedCast:
   case ConstraintKind::SelfObjectOfProtocol:
   case ConstraintKind::DynamicTypeOf:
@@ -144,6 +145,7 @@
 
 ProtocolDecl *Constraint::getProtocol() const {
   assert((Kind == ConstraintKind::ConformsTo ||
+          Kind == ConstraintKind::LiteralConformsTo ||
           Kind == ConstraintKind::SelfObjectOfProtocol)
           && "Not a conformance constraint");
   return Types.Second->castTo<ProtocolType>()->getDecl();
@@ -162,6 +164,7 @@
   case ConstraintKind::OperatorArgumentTupleConversion:
   case ConstraintKind::OperatorArgumentConversion:
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::CheckedCast:
   case ConstraintKind::DynamicTypeOf:
   case ConstraintKind::SelfObjectOfProtocol:
@@ -238,6 +241,7 @@
   case ConstraintKind::OperatorArgumentConversion:
       Out << " operator arg conv "; break;
   case ConstraintKind::ConformsTo: Out << " conforms to "; break;
+  case ConstraintKind::LiteralConformsTo: Out << " literal conforms to "; break;
   case ConstraintKind::CheckedCast: Out << " checked cast to "; break;
   case ConstraintKind::SelfObjectOfProtocol: Out << " Self type of "; break;
   case ConstraintKind::ApplicableFunction: Out << " applicable fn "; break;
@@ -486,6 +490,7 @@
   case ConstraintKind::BindOverload:
   case ConstraintKind::Class:
   case ConstraintKind::ConformsTo:
+  case ConstraintKind::LiteralConformsTo:
   case ConstraintKind::SelfObjectOfProtocol:
     constraint->getFirstType()->getTypeVariables(typeVars);
 
diff --git a/lib/Sema/Constraint.h b/lib/Sema/Constraint.h
index 64ebe93..22678e2 100644
--- a/lib/Sema/Constraint.h
+++ b/lib/Sema/Constraint.h
@@ -81,6 +81,9 @@
   /// \brief The first type must conform to the second type (which is a
   /// protocol type).
   ConformsTo,
+  /// \brief The first type describes a literal that conforms to the second
+  /// type, which is one of the known expressible-by-literal protocols.
+  LiteralConformsTo,
   /// A checked cast from the first type to the second.
   CheckedCast,
   /// \brief The first type can act as the Self type of the second type (which
@@ -473,6 +476,7 @@
     case ConstraintKind::OperatorArgumentTupleConversion:
     case ConstraintKind::OperatorArgumentConversion:
     case ConstraintKind::ConformsTo:
+    case ConstraintKind::LiteralConformsTo:
     case ConstraintKind::CheckedCast:
     case ConstraintKind::SelfObjectOfProtocol:
     case ConstraintKind::ApplicableFunction:
diff --git a/lib/Sema/ConstraintGraph.cpp b/lib/Sema/ConstraintGraph.cpp
index 7c780d6..fe310b7 100644
--- a/lib/Sema/ConstraintGraph.cpp
+++ b/lib/Sema/ConstraintGraph.cpp
@@ -731,7 +731,7 @@
   if (!iot)
     return false;
 
-  return iot->getObjectType()->getAs<TypeVariableType>() == nullptr;
+  return !iot->getObjectType()->isTypeVariableOrMember();
 }
 
 bool ConstraintGraph::contractEdges() {
@@ -940,6 +940,8 @@
 }
 
 void ConstraintGraphNode::dump() {
+  llvm::SaveAndRestore<bool>
+    debug(TypeVar->getASTContext().LangOpts.DebugConstraintSolver, true);
   print(llvm::dbgs(), 0);
 }
 
@@ -951,6 +953,8 @@
 }
 
 void ConstraintGraph::dump() {
+  llvm::SaveAndRestore<bool>
+    debug(CS.getASTContext().LangOpts.DebugConstraintSolver, true);
   print(llvm::dbgs());
 }
 
diff --git a/lib/Sema/ConstraintSystem.cpp b/lib/Sema/ConstraintSystem.cpp
index 6fa927d..bdf7113 100644
--- a/lib/Sema/ConstraintSystem.cpp
+++ b/lib/Sema/ConstraintSystem.cpp
@@ -93,7 +93,7 @@
   if (!updateState)
     return;
 
-  if (!type->is<TypeVariableType>()) {
+  if (!type->isTypeVariableOrMember()) {
     // If this type variable represents a literal, check whether we picked the
     // default literal type. First, find the corresponding protocol.
     ProtocolDecl *literalProtocol = nullptr;
@@ -136,9 +136,8 @@
   assert(type->isMaterializable() &&
          "argument to setMustBeMaterializableRecursive may not be inherently "
          "non-materializable");
-  TypeVariableType *typeVar = nullptr;
-  type = getFixedTypeRecursive(type, typeVar, /*wantRValue=*/false);
-  if (typeVar) {
+  type = getFixedTypeRecursive(type, /*wantRValue=*/false);
+  if (auto typeVar = type->getAs<TypeVariableType>()) {
     typeVar->getImpl().setMustBeMaterializable(getSavedBindings());
   } else if (auto *tupleTy = type->getAs<TupleType>()) {
     for (auto elt : tupleTy->getElementTypes()) {
@@ -469,25 +468,6 @@
                                             FunctionRefKind::Compound,
                                             locator));
 
-        if (!archetype) {
-          // If the nested type is not an archetype (because it was constrained
-          // to a concrete type by a requirement), return the fresh type
-          // variable now, and let binding occur during overload resolution.
-          return memberTypeVar;
-        }
-                                
-        // FIXME: Would be better to walk the requirements of the protocol
-        // of which the associated type is a member.
-        if (auto superclass = member->getSuperclass()) {
-          CS.addConstraint(ConstraintKind::Subtype, memberTypeVar,
-                           superclass, locator);
-        }
-
-        for (auto proto : member->getConformingProtocols()) {
-          CS.addConstraint(ConstraintKind::ConformsTo, memberTypeVar,
-                           proto->getDeclaredType(), locator);
-        }
-
         return memberTypeVar;
       });
     }
@@ -736,22 +716,7 @@
   return result;
 }
 
-static Type getFixedTypeRecursiveHelper(ConstraintSystem &cs,
-                                        TypeVariableType *typeVar,
-                                        bool wantRValue) {
-  while (auto fixed = cs.getFixedType(typeVar)) {
-    if (wantRValue)
-      fixed = fixed->getRValueType();
-
-    typeVar = fixed->getAs<TypeVariableType>();
-    if (!typeVar)
-      return fixed;
-  }
-  return nullptr;
-}
-
-Type ConstraintSystem::getFixedTypeRecursive(Type type, 
-                                             TypeVariableType *&typeVar,
+Type ConstraintSystem::getFixedTypeRecursive(Type type,
                                              bool wantRValue,
                                              bool retainParens) {
   if (wantRValue)
@@ -759,19 +724,22 @@
 
   if (retainParens) {
     if (auto parenTy = dyn_cast<ParenType>(type.getPointer())) {
-      type = getFixedTypeRecursive(parenTy->getUnderlyingType(), typeVar,
+      type = getFixedTypeRecursive(parenTy->getUnderlyingType(),
                                    wantRValue, retainParens);
       return ParenType::get(getASTContext(), type);
     }
   }
 
-  auto desugar = type->getDesugaredType();
-  typeVar = desugar->getAs<TypeVariableType>();
-  if (typeVar) {
-    if (auto fixed = getFixedTypeRecursiveHelper(*this, typeVar, wantRValue)) {
+  while (auto typeVar = type->getAs<TypeVariableType>()) {
+    if (auto fixed = getFixedType(typeVar)) {
+      if (wantRValue)
+        fixed = fixed->getRValueType();
+
       type = fixed;
-      typeVar = nullptr;
+      continue;
     }
+
+    break;
   }
   return type;
 }
@@ -1181,9 +1149,7 @@
     const DeclRefExpr *base,
     llvm::DenseMap<CanType, TypeVariableType *> *replacementsPtr) {
   // Figure out the instance type used for the base.
-  TypeVariableType *baseTypeVar = nullptr;
-  Type baseObjTy = getFixedTypeRecursive(baseTy, baseTypeVar, 
-                                         /*wantRValue=*/true);
+  Type baseObjTy = getFixedTypeRecursive(baseTy, /*wantRValue=*/true);
   bool isInstance = true;
   if (auto baseMeta = baseObjTy->getAs<AnyMetatypeType>()) {
     baseObjTy = baseMeta->getInstanceType();
diff --git a/lib/Sema/ConstraintSystem.h b/lib/Sema/ConstraintSystem.h
index 5568fa7..a8388fd 100644
--- a/lib/Sema/ConstraintSystem.h
+++ b/lib/Sema/ConstraintSystem.h
@@ -158,12 +158,6 @@
   friend class constraints::SavedTypeVariableBinding;
 
 public:
-  
-  /// \brief If this type variable is an opened literal expression, keep track
-  /// of the associated literal conformance for optimization and diagnostic
-  /// purposes.
-  ProtocolDecl *literalConformanceProto = nullptr;
-  
   explicit Implementation(constraints::ConstraintLocator *locator,
                           unsigned options)
     : Options(options), locator(locator),
@@ -598,8 +592,8 @@
   llvm::SmallDenseMap<ConstraintLocator *, ArchetypeType *>
     OpenedExistentialTypes;
 
-  /// The type variables that were bound via a Defaultable constraint.
-  llvm::SmallPtrSet<TypeVariableType *, 8> DefaultedTypeVariables;
+  /// The locators of \c Defaultable constraints whose defaults were used.
+  llvm::SmallPtrSet<ConstraintLocator *, 8> DefaultedConstraints;
 
   /// \brief Simplify the given type by substituting all occurrences of
   /// type variables for their fixed types.
@@ -1001,20 +995,8 @@
     OpenedExistentialTypes;
 
 public:
-  /// The type variables that were bound via a Defaultable constraint.
-  SmallVector<TypeVariableType *, 8> DefaultedTypeVariables;
-
-  /// The type variable used to describe the element type of the given array
-  /// literal.
-  llvm::SmallDenseMap<ArrayExpr *, TypeVariableType *>
-    ArrayElementTypeVariables;
-
-
-  /// The type variables used to describe the key and value types of the given
-  /// dictionary literal.
-  llvm::SmallDenseMap<DictionaryExpr *,
-                      std::pair<TypeVariableType *, TypeVariableType *>>
-    DictionaryElementTypeVariables;
+  /// The locators of \c Defaultable constraints whose defaults were used.
+  SmallVector<ConstraintLocator *, 8> DefaultedConstraints;
 
 private:
   /// \brief Describe the candidate expression for partial solving.
@@ -1177,8 +1159,8 @@
     /// The length of \c OpenedExistentialTypes.
     unsigned numOpenedExistentialTypes;
 
-    /// The length of \c DefaultedTypeVariables.
-    unsigned numDefaultedTypeVariables;
+    /// The length of \c DefaultedConstraints.
+    unsigned numDefaultedConstraints;
 
     /// The previous score.
     Score PreviousScore;
@@ -1519,15 +1501,11 @@
   ///
   /// \param type The type to simplify.
   ///
-  /// \param typeVar Will receive the type variable at which simplification 
-  /// stopped, which has no fixed type.
-  ///
   /// \param wantRValue Whether this routine should look through
   /// lvalues at each step.
   ///
   /// param retainParens Whether to retain parentheses.
-  Type getFixedTypeRecursive(Type type, TypeVariableType *&typeVar,
-                             bool wantRValue,
+  Type getFixedTypeRecursive(Type type, bool wantRValue,
                              bool retainParens = false);
 
   /// \brief Assign a fixed type to the given type variable.
diff --git a/lib/Sema/MiscDiagnostics.cpp b/lib/Sema/MiscDiagnostics.cpp
index 9b2f1aa..331bb1f 100644
--- a/lib/Sema/MiscDiagnostics.cpp
+++ b/lib/Sema/MiscDiagnostics.cpp
@@ -1842,16 +1842,16 @@
   SourceLoc Loc = R.Start;
   auto Name = D->getFullName();
 
-  switch (Attr->getUnconditionalAvailability()) {
-  case UnconditionalAvailabilityKind::Deprecated:
+  switch (Attr->getPlatformAgnosticAvailability()) {
+  case PlatformAgnosticAvailabilityKind::Deprecated:
     break;
 
-  case UnconditionalAvailabilityKind::None:
-  case UnconditionalAvailabilityKind::Unavailable:
-  case UnconditionalAvailabilityKind::UnavailableInCurrentSwift:
-  case UnconditionalAvailabilityKind::UnavailableInSwift: {
-    bool inSwift = (Attr->getUnconditionalAvailability() ==
-                    UnconditionalAvailabilityKind::UnavailableInSwift);
+  case PlatformAgnosticAvailabilityKind::None:
+  case PlatformAgnosticAvailabilityKind::Unavailable:
+  case PlatformAgnosticAvailabilityKind::SwiftVersionSpecific:
+  case PlatformAgnosticAvailabilityKind::UnavailableInSwift: {
+    bool inSwift = (Attr->getPlatformAgnosticAvailability() ==
+                    PlatformAgnosticAvailabilityKind::UnavailableInSwift);
 
     if (!Attr->Rename.empty()) {
       SmallString<32> newNameBuf;
@@ -1867,9 +1867,10 @@
                              newName);
         attachRenameFixIts(diag);
       } else {
+        EncodedDiagnosticMessage EncodedMessage(Attr->Message);
         auto diag = diagnose(Loc, diag::availability_decl_unavailable_rename_msg,
                              Name, replaceKind.hasValue(), rawReplaceKind,
-                             newName, Attr->Message);
+                             newName, EncodedMessage.Message);
         attachRenameFixIts(diag);
       }
     } else if (Attr->Message.empty()) {
@@ -1887,22 +1888,27 @@
   }
   }
 
-  auto MinVersion = Context.LangOpts.getMinPlatformVersion();
-  switch (Attr->getMinVersionAvailability(MinVersion)) {
-  case MinVersionComparison::Available:
-  case MinVersionComparison::PotentiallyUnavailable:
+  switch (Attr->getVersionAvailability(Context)) {
+  case AvailableVersionComparison::Available:
+  case AvailableVersionComparison::PotentiallyUnavailable:
     llvm_unreachable("These aren't considered unavailable");
 
-  case MinVersionComparison::Unavailable:
-    diagnose(D, diag::availability_marked_unavailable, Name)
+  case AvailableVersionComparison::Unavailable:
+    if (Attr->isLanguageVersionSpecific()
+        && Attr->Introduced.hasValue())
+      diagnose(D, diag::availability_introduced_in_swift, Name,
+               *Attr->Introduced).highlight(Attr->getRange());
+    else
+      diagnose(D, diag::availability_marked_unavailable, Name)
         .highlight(Attr->getRange());
     break;
 
-  case MinVersionComparison::Obsoleted:
+  case AvailableVersionComparison::Obsoleted:
     // FIXME: Use of the platformString here is non-awesome for application
     // extensions.
     diagnose(D, diag::availability_obsoleted, Name,
-             Attr->prettyPlatformString(),
+             (Attr->isLanguageVersionSpecific() ?
+              "Swift" : Attr->prettyPlatformString()),
              *Attr->Obsoleted).highlight(Attr->getRange());
     break;
   }
@@ -1986,9 +1992,12 @@
     return E;
   }
 
-private:
   bool diagAvailability(const ValueDecl *D, SourceRange R,
-                        const ApplyExpr *call = nullptr);
+                        const ApplyExpr *call = nullptr,
+                        bool AllowPotentiallyUnavailableProtocol = false,
+                        bool SignalOnPotentialUnavailability = true);
+
+private:
   bool diagnoseIncDecRemoval(const ValueDecl *D, SourceRange R,
                              const AvailableAttr *Attr);
   bool diagnoseMemoryLayoutMigration(const ValueDecl *D, SourceRange R,
@@ -2124,11 +2133,12 @@
 };
 }
 
-
 /// Diagnose uses of unavailable declarations. Returns true if a diagnostic
 /// was emitted.
 bool AvailabilityWalker::diagAvailability(const ValueDecl *D, SourceRange R,
-                                          const ApplyExpr *call) {
+                                          const ApplyExpr *call,
+                                          bool AllowPotentiallyUnavailableProtocol,
+                                          bool SignalOnPotentialUnavailability) {
   if (!D)
     return false;
 
@@ -2145,11 +2155,15 @@
   // Diagnose for deprecation
   TC.diagnoseIfDeprecated(R, DC, D, call);
 
-  // Diagnose for potential unavailability
+  if (AllowPotentiallyUnavailableProtocol && isa<ProtocolDecl>(D))
+    return false;
+
+  // Diagnose (and possibly signal) for potential unavailability
   auto maybeUnavail = TC.checkDeclarationAvailability(D, R.Start, DC);
   if (maybeUnavail.hasValue()) {
     TC.diagnosePotentialUnavailability(D, R, DC, maybeUnavail.getValue());
-    return true;
+    if (SignalOnPotentialUnavailability)
+      return true;
   }
   return false;
 }
@@ -3723,28 +3737,26 @@
           }
 
           // Bail out if we don't have an optional.
-          auto objectTy = segment->getType()->getOptionalObjectType();
-          if (!objectTy) {
+          if (!segment->getType()->getOptionalObjectType()) {
             continue;
           }
-          auto segmentTy = OptionalType::get(objectTy);
 
           TC.diagnose(segment->getStartLoc(),
                       diag::optional_in_string_interpolation_segment)
               .highlight(segment->getSourceRange());
 
+          // Suggest 'String(describing: <expr>)'.
+          auto segmentStart = segment->getStartLoc().getAdvancedLoc(1);
           TC.diagnose(segment->getLoc(),
                       diag::silence_optional_in_interpolation_segment_call)
             .highlight(segment->getSourceRange())
-            .fixItInsert(segment->getEndLoc(), ".debugDescription");
+            .fixItInsert(segmentStart, "String(describing: ")
+            .fixItInsert(segment->getEndLoc(), ")");
 
-          auto opts = PrintOptions::printForDiagnostics();
-          TC.diagnose(segment->getLoc(),
-                      diag::silence_optional_in_interpolation_segment_cast,
-                      segmentTy)
+          // Suggest inserting a default value. 
+          TC.diagnose(segment->getLoc(), diag::default_optional_to_any)
             .highlight(segment->getSourceRange())
-            .fixItInsert(segment->getEndLoc(),
-                         " as " + segmentTy->getString(opts));
+            .fixItInsert(segment->getEndLoc(), " ?? <#default value#>");
         }
       }
       return { true, E };
@@ -3926,10 +3938,7 @@
     }
 
     // Look through parentheses.
-    if (auto parenTy = dyn_cast<ParenType>(type.getPointer())) {
-      type = parenTy->getUnderlyingType();
-      continue;
-    }
+    type = type->getWithoutParens();
 
     // Look through optionals.
     if (auto optObjectTy = type->getAnyOptionalObjectType()) {
@@ -4129,3 +4138,20 @@
 
   return None;
 }
+
+
+/// Run the Availability-diagnostics algorithm otherwise used in an expr
+/// context, but for non-expr contexts such as TypeDecls referenced from
+/// TypeReprs.
+bool swift::diagnoseDeclAvailability(const ValueDecl *Decl,
+                                     TypeChecker &TC,
+                                     DeclContext *DC,
+                                     SourceRange R,
+                                     bool AllowPotentiallyUnavailableProtocol,
+                                     bool SignalOnPotentialUnavailability)
+{
+  AvailabilityWalker AW(TC, DC);
+  return AW.diagAvailability(Decl, R, nullptr,
+                             AllowPotentiallyUnavailableProtocol,
+                             SignalOnPotentialUnavailability);
+}
diff --git a/lib/Sema/MiscDiagnostics.h b/lib/Sema/MiscDiagnostics.h
index 9ef8436..0b159ae 100644
--- a/lib/Sema/MiscDiagnostics.h
+++ b/lib/Sema/MiscDiagnostics.h
@@ -93,6 +93,17 @@
                                  InFlightDiagnostic &diag,
                                  const CallExpr *call,
                                  Identifier closureLabel);
+
+/// Run the Availability-diagnostics algorithm otherwise used in an expr
+/// context, but for non-expr contexts such as TypeDecls referenced from
+/// TypeReprs.
+bool diagnoseDeclAvailability(const ValueDecl *Decl,
+                              TypeChecker &TC,
+                              DeclContext *DC,
+                              SourceRange R,
+                              bool AllowPotentiallyUnavailableProtocol,
+                              bool SignalOnPotentialUnavailability);
+
 } // namespace swift
 
 #endif // SWIFT_SEMA_MISC_DIAGNOSTICS_H
diff --git a/lib/Sema/TypeCheckCaptures.cpp b/lib/Sema/TypeCheckCaptures.cpp
index 87dc3cc..83c9d52 100644
--- a/lib/Sema/TypeCheckCaptures.cpp
+++ b/lib/Sema/TypeCheckCaptures.cpp
@@ -536,6 +536,12 @@
     // Casting to an ObjC class doesn't require the metadata of its type
     // parameters, if any.
     if (auto cast = dyn_cast<CheckedCastExpr>(E)) {
+      // If we failed to resolve the written type, we've emitted an
+      // earlier diagnostic and should bail.
+      auto toTy = cast->getCastTypeLoc().getType();
+      if (!toTy || toTy->hasError())
+        return false;
+
       if (auto clas = dyn_cast_or_null<ClassDecl>(
                          cast->getCastTypeLoc().getType()->getAnyNominal())) {
         if (clas->usesObjCGenericsModel()) {
diff --git a/lib/Sema/TypeCheckConstraints.cpp b/lib/Sema/TypeCheckConstraints.cpp
index 44f1a14..c87559b 100644
--- a/lib/Sema/TypeCheckConstraints.cpp
+++ b/lib/Sema/TypeCheckConstraints.cpp
@@ -55,29 +55,6 @@
   getTypeVariable()->print(OS, PrintOptions());
 }
 
-TypeBase *TypeVariableType::getBaseBeingSubstituted() {
-  auto impl = this->getImpl();
-  auto archetype = impl.getArchetype();
-  
-  if (archetype)
-    return archetype;
-
-  if (auto locator = impl.getLocator())
-    if (auto anchor = locator->getAnchor())
-      if (auto anchorType = anchor->getType())
-        if (!(anchorType->getAs<TypeVariableType>() ||
-              anchorType->getAs<AnyFunctionType>()))
-          return anchorType.getPointer();
-  
-  if (auto proto = impl.literalConformanceProto) {
-    return proto->getType()->
-           getAs<MetatypeType>()->
-           getInstanceType().getPointer();
-  }
-
-  return this;
-}
-
 SavedTypeVariableBinding::SavedTypeVariableBinding(TypeVariableType *typeVar)
   : TypeVarAndOptions(typeVar, typeVar->getImpl().Options),
     ParentOrFixed(typeVar->getImpl().ParentOrFixed) { }
@@ -2670,10 +2647,10 @@
     }
   }
 
-  if (!DefaultedTypeVariables.empty()) {
-    out << "\nDefaulted type variables: ";
-    interleave(DefaultedTypeVariables, [&](TypeVariableType *typeVar) {
-      out << "$T" << typeVar->getID();
+  if (!DefaultedConstraints.empty()) {
+    out << "\nDefaulted constraints: ";
+    interleave(DefaultedConstraints, [&](ConstraintLocator *locator) {
+      locator->dump(sm, out);
     }, [&] {
       out << ", ";
     });
@@ -2828,10 +2805,10 @@
     }
   }
 
-  if (!DefaultedTypeVariables.empty()) {
-    out << "\nDefaulted type variables: ";
-    interleave(DefaultedTypeVariables, [&](TypeVariableType *typeVar) {
-      out << "$T" << typeVar->getID();
+  if (!DefaultedConstraints.empty()) {
+    out << "\nDefaulted constraints: ";
+    interleave(DefaultedConstraints, [&](ConstraintLocator *locator) {
+      locator->dump(&getTypeChecker().Context.SourceMgr, out);
     }, [&] {
       out << ", ";
     });
diff --git a/lib/Sema/TypeCheckDecl.cpp b/lib/Sema/TypeCheckDecl.cpp
index abaaaf1..a6dd871 100644
--- a/lib/Sema/TypeCheckDecl.cpp
+++ b/lib/Sema/TypeCheckDecl.cpp
@@ -738,7 +738,7 @@
     checkGenericParamList(&builder, genericParams, parentSig, parentEnv,
                           nullptr);
     parentSig = genericSig;
-    parentEnv = builder.getGenericEnvironment(genericSig->getGenericParams());
+    parentEnv = builder.getGenericEnvironment();
     finalizeGenericParamList(genericParams, parentSig, parentEnv, DC);
   }
 
@@ -4841,7 +4841,7 @@
 
       // Assign archetypes.
       auto *sig = FD->getGenericSignature();
-      auto *env = builder.getGenericEnvironment(sig->getGenericParams());
+      auto *env = builder.getGenericEnvironment();
       FD->setGenericEnvironment(env);
 
       TC.finalizeGenericParamList(gp, sig, env, FD);
@@ -6529,7 +6529,7 @@
 
       // Assign archetypes.
       auto *sig = CD->getGenericSignature();
-      auto *env = builder.getGenericEnvironment(sig->getGenericParams());
+      auto *env = builder.getGenericEnvironment();
       CD->setGenericEnvironment(env);
 
       TC.finalizeGenericParamList(gp, sig, env, CD);
@@ -7540,7 +7540,7 @@
   tc.checkGenericParamList(&builder, genericParams, parentSig, parentEnv, nullptr);
   inferExtendedTypeReqs(builder);
 
-  auto *env = builder.getGenericEnvironment(sig->getGenericParams());
+  auto *env = builder.getGenericEnvironment();
   ext->setGenericEnvironment(env);
 
   tc.finalizeGenericParamList(genericParams, sig, env, ext);
diff --git a/lib/Sema/TypeCheckExpr.cpp b/lib/Sema/TypeCheckExpr.cpp
index 42f73ae..a41eccb 100644
--- a/lib/Sema/TypeCheckExpr.cpp
+++ b/lib/Sema/TypeCheckExpr.cpp
@@ -54,8 +54,7 @@
 
   // If this type is parenthesized, remove the parens.  We don't want to
   // propagate parens from arguments to the result type.
-  if (auto *PT = dyn_cast<ParenType>(argTy.getPointer()))
-    argTy = PT->getUnderlyingType();
+  argTy = argTy->getWithoutParens();
   
   // If this is the first match against the sugar type we found, use it.
   if (!resultSugarTy) {
diff --git a/lib/Sema/TypeCheckGeneric.cpp b/lib/Sema/TypeCheckGeneric.cpp
index 7fc9cfc..c85abaa 100644
--- a/lib/Sema/TypeCheckGeneric.cpp
+++ b/lib/Sema/TypeCheckGeneric.cpp
@@ -361,27 +361,6 @@
   }
 }
 
-/// Collect all of the generic parameter types at every level in the generic
-/// parameter list.
-static void collectGenericParamTypes(
-              GenericParamList *genericParams,
-              GenericSignature *parentSig,
-              SmallVectorImpl<GenericTypeParamType *> &allParams) {
-  // If the parent context has a generic signature, add its generic parameters.
-  if (parentSig) {
-    allParams.append(parentSig->getGenericParams().begin(),
-                     parentSig->getGenericParams().end());
-  }
-
-  if (genericParams) {
-    // Add our parameters.
-    for (auto param : *genericParams) {
-      allParams.push_back(param->getDeclaredType()
-                            ->castTo<GenericTypeParamType>());
-    }
-  }
-}
-
 /// Check the signature of a generic function.
 static bool checkGenericFuncSignature(TypeChecker &tc,
                                       ArchetypeBuilder *builder,
@@ -508,14 +487,7 @@
 
   // The generic function signature is complete and well-formed. Determine
   // the type of the generic function.
-
-  // Collect the complete set of generic parameter types.
-  SmallVector<GenericTypeParamType *, 4> allGenericParams;
-  collectGenericParamTypes(func->getGenericParams(),
-                           func->getDeclContext()->getGenericSignatureOfContext(),
-                           allGenericParams);
-
-  auto sig = builder.getGenericSignature(allGenericParams);
+  auto sig = builder.getGenericSignature();
 
   // Debugging of the archetype builder and generic signature generation.
   if (Context.LangOpts.DebugGenericSignatures) {
@@ -712,13 +684,8 @@
   checkGenericParamList(nullptr, genericParams, nullptr,
                         nullptr, &completeResolver);
 
-  // The generic signature is complete and well-formed. Gather the
-  // generic parameter types at all levels.
-  SmallVector<GenericTypeParamType *, 4> allGenericParams;
-  collectGenericParamTypes(genericParams, parentSig, allGenericParams);
-
   // Record the generic type parameter types and the requirements.
-  auto sig = builder.getGenericSignature(allGenericParams);
+  auto sig = builder.getGenericSignature();
 
   // Debugging of the archetype builder and generic signature generation.
   if (Context.LangOpts.DebugGenericSignatures) {
@@ -885,7 +852,7 @@
   auto *parentEnv = dc->getGenericEnvironmentOfContext();
   checkGenericParamList(&builder, gp, parentSig, parentEnv, nullptr);
 
-  auto *env = builder.getGenericEnvironment(sig->getGenericParams());
+  auto *env = builder.getGenericEnvironment();
   typeDecl->setGenericEnvironment(env);
 
   finalizeGenericParamList(gp, sig, env, typeDecl);
diff --git a/lib/Sema/TypeCheckType.cpp b/lib/Sema/TypeCheckType.cpp
index df95d39..6c067fb 100644
--- a/lib/Sema/TypeCheckType.cpp
+++ b/lib/Sema/TypeCheckType.cpp
@@ -843,11 +843,43 @@
     tc.diagnose(comp->getIdLoc(), diag::no_module_type,
                 comp->getIdentifier(), moduleType->getModule()->getName());
   } else {
-    tc.diagnose(comp->getIdLoc(), diag::invalid_member_type,
-                comp->getIdentifier(), parentType)
-      .highlight(parentRange);
-  }
+    // Situation where class tries to inherit from itself, such
+    // would produce an assertion when trying to lookup members of the class.
+    auto lazyResolver = tc.Context.getLazyResolver();
+    if (auto superClass = parentType->getSuperclass(lazyResolver)) {
+      if (superClass->isEqual(parentType)) {
+        auto decl = parentType->castTo<NominalType>()->getDecl();
+        tc.diagnose(decl->getLoc(), diag::circular_class_inheritance,
+                    decl->getNameStr());
+        return ErrorType::get(tc.Context);
+      }
+    }
 
+    LookupResult memberLookup;
+    // Let's try to lookup given identifier as a member of the parent type,
+    // this allows for more precise diagnostic, which distinguishes between
+    // identifier not found as a member type vs. not found at all.
+    NameLookupOptions memberLookupOptions = lookupOptions;
+    memberLookupOptions |= NameLookupFlags::IgnoreAccessibility;
+    memberLookupOptions |= NameLookupFlags::KnownPrivate;
+    memberLookupOptions -= NameLookupFlags::OnlyTypes;
+
+    memberLookup = tc.lookupMember(dc, parentType, comp->getIdentifier(),
+                                   memberLookupOptions);
+
+    // Looks like this is not a member type, but simply a member of parent type.
+    if (!memberLookup.empty()) {
+      auto &member = memberLookup[0];
+      tc.diagnose(comp->getIdLoc(), diag::invalid_member_reference,
+                  member->getDescriptiveKind(), comp->getIdentifier(),
+                  parentType)
+          .highlight(parentRange);
+    } else {
+      tc.diagnose(comp->getIdLoc(), diag::invalid_member_type,
+                  comp->getIdentifier(), parentType)
+          .highlight(parentRange);
+    }
+  }
   return ErrorType::get(tc.Context);
 }
 
@@ -1288,75 +1320,15 @@
                                          unsatisfiedDependency);
 }
 
-// FIXME: Merge this with diagAvailability in MiscDiagnostics.cpp.
 static bool checkTypeDeclAvailability(const TypeDecl *TypeDecl,
                                       IdentTypeRepr *IdType,
                                       SourceLoc Loc, DeclContext *DC,
                                       TypeChecker &TC,
                                       bool AllowPotentiallyUnavailableProtocol){
-
-  if (auto CI = dyn_cast<ComponentIdentTypeRepr>(IdType)) {
-    if (auto Attr = AvailableAttr::isUnavailable(TypeDecl)) {
-      switch (Attr->getUnconditionalAvailability()) {
-      case UnconditionalAvailabilityKind::None:
-      case UnconditionalAvailabilityKind::Deprecated:
-        break;
-
-      case UnconditionalAvailabilityKind::Unavailable:
-      case UnconditionalAvailabilityKind::UnavailableInCurrentSwift:
-      case UnconditionalAvailabilityKind::UnavailableInSwift: {
-        bool inSwift = (Attr->getUnconditionalAvailability() ==
-                        UnconditionalAvailabilityKind::UnavailableInSwift);
-
-        if (!Attr->Rename.empty()) {
-          auto diag = TC.diagnose(Loc,
-                                  diag::availability_decl_unavailable_rename,
-                                  CI->getIdentifier(), /*"replaced"*/false,
-                                  /*special kind*/0, Attr->Rename);
-          fixItAvailableAttrRename(TC, diag, Loc, TypeDecl, Attr,
-                                   /*call*/nullptr);
-        } else if (Attr->Message.empty()) {
-          TC.diagnose(Loc,
-                      inSwift ? diag::availability_decl_unavailable_in_swift
-                              : diag::availability_decl_unavailable,
-                      CI->getIdentifier())
-            .highlight(Loc);
-        } else {
-          EncodedDiagnosticMessage EncodedMessage(Attr->Message);
-          TC.diagnose(Loc,
-                      inSwift ? diag::availability_decl_unavailable_in_swift_msg
-                              : diag::availability_decl_unavailable_msg,
-                      CI->getIdentifier(), EncodedMessage.Message)
-            .highlight(Loc);
-        }
-        break;
-      }
-      }
-
-      auto DLoc = TypeDecl->getLoc();
-      if (DLoc.isValid())
-        TC.diagnose(DLoc, diag::availability_marked_unavailable,
-                    CI->getIdentifier()).highlight(Attr->getRange());
-      return true;
-    }
-
-    TC.diagnoseIfDeprecated(CI->getSourceRange(), DC, TypeDecl,
-                            /*call, N/A*/nullptr);
-    
-    if (AllowPotentiallyUnavailableProtocol && isa<ProtocolDecl>(TypeDecl))
-      return false;
-
-    // Check for potential unavailability because of the minimum
-    // deployment version.
-    // We should probably unify this checking for deployment-version API
-    // unavailability with checking for explicitly annotated unavailability.
-    Optional<UnavailabilityReason> Unavail =
-        TC.checkDeclarationAvailability(TypeDecl, Loc, DC);
-    if (Unavail.hasValue()) {
-      TC.diagnosePotentialUnavailability(TypeDecl, CI->getIdentifier(),
-                                         CI->getSourceRange(), DC,
-                                         Unavail.getValue());
-    }
+  if (isa<ComponentIdentTypeRepr>(IdType)) {
+    return diagnoseDeclAvailability(TypeDecl, TC, DC, Loc,
+                                    AllowPotentiallyUnavailableProtocol,
+                                    false);
   }
 
   return false;
@@ -2032,8 +2004,14 @@
   // Handle @escaping
   if (hasFunctionAttr && ty->is<FunctionType>()) {
     if (attrs.has(TAK_escaping)) {
+      // For compatibility with 3.0, we don't emit an error if it appears on a
+      // variadic argument list.
+      bool skipDiagnostic =
+          isVariadicFunctionParam && Context.isSwiftVersion3();
+
       // The attribute is meaningless except on parameter types.
-      if (!isFunctionParam) {
+      bool shouldDiagnose = !isFunctionParam && !skipDiagnostic;
+      if (shouldDiagnose) {
         auto &SM = TC.Context.SourceMgr;
         auto loc = attrs.getLoc(TAK_escaping);
         auto attrRange = SourceRange(
diff --git a/lib/Sema/TypeChecker.cpp b/lib/Sema/TypeChecker.cpp
index 0c85219..701d806 100644
--- a/lib/Sema/TypeChecker.cpp
+++ b/lib/Sema/TypeChecker.cpp
@@ -1383,7 +1383,7 @@
         continue;
       }
 
-      auto *VersionSpec = dyn_cast<VersionConstraintAvailabilitySpec>(Spec);
+      auto *VersionSpec = dyn_cast<PlatformVersionConstraintAvailabilitySpec>(Spec);
       if (!VersionSpec)
         continue;
 
@@ -1407,7 +1407,7 @@
       return AvailabilityContext::alwaysAvailable();
     }
 
-    auto *VersionSpec = cast<VersionConstraintAvailabilitySpec>(Spec);
+    auto *VersionSpec = cast<PlatformVersionConstraintAvailabilitySpec>(Spec);
     return AvailabilityContext(VersionRange::allGTE(VersionSpec->getVersion()));
   }
 
diff --git a/lib/Serialization/Deserialization.cpp b/lib/Serialization/Deserialization.cpp
index b0cc659..cfb6465 100644
--- a/lib/Serialization/Deserialization.cpp
+++ b/lib/Serialization/Deserialization.cpp
@@ -876,6 +876,32 @@
       paramTypes.push_back(paramTy);
       break;
     }
+    case SIL_GENERIC_ENVIRONMENT: {
+      uint64_t rawTypeIDs[2];
+      IdentifierID IID;
+      SILGenericEnvironmentLayout::readRecord(scratch, IID,
+                                              rawTypeIDs[0], rawTypeIDs[1]);
+
+      auto paramTy = getType(rawTypeIDs[0])->castTo<GenericTypeParamType>();
+      auto contextTy = getType(rawTypeIDs[1]);
+
+      // Cons up a sugared type for this generic parameter
+      Identifier name = getIdentifier(IID);
+      auto paramDecl = createDecl<GenericTypeParamDecl>(getAssociatedModule(),
+                                                        name,
+                                                        SourceLoc(),
+                                                        paramTy->getDepth(),
+                                                        paramTy->getIndex());
+      paramTy = paramDecl->getDeclaredInterfaceType()
+          ->castTo<GenericTypeParamType>();
+
+      auto result = interfaceToArchetypeMap.insert(
+          std::make_pair(paramTy, contextTy));
+
+      assert(result.second);
+      paramTypes.push_back(paramTy);
+      break;
+    }
     default:
       // This record is not part of the GenericEnvironment.
       shouldContinue = false;
@@ -889,7 +915,8 @@
   if (interfaceToArchetypeMap.empty())
     return nullptr;
 
-  return GenericEnvironment::get(getContext(), interfaceToArchetypeMap);
+  return GenericEnvironment::get(getContext(), paramTypes,
+                                 interfaceToArchetypeMap);
 }
 
 std::pair<GenericSignature *, GenericEnvironment *>
@@ -2034,19 +2061,25 @@
         DECODE_VER_TUPLE(Deprecated)
         DECODE_VER_TUPLE(Obsoleted)
 
-        UnconditionalAvailabilityKind unconditional;
+        PlatformAgnosticAvailabilityKind platformAgnostic;
         if (isUnavailable)
-          unconditional = UnconditionalAvailabilityKind::Unavailable;
+          platformAgnostic = PlatformAgnosticAvailabilityKind::Unavailable;
         else if (isDeprecated)
-          unconditional = UnconditionalAvailabilityKind::Deprecated;
+          platformAgnostic = PlatformAgnosticAvailabilityKind::Deprecated;
+        else if (((PlatformKind)platform) == PlatformKind::none &&
+                 (!Introduced.empty() ||
+                  !Deprecated.empty() ||
+                  !Obsoleted.empty()))
+          platformAgnostic =
+            PlatformAgnosticAvailabilityKind::SwiftVersionSpecific;
         else
-          unconditional = UnconditionalAvailabilityKind::None;
+          platformAgnostic = PlatformAgnosticAvailabilityKind::None;
 
         Attr = new (ctx) AvailableAttr(
           SourceLoc(), SourceRange(),
           (PlatformKind)platform, message, rename,
           Introduced, Deprecated, Obsoleted,
-          unconditional, isImplicit);
+          platformAgnostic, isImplicit);
         break;
 
 #undef DEF_VER_TUPLE_PIECES
@@ -2207,14 +2240,12 @@
     bool isImplicit;
     unsigned depth;
     unsigned index;
-    ArrayRef<uint64_t> rawInheritedIDs;
 
     decls_block::GenericTypeParamDeclLayout::readRecord(scratch, nameID,
                                                         contextID,
                                                         isImplicit,
                                                         depth,
-                                                        index,
-                                                        rawInheritedIDs);
+                                                        index);
 
     auto DC = ForcedContext ? *ForcedContext : getDeclContext(contextID);
 
@@ -2231,12 +2262,6 @@
     if (isImplicit)
       genericParam->setImplicit();
 
-    auto inherited = ctx.Allocate<TypeLoc>(rawInheritedIDs.size());
-    for_each(inherited, rawInheritedIDs, [this](TypeLoc &loc, uint64_t rawID) {
-      loc.setType(getType(rawID));
-    });
-    genericParam->setInherited(inherited);
-    genericParam->setCheckedInheritanceClause();
     break;
   }
 
diff --git a/lib/Serialization/DeserializeSIL.cpp b/lib/Serialization/DeserializeSIL.cpp
index da0fe26..3266fbc 100644
--- a/lib/Serialization/DeserializeSIL.cpp
+++ b/lib/Serialization/DeserializeSIL.cpp
@@ -1278,7 +1278,6 @@
   UNARY_INSTRUCTION(DeinitExistentialAddr)
   UNARY_INSTRUCTION(DestroyAddr)
   UNARY_INSTRUCTION(IsNonnull)
-  UNARY_INSTRUCTION(Load)
   UNARY_INSTRUCTION(Return)
   UNARY_INSTRUCTION(Throw)
   UNARY_INSTRUCTION(FixLifetime)
@@ -1295,6 +1294,15 @@
 #undef UNARY_INSTRUCTION
 #undef REFCOUNTING_INSTRUCTION
 
+  case ValueKind::LoadInst: {
+    auto Ty = MF->getType(TyID);
+    auto Qualifier = LoadOwnershipQualifier(Attr);
+    ResultVal = Builder.createLoad(
+        Loc, getLocalValue(ValID, getSILType(Ty, (SILValueCategory)TyCategory)),
+        Qualifier);
+    break;
+  }
+
   case ValueKind::LoadUnownedInst: {
     auto Ty = MF->getType(TyID);
     bool isTake = (Attr > 0);
@@ -1324,9 +1332,9 @@
     auto Ty = MF->getType(TyID);
     SILType addrType = getSILType(Ty, (SILValueCategory)TyCategory);
     SILType ValType = addrType.getObjectType();
-    ResultVal = Builder.createStore(Loc,
-                    getLocalValue(ValID, ValType),
-                    getLocalValue(ValID2, addrType));
+    auto Qualifier = StoreOwnershipQualifier(Attr);
+    ResultVal = Builder.createStore(Loc, getLocalValue(ValID, ValType),
+                                    getLocalValue(ValID2, addrType), Qualifier);
     break;
   }
   case ValueKind::StoreUnownedInst: {
diff --git a/lib/Serialization/ModuleFile.cpp b/lib/Serialization/ModuleFile.cpp
index f0f9b75..53ead90 100644
--- a/lib/Serialization/ModuleFile.cpp
+++ b/lib/Serialization/ModuleFile.cpp
@@ -716,10 +716,14 @@
   if (moduleTarget.getArch() == ctxTarget.getArch())
     return true;
 
-  auto archPair = std::minmax(moduleTarget.getArch(), ctxTarget.getArch());
-  if (archPair == std::minmax(llvm::Triple::arm, llvm::Triple::thumb))
+  // Special case: ARM and Thumb are compatible.
+  const llvm::Triple::ArchType moduleArch = moduleTarget.getArch();
+  const llvm::Triple::ArchType ctxArch = ctxTarget.getArch();
+  if ((moduleArch == llvm::Triple::arm && ctxArch == llvm::Triple::thumb) ||
+      (moduleArch == llvm::Triple::thumb && ctxArch == llvm::Triple::arm))
     return true;
-  if (archPair == std::minmax(llvm::Triple::armeb, llvm::Triple::thumbeb))
+  if ((moduleArch == llvm::Triple::armeb && ctxArch == llvm::Triple::thumbeb) ||
+      (moduleArch == llvm::Triple::thumbeb && ctxArch == llvm::Triple::armeb))
     return true;
 
   return false;
@@ -730,8 +734,11 @@
   if (moduleTarget.getOS() == ctxTarget.getOS())
     return true;
 
-  auto osPair = std::minmax(moduleTarget.getOS(), ctxTarget.getOS());
-  if (osPair == std::minmax(llvm::Triple::Darwin, llvm::Triple::MacOSX))
+  // Special case: macOS and Darwin are compatible.
+  const llvm::Triple::OSType moduleOS = moduleTarget.getOS();
+  const llvm::Triple::OSType ctxOS = ctxTarget.getOS();
+  if ((moduleOS == llvm::Triple::Darwin && ctxOS == llvm::Triple::MacOSX) ||
+      (moduleOS == llvm::Triple::MacOSX && ctxOS == llvm::Triple::Darwin))
     return true;
 
   return false;
diff --git a/lib/Serialization/SILFormat.h b/lib/Serialization/SILFormat.h
index f42666a..3cba3bb 100644
--- a/lib/Serialization/SILFormat.h
+++ b/lib/Serialization/SILFormat.h
@@ -141,7 +141,6 @@
     SIL_DEFAULT_WITNESS_TABLE,
     SIL_DEFAULT_WITNESS_TABLE_ENTRY,
     SIL_DEFAULT_WITNESS_TABLE_NO_ENTRY,
-    SIL_GENERIC_OUTER_PARAMS,
     SIL_INST_WITNESS_METHOD,
     SIL_SPECIALIZE_ATTR,
 
@@ -154,7 +153,6 @@
       = decls_block::SPECIALIZED_PROTOCOL_CONFORMANCE,
     INHERITED_PROTOCOL_CONFORMANCE
       = decls_block::INHERITED_PROTOCOL_CONFORMANCE,
-    GENERIC_PARAM_LIST = decls_block::GENERIC_PARAM_LIST,
     GENERIC_PARAM = decls_block::GENERIC_PARAM,
     GENERIC_REQUIREMENT = decls_block::GENERIC_REQUIREMENT,
   };
@@ -385,11 +383,6 @@
     TypeIDField           // Result type
   >;
 
-  using SILGenericOuterParamsLayout = BCRecordLayout<
-    SIL_GENERIC_OUTER_PARAMS,
-    DeclIDField // The decl id of the outer param if any.
-  >;
-
   using SILInstWitnessMethodLayout = BCRecordLayout<
     SIL_INST_WITNESS_METHOD,
     TypeIDField,           // result type
diff --git a/lib/Serialization/Serialization.cpp b/lib/Serialization/Serialization.cpp
index 07af22d..7bdb743 100644
--- a/lib/Serialization/Serialization.cpp
+++ b/lib/Serialization/Serialization.cpp
@@ -501,7 +501,6 @@
   BLOCK_RECORD(sil_block, SIL_DEFAULT_WITNESS_TABLE);
   BLOCK_RECORD(sil_block, SIL_DEFAULT_WITNESS_TABLE_ENTRY);
   BLOCK_RECORD(sil_block, SIL_DEFAULT_WITNESS_TABLE_NO_ENTRY);
-  BLOCK_RECORD(sil_block, SIL_GENERIC_OUTER_PARAMS);
   BLOCK_RECORD(sil_block, SIL_INST_WITNESS_METHOD);
   BLOCK_RECORD(sil_block, SIL_SPECIALIZE_ATTR);
 
@@ -529,6 +528,8 @@
                               decls_block::GENERIC_REQUIREMENT);
   BLOCK_RECORD_WITH_NAMESPACE(sil_block,
                               decls_block::GENERIC_ENVIRONMENT);
+  BLOCK_RECORD_WITH_NAMESPACE(sil_block,
+                              decls_block::SIL_GENERIC_ENVIRONMENT);
 
   BLOCK(SIL_INDEX_BLOCK);
   BLOCK_RECORD(sil_index_block, SIL_FUNC_NAMES);
@@ -971,24 +972,32 @@
   return true;
 }
 
-void Serializer::writeGenericEnvironment(GenericSignature *sig,
-                                         GenericEnvironment *env,
+void Serializer::writeGenericEnvironment(GenericEnvironment *env,
                                   const std::array<unsigned, 256> &abbrCodes) {
   using namespace decls_block;
 
   if (env == nullptr)
     return;
 
-  auto envAbbrCode = abbrCodes[GenericEnvironmentLayout::Code];
-
-  // Iterate over the signature's generic parameters, for stable
-  // iteration order.
-  for (auto *paramTy : sig->getGenericParams()) {
+  for (auto *paramTy : env->getGenericParams()) {
     auto contextTy = env->mapTypeIntoContext(paramTy);
-    GenericEnvironmentLayout::emitRecord(
-      Out, ScratchRecord, envAbbrCode,
-      addTypeRef(paramTy),
-      addTypeRef(contextTy));
+    auto *decl = paramTy->getDecl();
+
+    if (decl && decl->getDeclContext()->isModuleScopeContext()) {
+      auto envAbbrCode = abbrCodes[SILGenericEnvironmentLayout::Code];
+      auto nameID = addIdentifierRef(decl->getName());
+      SILGenericEnvironmentLayout::emitRecord(
+        Out, ScratchRecord, envAbbrCode,
+        nameID,
+        addTypeRef(paramTy->getCanonicalType()),
+        addTypeRef(contextTy));
+    } else {
+      auto envAbbrCode = abbrCodes[GenericEnvironmentLayout::Code];
+      GenericEnvironmentLayout::emitRecord(
+        Out, ScratchRecord, envAbbrCode,
+        addTypeRef(paramTy),
+        addTypeRef(contextTy));
+    }
   }
 }
 
@@ -2056,8 +2065,7 @@
     }
 
     writeGenericParams(extension->getGenericParams());
-    writeGenericEnvironment(extension->getGenericSignature(),
-                            extension->getGenericEnvironment(),
+    writeGenericEnvironment(extension->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(extension->getGenericRequirements());
     writeMembers(extension->getMembers(), isClassExtension);
@@ -2192,8 +2200,7 @@
                                 typeAlias->isImplicit(),
                                 rawAccessLevel);
     writeGenericParams(typeAlias->getGenericParams());
-    writeGenericEnvironment(typeAlias->getGenericSignature(),
-                            typeAlias->getGenericEnvironment(),
+    writeGenericEnvironment(typeAlias->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(typeAlias->getGenericRequirements());
     break;
@@ -2205,18 +2212,13 @@
 
     auto contextID = addDeclContextRef(genericParam->getDeclContext());
 
-    SmallVector<TypeID, 4> inheritedTypes;
-    for (auto inherited : genericParam->getInherited())
-      inheritedTypes.push_back(addTypeRef(inherited.getType()));
-
     unsigned abbrCode = DeclTypeAbbrCodes[GenericTypeParamDeclLayout::Code];
     GenericTypeParamDeclLayout::emitRecord(Out, ScratchRecord, abbrCode,
                                 addIdentifierRef(genericParam->getName()),
                                 contextID,
                                 genericParam->isImplicit(),
                                 genericParam->getDepth(),
-                                genericParam->getIndex(),
-                                inheritedTypes);
+                                genericParam->getIndex());
     break;
   }
 
@@ -2269,8 +2271,7 @@
 
 
     writeGenericParams(theStruct->getGenericParams());
-    writeGenericEnvironment(theStruct->getGenericSignature(),
-                            theStruct->getGenericEnvironment(),
+    writeGenericEnvironment(theStruct->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(theStruct->getGenericRequirements());
     writeMembers(theStruct->getMembers(), false);
@@ -2306,8 +2307,7 @@
                             inheritedTypes);
 
     writeGenericParams(theEnum->getGenericParams());
-    writeGenericEnvironment(theEnum->getGenericSignature(),
-                            theEnum->getGenericEnvironment(),
+    writeGenericEnvironment(theEnum->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(theEnum->getGenericRequirements());
     writeMembers(theEnum->getMembers(), false);
@@ -2346,8 +2346,7 @@
                             inheritedTypes);
 
     writeGenericParams(theClass->getGenericParams());
-    writeGenericEnvironment(theClass->getGenericSignature(),
-                            theClass->getGenericEnvironment(),
+    writeGenericEnvironment(theClass->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(theClass->getGenericRequirements());
     writeMembers(theClass->getMembers(), true);
@@ -2385,8 +2384,7 @@
                                protocolsAndInherited);
 
     writeGenericParams(proto->getGenericParams());
-    writeGenericEnvironment(proto->getGenericSignature(),
-                            proto->getGenericEnvironment(),
+    writeGenericEnvironment(proto->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
     writeGenericRequirements(proto->getGenericRequirements());
     writeMembers(proto->getMembers(), true);
@@ -2489,8 +2487,7 @@
                            nameComponents);
 
     writeGenericParams(fn->getGenericParams());
-    writeGenericEnvironment(fn->getGenericSignature(),
-                            fn->getGenericEnvironment(),
+    writeGenericEnvironment(fn->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
 
     // Write the body parameters.
@@ -2609,8 +2606,7 @@
                                   nameComponents);
 
     writeGenericParams(ctor->getGenericParams());
-    writeGenericEnvironment(ctor->getGenericSignature(),
-                            ctor->getGenericEnvironment(),
+    writeGenericEnvironment(ctor->getGenericEnvironment(),
                             DeclTypeAbbrCodes);
 
     assert(ctor->getParameterLists().size() == 2);
@@ -2675,6 +2671,7 @@
   SIMPLE_CASE(SILFunctionTypeRepresentation, Method)
   SIMPLE_CASE(SILFunctionTypeRepresentation, ObjCMethod)
   SIMPLE_CASE(SILFunctionTypeRepresentation, WitnessMethod)
+  SIMPLE_CASE(SILFunctionTypeRepresentation, Closure)
   }
   llvm_unreachable("bad calling convention");
 }
diff --git a/lib/Serialization/Serialization.h b/lib/Serialization/Serialization.h
index dc8486b..809b50a 100644
--- a/lib/Serialization/Serialization.h
+++ b/lib/Serialization/Serialization.h
@@ -416,8 +416,7 @@
                         const std::array<unsigned, 256> &abbrCodes);
 
   /// Writes a generic environment.
-  void writeGenericEnvironment(GenericSignature *sig,
-                               GenericEnvironment *env,
+  void writeGenericEnvironment(GenericEnvironment *env,
                          const std::array<unsigned, 256> &abbrCodes);
 
 };
diff --git a/lib/Serialization/SerializeSIL.cpp b/lib/Serialization/SerializeSIL.cpp
index 5194984..6a0421e 100644
--- a/lib/Serialization/SerializeSIL.cpp
+++ b/lib/Serialization/SerializeSIL.cpp
@@ -374,10 +374,8 @@
 
   // Write the body's context archetypes, unless we don't actually have a body.
   if (!F.isExternalDeclaration()) {
-    if (auto genericEnv = F.getGenericEnvironment()) {
-      auto genericSig = F.getLoweredFunctionType()->getGenericSignature();
-      S.writeGenericEnvironment(genericSig, genericEnv, SILAbbrCodes);
-    }
+    if (auto genericEnv = F.getGenericEnvironment())
+      S.writeGenericEnvironment(genericEnv, SILAbbrCodes);
   }
 
   // Assign a unique ID to each basic block of the SILFunction.
@@ -1020,7 +1018,9 @@
   case ValueKind::ReturnInst:
   case ValueKind::ThrowInst: {
     unsigned Attr = 0;
-    if (auto *LWI = dyn_cast<LoadWeakInst>(&SI))
+    if (auto *LI = dyn_cast<LoadInst>(&SI))
+      Attr = unsigned(LI->getOwnershipQualifier());
+    else if (auto *LWI = dyn_cast<LoadWeakInst>(&SI))
       Attr = LWI->isTake();
     else if (auto *LUI = dyn_cast<LoadUnownedInst>(&SI))
       Attr = LUI->isTake();
@@ -1275,6 +1275,7 @@
       operand = cast<StoreUnownedInst>(&SI)->getDest();
       value = cast<StoreUnownedInst>(&SI)->getSrc();
     } else if (SI.getKind() == ValueKind::StoreInst) {
+      Attr = unsigned(cast<StoreInst>(&SI)->getOwnershipQualifier());
       operand = cast<StoreInst>(&SI)->getDest();
       value = cast<StoreInst>(&SI)->getSrc();
     } else if (SI.getKind() == ValueKind::AssignInst) {
@@ -1862,7 +1863,6 @@
   registerSILAbbr<DefaultWitnessTableLayout>();
   registerSILAbbr<DefaultWitnessTableEntryLayout>();
   registerSILAbbr<DefaultWitnessTableNoEntryLayout>();
-  registerSILAbbr<SILGenericOuterParamsLayout>();
 
   registerSILAbbr<SILInstCastLayout>();
   registerSILAbbr<SILInstWitnessMethodLayout>();
@@ -1881,6 +1881,7 @@
   registerSILAbbr<decls_block::ProtocolConformanceXrefLayout>();
   registerSILAbbr<decls_block::GenericRequirementLayout>();
   registerSILAbbr<decls_block::GenericEnvironmentLayout>();
+  registerSILAbbr<decls_block::SILGenericEnvironmentLayout>();
 
   for (const SILGlobalVariable &g : SILMod->getSILGlobals())
     writeSILGlobalVar(g);
diff --git a/stdlib/public/SDK/Dispatch/Time.swift b/stdlib/public/SDK/Dispatch/Time.swift
index c6fd23c..6b32440 100644
--- a/stdlib/public/SDK/Dispatch/Time.swift
+++ b/stdlib/public/SDK/Dispatch/Time.swift
@@ -45,7 +45,6 @@
 }
 
 public func <(a: DispatchTime, b: DispatchTime) -> Bool {
-	if a.rawValue == ~0 || b.rawValue == ~0 { return false }
 	return a.rawValue < b.rawValue
 }
 
@@ -73,8 +72,12 @@
 }
 
 public func <(a: DispatchWallTime, b: DispatchWallTime) -> Bool {
-	if a.rawValue == ~0 || b.rawValue == ~0 { return false }
-	return -Int64(a.rawValue) < -Int64(b.rawValue)
+	if b.rawValue == ~0 {
+		return a.rawValue != ~0
+	} else if a.rawValue == ~0 {
+		return false
+	}
+	return -Int64(bitPattern: a.rawValue) < -Int64(bitPattern: b.rawValue)
 }
 
 public func ==(a: DispatchWallTime, b: DispatchWallTime) -> Bool {
diff --git a/stdlib/public/SDK/Foundation/CMakeLists.txt b/stdlib/public/SDK/Foundation/CMakeLists.txt
index faee3a4..dbe92fe 100644
--- a/stdlib/public/SDK/Foundation/CMakeLists.txt
+++ b/stdlib/public/SDK/Foundation/CMakeLists.txt
@@ -1,39 +1,56 @@
 add_swift_library(swiftFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
-  Foundation.swift.gyb
-  Boxing.swift
-  NSError.swift
-  NSStringAPI.swift
-  NSValue.swift.gyb
-  ExtraStringAPIs.swift
-  ReferenceConvertible.swift
   AffineTransform.swift
+  Boxing.swift
   Calendar.swift
-  TimeZone.swift
-  Locale.swift
   CharacterSet.swift
+  Data.swift
+  DataThunks.m
   Date.swift
   DateComponents.swift
   DateInterval.swift
-  Data.swift
-  DataThunks.m
   Decimal.swift
+  ExtraStringAPIs.swift
   FileManager.swift
   FileManagerThunks.m
+  Foundation.swift
+  Hashing.m
+  Hashing.swift
   IndexPath.swift
   IndexSet.swift
   IndexSetThunks.m
+  Locale.swift
   Measurement.swift
   Notification.swift
+  NSArray.swift
+  NSCoder.swift
+  NSDate.swift
+  NSDictionary.swift
+  NSError.swift
+  NSExpression.swift
+  NSFastEnumeration.swift
+  NSGeometry.swift
+  NSIndexSet.swift
+  NSNumber.swift.gyb
+  NSPredicate.swift
+  NSRange.swift
+  NSSet.swift
+  NSString.swift
+  NSStringAPI.swift
   NSStringEncodings.swift
+  NSTextCheckingResult.swift
+  NSUndoManager.swift
+  NSURL.swift
+  NSValue.swift.gyb
   PersonNameComponents.swift
+  ReferenceConvertible.swift
+  String.swift
+  Thunks.mm
+  TimeZone.swift
   TypePreservingNSNumber.mm
   URL.swift
   URLComponents.swift
   URLRequest.swift
   UUID.swift
-  Hashing.swift
-  Hashing.m
-  Thunks.mm
 
   SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
   LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
diff --git a/stdlib/public/SDK/Foundation/CharacterSet.swift b/stdlib/public/SDK/Foundation/CharacterSet.swift
index 324e4c2..279ad1a 100644
--- a/stdlib/public/SDK/Foundation/CharacterSet.swift
+++ b/stdlib/public/SDK/Foundation/CharacterSet.swift
@@ -406,19 +406,29 @@
         return result
     }
     
-    /// Sets the value to the intersection of the `CharacterSet` with another `CharacterSet`.
+    /// Sets the value to an intersection of the `CharacterSet` with another `CharacterSet`.
     public mutating func formIntersection(_ other: CharacterSet) {
         _applyUnmanagedMutation {
             $0.formIntersection(with: other)
         }
     }
-    
-    /// Returns the exclusive or of the `CharacterSet` with another `CharacterSet`.
+
+    /// Returns a `CharacterSet` created by removing elements in `other` from `self`.
+    public func subtracting(_ other: CharacterSet) -> CharacterSet {
+        return intersection(other.inverted)
+    }
+
+    /// Sets the value to a `CharacterSet` created by removing elements in `other` from `self`.
+    public mutating func subtract(_ other: CharacterSet) {
+        self = subtracting(other)
+    }
+
+    /// Returns an exclusive or of the `CharacterSet` with another `CharacterSet`.
     public func symmetricDifference(_ other: CharacterSet) -> CharacterSet {
         return union(other).subtracting(intersection(other))
     }
     
-    /// Sets the value to the exclusive or of the `CharacterSet` with another `CharacterSet`.
+    /// Sets the value to an exclusive or of the `CharacterSet` with another `CharacterSet`.
     public mutating func formSymmetricDifference(_ other: CharacterSet) {
         self = symmetricDifference(other)
     }
diff --git a/stdlib/public/SDK/Foundation/Foundation.swift b/stdlib/public/SDK/Foundation/Foundation.swift
new file mode 100644
index 0000000..75f068b
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/Foundation.swift
@@ -0,0 +1,97 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+import CoreFoundation
+import CoreGraphics
+
+//===----------------------------------------------------------------------===//
+// NSObject
+//===----------------------------------------------------------------------===//
+
+// These conformances should be located in the `ObjectiveC` module, but they can't
+// be placed there because string bridging is not available there.
+extension NSObject : CustomStringConvertible {}
+extension NSObject : CustomDebugStringConvertible {}
+
+public let NSNotFound: Int = .max
+
+//===----------------------------------------------------------------------===//
+// NSLocalizedString
+//===----------------------------------------------------------------------===//
+
+/// Returns a localized string, using the main bundle if one is not specified.
+public
+func NSLocalizedString(_ key: String,
+                       tableName: String? = nil,
+                       bundle: Bundle = Bundle.main,
+                       value: String = "",
+                       comment: String) -> String {
+  return bundle.localizedString(forKey: key, value:value, table:tableName)
+}
+
+//===----------------------------------------------------------------------===//
+// NSLog
+//===----------------------------------------------------------------------===//
+
+public func NSLog(_ format: String, _ args: CVarArg...) {
+  withVaList(args) { NSLogv(format, $0) }
+}
+
+//===----------------------------------------------------------------------===//
+// AnyHashable
+//===----------------------------------------------------------------------===//
+
+extension AnyHashable : _ObjectiveCBridgeable {
+  public func _bridgeToObjectiveC() -> NSObject {
+    // This is unprincipled, but pretty much any object we'll encounter in
+    // Swift is NSObject-conforming enough to have -hash and -isEqual:.
+    return unsafeBitCast(base as AnyObject, to: NSObject.self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ x: NSObject,
+    result: inout AnyHashable?
+  ) {
+    result = AnyHashable(x)
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSObject,
+    result: inout AnyHashable?
+  ) -> Bool {
+    self._forceBridgeFromObjectiveC(x, result: &result)
+    return result != nil
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSObject?
+  ) -> AnyHashable {
+    // `nil` has historically been used as a stand-in for an empty
+    // string; map it to an empty string.
+    if _slowPath(source == nil) { return AnyHashable(String()) }
+    return AnyHashable(source!)
+  }
+}
+
+//===----------------------------------------------------------------------===//
+// CVarArg for bridged types
+//===----------------------------------------------------------------------===//
+
+extension CVarArg where Self: _ObjectiveCBridgeable {
+  /// Default implementation for bridgeable types.
+  public var _cVarArgEncoding: [Int] {
+    let object = self._bridgeToObjectiveC()
+    _autorelease(object)
+    return _encodeBitsAsWords(object)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/Foundation.swift.gyb b/stdlib/public/SDK/Foundation/Foundation.swift.gyb
deleted file mode 100644
index cc41ff8..0000000
--- a/stdlib/public/SDK/Foundation/Foundation.swift.gyb
+++ /dev/null
@@ -1,1620 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// This source file is part of the Swift.org open source project
-//
-// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
-// Licensed under Apache License v2.0 with Runtime Library Exception
-//
-// See http://swift.org/LICENSE.txt for license information
-// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
-//
-//===----------------------------------------------------------------------===//
-
-@_exported import Foundation // Clang module
-import CoreFoundation
-import CoreGraphics
-
-//===----------------------------------------------------------------------===//
-// NSObject
-//===----------------------------------------------------------------------===//
-
-// These conformances should be located in the `ObjectiveC` module, but they can't
-// be placed there because string bridging is not available there.
-extension NSObject : CustomStringConvertible {}
-extension NSObject : CustomDebugStringConvertible {}
-
-//===----------------------------------------------------------------------===//
-// Strings
-//===----------------------------------------------------------------------===//
-
-@available(*, unavailable, message: "Please use String or NSString")
-public class NSSimpleCString {}
-
-@available(*, unavailable, message: "Please use String or NSString")
-public class NSConstantString {}
-
-@_silgen_name("swift_convertStringToNSString")
-public // COMPILER_INTRINSIC
-func _convertStringToNSString(_ string: String) -> NSString {
-  return string._bridgeToObjectiveC()
-}
-
-extension NSString : ExpressibleByStringLiteral {
-  /// Create an instance initialized to `value`.
-  public required convenience init(unicodeScalarLiteral value: StaticString) {
-    self.init(stringLiteral: value)
-  }
-
-  public required convenience init(
-    extendedGraphemeClusterLiteral value: StaticString
-  ) {
-    self.init(stringLiteral: value)
-  }
-
-  /// Create an instance initialized to `value`.
-  public required convenience init(stringLiteral value: StaticString) {
-    var immutableResult: NSString
-    if value.hasPointerRepresentation {
-      immutableResult = NSString(
-        bytesNoCopy: UnsafeMutableRawPointer(mutating: value.utf8Start),
-        length: Int(value.utf8CodeUnitCount),
-        encoding: value.isASCII ? String.Encoding.ascii.rawValue : String.Encoding.utf8.rawValue,
-        freeWhenDone: false)!
-    } else {
-      var uintValue = value.unicodeScalar
-      immutableResult = NSString(
-        bytes: &uintValue,
-        length: 4,
-        encoding: String.Encoding.utf32.rawValue)!
-    }
-    self.init(string: immutableResult as String)
-  }
-}
-
-extension NSString : _HasCustomAnyHashableRepresentation {
-  // Must be @nonobjc to prevent infinite recursion trying to bridge
-  // AnyHashable to NSObject.
-  @nonobjc
-  public func _toCustomAnyHashable() -> AnyHashable? {
-    // Consistently use Swift equality and hashing semantics for all strings.
-    return AnyHashable(self as String)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// New Strings
-//===----------------------------------------------------------------------===//
-
-//
-// Conversion from NSString to Swift's native representation
-//
-
-extension String {
-  public init(_ cocoaString: NSString) {
-    self = String(_cocoaString: cocoaString)
-  }
-}
-
-extension String : _ObjectiveCBridgeable {
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSString {
-    // This method should not do anything extra except calling into the
-    // implementation inside core.  (These two entry points should be
-    // equivalent.)
-    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject, to: NSString.self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ x: NSString,
-    result: inout String?
-  ) {
-    result = String(x)
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSString,
-    result: inout String?
-  ) -> Bool {
-    self._forceBridgeFromObjectiveC(x, result: &result)
-    return result != nil
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSString?
-  ) -> String {
-    // `nil` has historically been used as a stand-in for an empty
-    // string; map it to an empty string.
-    if _slowPath(source == nil) { return String() }
-    return String(source!)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// Numbers
-//===----------------------------------------------------------------------===//
-
-@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetKind")
-internal func _swift_Foundation_TypePreservingNSNumberGetKind(
-  _ value: NSNumber
-) -> UInt8
-
-// This enum has a matching counterpart in TypePreservingNSNumber.mm. Please
-// update both copies when changing it.
-internal enum _SwiftTypePreservingNSNumberTag : UInt8 {
-  case SwiftInt     =  0
-  case SwiftInt64   =  1
-  case SwiftInt32   =  2
-  case SwiftInt16   =  3
-  case SwiftInt8    =  4
-  case SwiftUInt    =  5
-  case SwiftUInt64  =  6
-  case SwiftUInt32  =  7
-  case SwiftUInt16  =  8
-  case SwiftUInt8   =  9
-  case SwiftFloat   = 10
-  case SwiftDouble  = 11
-  case SwiftCGFloat = 12
-  case SwiftBool    = 13
-}
-
-// Conversions between NSNumber and various numeric types. The
-// conversion to NSNumber is automatic (auto-boxing), while conversion
-// back to a specific numeric type requires a cast.
-
-%{
-# The set of types we bridge to NSNumber using a Swift-type-preserving
-# subclass. Note that this doesn't include Bool or CGFloat, which require
-# special handling.
-bridgedNumberTypes = [
-  ('Int',     'int'),
-  ('Int64',   'int64'),
-  ('Int32',   'int32'),
-  ('Int16',   'int16'),
-  ('Int8',    'int8'),
-  ('UInt',    'uint'),
-  ('UInt64',  'uint64'),
-  ('UInt32',  'uint32'),
-  ('UInt16',  'uint16'),
-  ('UInt8',   'uint8'),
-  ('Float',   'float'),
-  ('Double',  'double'),
-]
-}%
-
-% for NumberType, accessorName in bridgedNumberTypes:
-
-@_silgen_name("_swift_Foundation_TypePreservingNSNumberWith${NumberType}")
-internal func _swift_Foundation_TypePreservingNSNumberWith${NumberType}(
-  _ value: ${NumberType}
-) -> NSNumber
-
-@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetAs${NumberType}")
-internal func _swift_Foundation_TypePreservingNSNumberGetAs${NumberType}(
-  _ value: NSNumber
-) -> ${NumberType}
-
-extension ${NumberType} : _ObjectiveCBridgeable {
-  public init(_ number: NSNumber) {
-    self = number.${accessorName}Value
-  }
-
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSNumber {
-    return _swift_Foundation_TypePreservingNSNumberWith${NumberType}(self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout ${NumberType}?
-  ) {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
-      precondition(tag == .Swift${NumberType},
-        "NSNumber does not contain right type to be cast to ${NumberType}")
-    }
-
-    result = x.${accessorName}Value
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout ${NumberType}?
-  ) -> Bool {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
-       tag != .Swift${NumberType} {
-      result = nil
-      return false
-    }
-
-    result = x.${accessorName}Value
-    return true
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSNumber?
-  ) -> ${NumberType} {
-    let unwrappedSource = source!
-
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
-      precondition(tag == .Swift${NumberType},
-        "NSNumber does not contain right type to be cast to ${NumberType}")
-    }
-
-    return unwrappedSource.${accessorName}Value
-  }
-}
-% end
-
-// Cocoa's implementation of NSNumber already preserves the type of Bool
-// values by producing a CFBoolean instance instead of a CFNumber instance
-// under the hood. Property list and JSON serialization in Foundation rely
-// on -[NSNumber numberWithBool:] producing the correct implementation-
-// internal subclass to know when to serialize as a boolean instead of a
-// number, so implement Bool's bridging in terms of the standard NSNumber
-// interfaces.
-extension Bool: _ObjectiveCBridgeable {
-  public init(_ number: NSNumber) {
-    self = number.boolValue
-  }
-
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSNumber {
-    return NSNumber(value: self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout Bool?
-  ) {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
-      precondition(tag == .SwiftBool,
-        "NSNumber does not contain right type to be cast to Bool")
-    }
-
-    result = x.boolValue
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout Bool?
-  ) -> Bool {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
-       tag != .SwiftBool {
-      result = nil
-      return false
-    }
-
-    result = x.boolValue
-    return true
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSNumber?
-  ) -> Bool {
-    let unwrappedSource = source!
-
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
-      precondition(tag == .SwiftBool,
-        "NSNumber does not contain right type to be cast to Bool")
-    }
-
-    return unwrappedSource.boolValue
-  }
-}
-
-// CGFloat bridging.
-
-@_silgen_name("_swift_Foundation_TypePreservingNSNumberWithCGFloat")
-internal func _swift_Foundation_TypePreservingNSNumberWithCGFloat(
-  _ value: CGFloat
-) -> NSNumber
-
-@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetAsCGFloat")
-internal func _swift_Foundation_TypePreservingNSNumberGetAsCGFloat(
-  _ value: NSNumber
-) -> CGFloat
-
-extension CGFloat : _ObjectiveCBridgeable {
-  public init(_ number: NSNumber) {
-    self.native = CGFloat.NativeType(number)
-  }
-
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSNumber {
-    return _swift_Foundation_TypePreservingNSNumberWithCGFloat(self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout CGFloat?
-  ) {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
-      precondition(tag == .SwiftCGFloat,
-        "NSNumber does not contain right type to be cast to CGFloat")
-    }
-    
-    result = CGFloat(x)
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSNumber,
-    result: inout CGFloat?
-  ) -> Bool {
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
-       tag != .SwiftCGFloat {
-      result = nil
-      return false
-    }
-
-    result = CGFloat(x)
-    return true
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSNumber?
-  ) -> CGFloat {
-    let unwrappedSource = source!
-
-    // If the NSNumber instance preserved its Swift type, we only want to allow
-    // the cast if the type matches.
-    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
-        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
-      precondition(tag == .SwiftCGFloat,
-        "NSNumber does not contain right type to be cast to CGFloat")
-    }
-
-    return CGFloat(unwrappedSource)
-  }
-}
-
-// Literal support for NSNumber
-extension NSNumber
-  : ExpressibleByFloatLiteral,
-    ExpressibleByIntegerLiteral,
-    ExpressibleByBooleanLiteral
-{
-  /// Create an instance initialized to `value`.
-  public required convenience init(integerLiteral value: Int) {
-    self.init(value: value)
-  }
-
-  /// Create an instance initialized to `value`.
-  public required convenience init(floatLiteral value: Double) {
-    self.init(value: value)
-  }
-
-  /// Create an instance initialized to `value`.
-  public required convenience init(booleanLiteral value: Bool) {
-    self.init(value: value)
-  }
-}
-
-extension NSNumber : _HasCustomAnyHashableRepresentation {
-  // Must be @nonobjc to prevent infinite recursion trying to bridge
-  // AnyHashable to NSObject.
-  @nonobjc
-  public func _toCustomAnyHashable() -> AnyHashable? {
-    guard let kind = _SwiftTypePreservingNSNumberTag(
-      rawValue: _swift_Foundation_TypePreservingNSNumberGetKind(self)
-    ) else {
-      if let nsDecimalNumber: NSDecimalNumber = self as? NSDecimalNumber {
-        return AnyHashable(nsDecimalNumber as Decimal)
-      }
-      return nil
-    }
-    switch kind {
-% for NumberType, _ in bridgedNumberTypes:
-    case .Swift${NumberType}:
-      return AnyHashable(_swift_Foundation_TypePreservingNSNumberGetAs${NumberType}(self))
-% end
-    case .SwiftCGFloat:
-      return AnyHashable(_swift_Foundation_TypePreservingNSNumberGetAsCGFloat(self))
-    case .SwiftBool:
-      return AnyHashable(self.boolValue)
-    }
-  }
-}
-
-public let NSNotFound: Int = .max
-
-//===----------------------------------------------------------------------===//
-// Arrays
-//===----------------------------------------------------------------------===//
-
-extension NSArray : ExpressibleByArrayLiteral {
-  /// Create an instance initialized with `elements`.
-  public required convenience init(arrayLiteral elements: Any...) {
-    // Let bridging take care of it.
-    self.init(array: elements)
-  }
-}
-
-extension Array : _ObjectiveCBridgeable {
-
-  /// Private initializer used for bridging.
-  ///
-  /// The provided `NSArray` will be copied to ensure that the copy can
-  /// not be mutated by other code.
-  internal init(_cocoaArray: NSArray) {
-    _sanityCheck(_isBridgedVerbatimToObjectiveC(Element.self),
-      "Array can be backed by NSArray only when the element type can be bridged verbatim to Objective-C")
-    // FIXME: We would like to call CFArrayCreateCopy() to avoid doing an
-    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
-    // today because CFArrayCreateCopy() copies array contents unconditionally,
-    // resulting in O(n) copies even for immutable arrays.
-    //
-    // <rdar://problem/19773555> CFArrayCreateCopy() is >10x slower than
-    // -[NSArray copyWithZone:]
-    //
-    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
-    // and watchOS.
-    self = Array(
-      _immutableCocoaArray:
-        unsafeBitCast(_cocoaArray.copy() as AnyObject, to: _NSArrayCore.self))
-  }
-
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSArray {
-    return unsafeBitCast(self._bridgeToObjectiveCImpl(), to: NSArray.self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ source: NSArray,
-    result: inout Array?
-  ) {
-    // If we have the appropriate native storage already, just adopt it.
-    if let native =
-        Array._bridgeFromObjectiveCAdoptingNativeStorageOf(source) {
-      result = native
-      return
-    }
-
-    if _fastPath(_isBridgedVerbatimToObjectiveC(Element.self)) {
-      // Forced down-cast (possible deferred type-checking)
-      result = Array(_cocoaArray: source)
-      return
-    }
-
-    result = _arrayForceCast([AnyObject](_cocoaArray: source))
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ source: NSArray,
-    result: inout Array?
-  ) -> Bool {
-    // Construct the result array by conditionally bridging each element.
-    let anyObjectArr = [AnyObject](_cocoaArray: source)
-
-    result = _arrayConditionalCast(anyObjectArr)
-    return result != nil
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSArray?
-  ) -> Array {
-    // `nil` has historically been used as a stand-in for an empty
-    // array; map it to an empty array instead of failing.
-    if _slowPath(source == nil) { return Array() }
-
-    // If we have the appropriate native storage already, just adopt it.
-    if let native =
-        Array._bridgeFromObjectiveCAdoptingNativeStorageOf(source!) {
-      return native
-    }
-
-    if _fastPath(_isBridgedVerbatimToObjectiveC(Element.self)) {
-      // Forced down-cast (possible deferred type-checking)
-      return Array(_cocoaArray: source!)
-    }
-
-    return _arrayForceCast([AnyObject](_cocoaArray: source!))
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// Dictionaries
-//===----------------------------------------------------------------------===//
-
-extension NSDictionary : ExpressibleByDictionaryLiteral {
-  public required convenience init(
-    dictionaryLiteral elements: (Any, Any)...
-  ) {
-    // FIXME: Unfortunate that the `NSCopying` check has to be done at runtime.
-    self.init(
-      objects: elements.map { $0.1 as AnyObject },
-      forKeys: elements.map { $0.0 as AnyObject as! NSCopying },
-      count: elements.count)
-  }
-}
-
-extension Dictionary {
-  /// Private initializer used for bridging.
-  ///
-  /// The provided `NSDictionary` will be copied to ensure that the copy can
-  /// not be mutated by other code.
-  public init(_cocoaDictionary: _NSDictionary) {
-    _sanityCheck(
-      _isBridgedVerbatimToObjectiveC(Key.self) &&
-      _isBridgedVerbatimToObjectiveC(Value.self),
-      "Dictionary can be backed by NSDictionary storage only when both key and value are bridged verbatim to Objective-C")
-    // FIXME: We would like to call CFDictionaryCreateCopy() to avoid doing an
-    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
-    // today because CFDictionaryCreateCopy() copies dictionary contents
-    // unconditionally, resulting in O(n) copies even for immutable dictionaries.
-    //
-    // <rdar://problem/20690755> CFDictionaryCreateCopy() does not call copyWithZone:
-    //
-    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
-    // and watchOS.
-    self = Dictionary(
-      _immutableCocoaDictionary:
-        unsafeBitCast(_cocoaDictionary.copy(with: nil) as AnyObject,
-                      to: _NSDictionary.self))
-  }
-}
-
-// Dictionary<Key, Value> is conditionally bridged to NSDictionary
-extension Dictionary : _ObjectiveCBridgeable {
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSDictionary {
-    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject,
-                         to: NSDictionary.self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ d: NSDictionary,
-    result: inout Dictionary?
-  ) {
-    if let native = [Key : Value]._bridgeFromObjectiveCAdoptingNativeStorageOf(
-        d as AnyObject) {
-      result = native
-      return
-    }
-
-    if _isBridgedVerbatimToObjectiveC(Key.self) &&
-       _isBridgedVerbatimToObjectiveC(Value.self) {
-      result = [Key : Value](
-        _cocoaDictionary: unsafeBitCast(d as AnyObject, to: _NSDictionary.self))
-      return
-    }
-
-    // `Dictionary<Key, Value>` where either `Key` or `Value` is a value type
-    // may not be backed by an NSDictionary.
-    var builder = _DictionaryBuilder<Key, Value>(count: d.count)
-    d.enumerateKeysAndObjects({
-      (anyKey: Any, anyValue: Any,
-       stop: UnsafeMutablePointer<ObjCBool>) in
-      let anyObjectKey = anyKey as AnyObject
-      let anyObjectValue = anyValue as AnyObject
-      builder.add(
-          key: Swift._forceBridgeFromObjectiveC(anyObjectKey, Key.self),
-          value: Swift._forceBridgeFromObjectiveC(anyObjectValue, Value.self))
-    })
-    result = builder.take()
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSDictionary,
-    result: inout Dictionary?
-  ) -> Bool {
-    let anyDict = x as [NSObject : AnyObject]
-    if _isBridgedVerbatimToObjectiveC(Key.self) &&
-       _isBridgedVerbatimToObjectiveC(Value.self) {
-      result = Swift._dictionaryDownCastConditional(anyDict)
-      return result != nil
-    }
-
-    result = Swift._dictionaryBridgeFromObjectiveCConditional(anyDict)
-    return result != nil
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ d: NSDictionary?
-  ) -> Dictionary {
-    // `nil` has historically been used as a stand-in for an empty
-    // dictionary; map it to an empty dictionary.
-    if _slowPath(d == nil) { return Dictionary() }
-
-    if let native = [Key : Value]._bridgeFromObjectiveCAdoptingNativeStorageOf(
-        d! as AnyObject) {
-      return native
-    }
-
-    if _isBridgedVerbatimToObjectiveC(Key.self) &&
-       _isBridgedVerbatimToObjectiveC(Value.self) {
-      return [Key : Value](
-        _cocoaDictionary: unsafeBitCast(d! as AnyObject, to: _NSDictionary.self))
-    }
-
-    // `Dictionary<Key, Value>` where either `Key` or `Value` is a value type
-    // may not be backed by an NSDictionary.
-    var builder = _DictionaryBuilder<Key, Value>(count: d!.count)
-    d!.enumerateKeysAndObjects({
-      (anyKey: Any, anyValue: Any,
-       stop: UnsafeMutablePointer<ObjCBool>) in
-      builder.add(
-          key: Swift._forceBridgeFromObjectiveC(anyKey as AnyObject, Key.self),
-          value: Swift._forceBridgeFromObjectiveC(anyValue as AnyObject, Value.self))
-    })
-    return builder.take()
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// TextChecking
-//===----------------------------------------------------------------------===//
-
-extension NSTextCheckingResult.CheckingType {
-    public static var allSystemTypes : NSTextCheckingResult.CheckingType {
-        return NSTextCheckingResult.CheckingType(rawValue: 0xffffffff)
-    }
-    
-    public static var allCustomTypes : NSTextCheckingResult.CheckingType {
-        return NSTextCheckingResult.CheckingType(rawValue: 0xffffffff << 32)
-    }
-    
-    public static var allTypes : NSTextCheckingResult.CheckingType {
-        return NSTextCheckingResult.CheckingType(rawValue: UInt64.max)
-    }
-}
-
-//===----------------------------------------------------------------------===//
-// Fast enumeration
-//===----------------------------------------------------------------------===//
-
-// NB: This is a class because fast enumeration passes around interior pointers
-// to the enumeration state, so the state cannot be moved in memory. We will
-// probably need to implement fast enumeration in the compiler as a primitive
-// to implement it both correctly and efficiently.
-final public class NSFastEnumerationIterator : IteratorProtocol {
-  var enumerable: NSFastEnumeration
-  var state: [NSFastEnumerationState]
-  var n: Int
-  var count: Int
-
-  /// Size of ObjectsBuffer, in ids.
-  static var STACK_BUF_SIZE: Int { return 4 }
-
-  var objects: [Unmanaged<AnyObject>?]
-
-  public func next() -> Any? {
-    if n == count {
-      // FIXME: Is this check necessary before refresh()?
-      if count == 0 { return nil }
-      refresh()
-      if count == 0 { return nil }
-    }
-    let next: Any = state[0].itemsPtr![n]!
-    n += 1
-    return next
-  }
-
-  func refresh() {
-    _sanityCheck(objects.count > 0)
-    n = 0
-    objects.withUnsafeMutableBufferPointer {
-      count = enumerable.countByEnumerating(
-        with: &state,
-        objects: AutoreleasingUnsafeMutablePointer($0.baseAddress!),
-        count: $0.count)
-    }
-  }
-
-  public init(_ enumerable: NSFastEnumeration) {
-    self.enumerable = enumerable
-    self.state = [ NSFastEnumerationState(
-      state: 0, itemsPtr: nil,
-      mutationsPtr: _fastEnumerationStorageMutationsPtr,
-      extra: (0, 0, 0, 0, 0)) ]
-    self.objects = Array(
-      repeating: nil, count: NSFastEnumerationIterator.STACK_BUF_SIZE)
-    self.n = -1
-    self.count = -1
-  }
-}
-
-extension NSArray : Sequence {
-  /// Return an *iterator* over the elements of this *sequence*.
-  ///
-  /// - Complexity: O(1).
-  final public func makeIterator() -> NSFastEnumerationIterator {
-    return NSFastEnumerationIterator(self)
-  }
-}
-
-/* TODO: API review
-extension NSArray : Swift.Collection {
-  final public var startIndex: Int {
-    return 0
-  }
-
-  final public var endIndex: Int {
-    return count
-  }
-}
- */
-
-extension Set {
-  /// Private initializer used for bridging.
-  ///
-  /// The provided `NSSet` will be copied to ensure that the copy can
-  /// not be mutated by other code.
-  public init(_cocoaSet: _NSSet) {
-    _sanityCheck(_isBridgedVerbatimToObjectiveC(Element.self),
-      "Set can be backed by NSSet _variantStorage only when the member type can be bridged verbatim to Objective-C")
-    // FIXME: We would like to call CFSetCreateCopy() to avoid doing an
-    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
-    // today because CFSetCreateCopy() copies dictionary contents
-    // unconditionally, resulting in O(n) copies even for immutable dictionaries.
-    //
-    // <rdar://problem/20697680> CFSetCreateCopy() does not call copyWithZone:
-    //
-    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
-    // and watchOS.
-    self = Set(
-      _immutableCocoaSet:
-        unsafeBitCast(_cocoaSet.copy(with: nil) as AnyObject, to: _NSSet.self))
-  }
-}
-
-extension NSSet : Sequence {
-  /// Return an *iterator* over the elements of this *sequence*.
-  ///
-  /// - Complexity: O(1).
-  public func makeIterator() -> NSFastEnumerationIterator {
-    return NSFastEnumerationIterator(self)
-  }
-}
-
-extension NSOrderedSet : Sequence {
-  /// Return an *iterator* over the elements of this *sequence*.
-  ///
-  /// - Complexity: O(1).
-  public func makeIterator() -> NSFastEnumerationIterator {
-    return NSFastEnumerationIterator(self)
-  }
-}
-
-// FIXME: move inside NSIndexSet when the compiler supports this.
-public struct NSIndexSetIterator : IteratorProtocol {
-  public typealias Element = Int
-
-  internal let _set: NSIndexSet
-  internal var _first: Bool = true
-  internal var _current: Int?
-
-  internal init(set: NSIndexSet) {
-    self._set = set
-    self._current = nil
-  }
-
-  public mutating func next() -> Int? {
-    if _first {
-      _current = _set.firstIndex
-      _first = false
-    } else if let c = _current {
-      _current = _set.indexGreaterThanIndex(c)
-    } else {
-      // current is already nil
-    }
-    if _current == NSNotFound {
-      _current = nil
-    }
-    return _current
-  }
-}
-
-extension NSIndexSet : Sequence {
-  /// Return an *iterator* over the elements of this *sequence*.
-  ///
-  /// - Complexity: O(1).
-  public func makeIterator() -> NSIndexSetIterator {
-    return NSIndexSetIterator(set: self)
-  }
-}
-
-// Set<Element> is conditionally bridged to NSSet
-extension Set : _ObjectiveCBridgeable {
-  @_semantics("convertToObjectiveC")
-  public func _bridgeToObjectiveC() -> NSSet {
-    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject, to: NSSet.self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(_ s: NSSet, result: inout Set?) {
-    if let native =
-      Set<Element>._bridgeFromObjectiveCAdoptingNativeStorageOf(s as AnyObject) {
-
-      result = native
-      return
-    }
-
-    if _isBridgedVerbatimToObjectiveC(Element.self) {
-      result = Set<Element>(_cocoaSet: unsafeBitCast(s, to: _NSSet.self))
-      return
-    }
-
-    // `Set<Element>` where `Element` is a value type may not be backed by
-    // an NSSet.
-    var builder = _SetBuilder<Element>(count: s.count)
-    s.enumerateObjects({
-      (anyMember: Any, stop: UnsafeMutablePointer<ObjCBool>) in
-      builder.add(member: Swift._forceBridgeFromObjectiveC(
-        anyMember as AnyObject, Element.self))
-    })
-    result = builder.take()
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSSet, result: inout Set?
-  ) -> Bool {
-    let anySet = x as Set<NSObject>
-    if _isBridgedVerbatimToObjectiveC(Element.self) {
-      result = Swift._setDownCastConditional(anySet)
-      return result != nil
-    }
-
-    result = Swift._setBridgeFromObjectiveCConditional(anySet)
-    return result != nil
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(_ s: NSSet?) -> Set {
-    // `nil` has historically been used as a stand-in for an empty
-    // set; map it to an empty set.
-    if _slowPath(s == nil) { return Set() }
-
-    if let native =
-      Set<Element>._bridgeFromObjectiveCAdoptingNativeStorageOf(s! as AnyObject) {
-
-      return native
-    }
-
-    if _isBridgedVerbatimToObjectiveC(Element.self) {
-      return Set<Element>(_cocoaSet: unsafeBitCast(s! as AnyObject,
-                                                   to: _NSSet.self))
-    }
-
-    // `Set<Element>` where `Element` is a value type may not be backed by
-    // an NSSet.
-    var builder = _SetBuilder<Element>(count: s!.count)
-    s!.enumerateObjects({
-      (anyMember: Any, stop: UnsafeMutablePointer<ObjCBool>) in
-      builder.add(member: Swift._forceBridgeFromObjectiveC(
-        anyMember as AnyObject, Element.self))
-    })
-    return builder.take()
-  }
-}
-
-extension NSSet : _HasCustomAnyHashableRepresentation {
-  // Must be @nonobjc to avoid infinite recursion during bridging
-  @nonobjc
-  public func _toCustomAnyHashable() -> AnyHashable? {
-    return AnyHashable(self as! Set<AnyHashable>)
-  }
-}
-
-extension NSDictionary : Sequence {
-  // FIXME: A class because we can't pass a struct with class fields through an
-  // [objc] interface without prematurely destroying the references.
-  final public class Iterator : IteratorProtocol {
-    var _fastIterator: NSFastEnumerationIterator
-    var _dictionary: NSDictionary {
-      return _fastIterator.enumerable as! NSDictionary
-    }
-
-    public func next() -> (key: Any, value: Any)? {
-      if let key = _fastIterator.next() {
-        // Deliberately avoid the subscript operator in case the dictionary
-        // contains non-copyable keys. This is rare since NSMutableDictionary
-        // requires them, but we don't want to paint ourselves into a corner.
-        return (key: key, value: _dictionary.object(forKey: key)!)
-      }
-      return nil
-    }
-
-    internal init(_ _dict: NSDictionary) {
-      _fastIterator = NSFastEnumerationIterator(_dict)
-    }
-  }
-
-  // Bridging subscript.
-  @objc
-  public subscript(key: Any) -> Any? {
-    @objc(_swift_objectForKeyedSubscript:)
-    get {
-      // Deliberately avoid the subscript operator in case the dictionary
-      // contains non-copyable keys. This is rare since NSMutableDictionary
-      // requires them, but we don't want to paint ourselves into a corner.
-      return self.object(forKey: key)
-    }
-  }
-
-  /// Return an *iterator* over the elements of this *sequence*.
-  ///
-  /// - Complexity: O(1).
-  public func makeIterator() -> Iterator {
-    return Iterator(self)
-  }
-}
-
-extension NSMutableDictionary {
-  // Bridging subscript.
-  override public subscript(key: Any) -> Any? {
-    get {
-      return self.object(forKey: key)
-    }
-    @objc(_swift_setObject:forKeyedSubscript:)
-    set {
-      // FIXME: Unfortunate that the `NSCopying` check has to be done at
-      // runtime.
-      let copyingKey = key as AnyObject as! NSCopying
-      if let newValue = newValue {
-        self.setObject(newValue, forKey: copyingKey)
-      } else {
-        self.removeObject(forKey: copyingKey)
-      }
-    }
-  }
-}
-
-extension NSEnumerator : Sequence {
-  /// Return an *iterator* over the *enumerator*.
-  ///
-  /// - Complexity: O(1).
-  public func makeIterator() -> NSFastEnumerationIterator {
-    return NSFastEnumerationIterator(self)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// Ranges
-//===----------------------------------------------------------------------===//
-
-extension NSRange {
-  public init(_ x: Range<Int>) {
-    location = x.lowerBound
-    length = x.count
-  }
-
-  // FIXME(ABI)#75 (Conditional Conformance): this API should be an extension on Range.
-  // Can't express it now because the compiler does not support conditional
-  // extensions with type equality constraints.
-  public func toRange() -> Range<Int>? {
-    if location == NSNotFound { return nil }
-    return location..<(location+length)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// NSLocalizedString
-//===----------------------------------------------------------------------===//
-
-/// Returns a localized string, using the main bundle if one is not specified.
-public
-func NSLocalizedString(_ key: String,
-                       tableName: String? = nil,
-                       bundle: Bundle = Bundle.main,
-                       value: String = "",
-                       comment: String) -> String {
-  return bundle.localizedString(forKey: key, value:value, table:tableName)
-}
-
-//===----------------------------------------------------------------------===//
-// NSLog
-//===----------------------------------------------------------------------===//
-
-public func NSLog(_ format: String, _ args: CVarArg...) {
-  withVaList(args) { NSLogv(format, $0) }
-}
-
-#if os(OSX)
-
-//===----------------------------------------------------------------------===//
-// NSRectEdge
-//===----------------------------------------------------------------------===//
-
-// In the SDK, the following NS*Edge constants are defined as macros for the
-// corresponding CGRectEdge enumerators.  Thus, in the SDK, NS*Edge constants
-// have CGRectEdge type.  This is not correct for Swift (as there is no
-// implicit conversion to NSRectEdge).
-
-@available(*, unavailable, renamed: "NSRectEdge.MinX")
-public var NSMinXEdge: NSRectEdge {
-  fatalError("unavailable property can't be accessed")
-}
-@available(*, unavailable, renamed: "NSRectEdge.MinY")
-public var NSMinYEdge: NSRectEdge {
-  fatalError("unavailable property can't be accessed")
-}
-@available(*, unavailable, renamed: "NSRectEdge.MaxX")
-public var NSMaxXEdge: NSRectEdge {
-  fatalError("unavailable property can't be accessed")
-}
-@available(*, unavailable, renamed: "NSRectEdge.MaxY")
-public var NSMaxYEdge: NSRectEdge {
-  fatalError("unavailable property can't be accessed")
-}
-
-extension NSRectEdge {
-  public init(rectEdge: CGRectEdge) {
-    self = NSRectEdge(rawValue: UInt(rectEdge.rawValue))!
-  }
-}
-
-extension CGRectEdge {
-  public init(rectEdge: NSRectEdge) {
-    self = CGRectEdge(rawValue: UInt32(rectEdge.rawValue))!
-  }
-}
-
-#endif
-
-//===----------------------------------------------------------------------===//
-// NSError (as an out parameter).
-//===----------------------------------------------------------------------===//
-
-public typealias NSErrorPointer = AutoreleasingUnsafeMutablePointer<NSError?>?
-
-// Note: NSErrorPointer becomes ErrorPointer in Swift 3.
-public typealias ErrorPointer = NSErrorPointer
-
-public // COMPILER_INTRINSIC
-let _nilObjCError: Error = _GenericObjCError.nilError
-
-@_silgen_name("swift_convertNSErrorToError")
-public // COMPILER_INTRINSIC
-func _convertNSErrorToError(_ error: NSError?) -> Error {
-  if let error = error {
-    return error
-  }
-  return _nilObjCError
-}
-
-@_silgen_name("swift_convertErrorToNSError")
-public // COMPILER_INTRINSIC
-func _convertErrorToNSError(_ error: Error) -> NSError {
-  return unsafeDowncast(_bridgeErrorToNSError(error), to: NSError.self)
-}
-
-//===----------------------------------------------------------------------===//
-// Variadic initializers and methods
-//===----------------------------------------------------------------------===//
-
-extension NSPredicate {
-  // + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;
-  public
-  convenience init(format predicateFormat: String, _ args: CVarArg...) {
-    let va_args = getVaList(args)
-    self.init(format: predicateFormat, arguments: va_args)
-  }
-}
-
-extension NSExpression {
-  // + (NSExpression *) expressionWithFormat:(NSString *)expressionFormat, ...;
-  public
-  convenience init(format expressionFormat: String, _ args: CVarArg...) {
-    let va_args = getVaList(args)
-    self.init(format: expressionFormat, arguments: va_args)
-  }
-}
-
-extension NSString {
-  public convenience init(format: NSString, _ args: CVarArg...) {
-    // We can't use withVaList because 'self' cannot be captured by a closure
-    // before it has been initialized.
-    let va_args = getVaList(args)
-    self.init(format: format as String, arguments: va_args)
-  }
-
-  public convenience init(
-    format: NSString, locale: Locale?, _ args: CVarArg...
-  ) {
-    // We can't use withVaList because 'self' cannot be captured by a closure
-    // before it has been initialized.
-    let va_args = getVaList(args)
-    self.init(format: format as String, locale: locale, arguments: va_args)
-  }
-
-  public class func localizedStringWithFormat(
-    _ format: NSString, _ args: CVarArg...
-  ) -> Self {
-    return withVaList(args) {
-      self.init(format: format as String, locale: Locale.current, arguments: $0)
-    }
-  }
-
-  public func appendingFormat(_ format: NSString, _ args: CVarArg...)
-  -> NSString {
-    return withVaList(args) {
-      self.appending(NSString(format: format as String, arguments: $0) as String) as NSString
-    }
-  }
-}
-
-extension NSMutableString {
-  public func appendFormat(_ format: NSString, _ args: CVarArg...) {
-    return withVaList(args) {
-      self.append(NSString(format: format as String, arguments: $0) as String)
-    }
-  }
-}
-
-extension NSArray {
-  // Overlay: - (instancetype)initWithObjects:(id)firstObj, ...
-  public convenience init(objects elements: Any...) {
-    self.init(array: elements)
-  }
-}
-
-extension NSOrderedSet {
-  // - (instancetype)initWithObjects:(id)firstObj, ...
-  public convenience init(objects elements: Any...) {
-    self.init(array: elements)
-  }
-}
-
-extension NSSet {
-  // - (instancetype)initWithObjects:(id)firstObj, ...
-  public convenience init(objects elements: Any...) {
-    self.init(array: elements)
-  }
-}
-
-extension NSSet : ExpressibleByArrayLiteral {
-  public required convenience init(arrayLiteral elements: Any...) {
-    self.init(array: elements)
-  }
-}
-
-extension NSOrderedSet : ExpressibleByArrayLiteral {
-  public required convenience init(arrayLiteral elements: Any...) {
-    self.init(array: elements)
-  }
-}
-
-//===--- "Copy constructors" ----------------------------------------------===//
-// These are needed to make Cocoa feel natural since we eliminated
-// implicit bridging conversions from Objective-C to Swift
-//===----------------------------------------------------------------------===//
-
-extension NSArray {
-  /// Initializes a newly allocated array by placing in it the objects
-  /// contained in a given array.
-  ///
-  /// - Returns: An array initialized to contain the objects in
-  ///    `anArray``. The returned object might be different than the
-  ///    original receiver.
-  ///
-  /// Discussion: After an immutable array has been initialized in
-  /// this way, it cannot be modified.
-  @nonobjc
-  public convenience init(array anArray: NSArray) {
-    self.init(array: anArray as Array)
-  }
-}
-
-extension NSString {
-  /// Returns an `NSString` object initialized by copying the characters
-  /// from another given string.
-  ///
-  /// - Returns: An `NSString` object initialized by copying the
-  ///   characters from `aString`. The returned object may be different
-  ///   from the original receiver.
-  @nonobjc
-  public convenience init(string aString: NSString) {
-    self.init(string: aString as String)
-  }
-}
-
-extension NSSet {
-  /// Initializes a newly allocated set and adds to it objects from
-  /// another given set.
-  ///
-  /// - Returns: An initialized objects set containing the objects from
-  ///   `set`. The returned set might be different than the original
-  ///   receiver.
-  @nonobjc
-  public convenience init(set anSet: NSSet) {
-    // FIXME(performance)(compiler limitation): we actually want to do just
-    // `self = anSet.copy()`, but Swift does not have factory
-    // initializers right now.
-    let numElems = anSet.count
-    let stride = MemoryLayout<Optional<UnsafeRawPointer>>.stride
-    let alignment = MemoryLayout<Optional<UnsafeRawPointer>>.alignment
-    let bufferSize = stride * numElems
-    assert(stride == MemoryLayout<AnyObject>.stride)
-    assert(alignment == MemoryLayout<AnyObject>.alignment)
-
-    let rawBuffer = UnsafeMutableRawPointer.allocate(
-      bytes: bufferSize, alignedTo: alignment)
-    defer {
-      rawBuffer.deallocate(bytes: bufferSize, alignedTo: alignment)
-      _fixLifetime(anSet)
-    }
-    let valueBuffer = rawBuffer.bindMemory(
-     to: Optional<UnsafeRawPointer>.self, capacity: numElems)
-
-    CFSetGetValues(anSet, valueBuffer)
-    let valueBufferForInit = rawBuffer.assumingMemoryBound(to: AnyObject.self)
-    self.init(objects: valueBufferForInit, count: numElems)
-  }
-}
-
-extension NSDictionary {
-  /// Initializes a newly allocated dictionary and adds to it objects from
-  /// another given dictionary.
-  ///
-  /// - Returns: An initialized dictionary—which might be different
-  ///   than the original receiver—containing the keys and values
-  ///   found in `otherDictionary`.
-  @objc(_swiftInitWithDictionary_NSDictionary:)
-  public convenience init(dictionary otherDictionary: NSDictionary) {
-    // FIXME(performance)(compiler limitation): we actually want to do just
-    // `self = otherDictionary.copy()`, but Swift does not have factory
-    // initializers right now.
-    let numElems = otherDictionary.count
-    let stride = MemoryLayout<AnyObject>.stride
-    let alignment = MemoryLayout<AnyObject>.alignment
-    let singleSize = stride * numElems
-    let totalSize = singleSize * 2
-    _sanityCheck(stride == MemoryLayout<NSCopying>.stride)
-    _sanityCheck(alignment == MemoryLayout<NSCopying>.alignment)
-
-    // Allocate a buffer containing both the keys and values.
-    let buffer = UnsafeMutableRawPointer.allocate(
-      bytes: totalSize, alignedTo: alignment)
-    defer {
-      buffer.deallocate(bytes: totalSize, alignedTo: alignment)
-      _fixLifetime(otherDictionary)
-    }
-
-    let valueBuffer = buffer.bindMemory(to: AnyObject.self, capacity: numElems)
-    let buffer2 = buffer + singleSize
-    let keyBuffer = buffer2.bindMemory(to: AnyObject.self, capacity: numElems)
-
-    _stdlib_NSDictionary_getObjects(
-      nsDictionary: otherDictionary,
-      objects: valueBuffer,
-      andKeys: keyBuffer)
-
-    let keyBufferCopying = buffer2.assumingMemoryBound(to: NSCopying.self)
-    self.init(objects: valueBuffer, forKeys: keyBufferCopying, count: numElems)
-  }
-}
-
-@_silgen_name("__NSDictionaryGetObjects")
-func _stdlib_NSDictionary_getObjects(
-  nsDictionary: NSDictionary,
-  objects: UnsafeMutablePointer<AnyObject>?,
-  andKeys keys: UnsafeMutablePointer<AnyObject>?
-)
-
-
-//===----------------------------------------------------------------------===//
-// NSUndoManager
-//===----------------------------------------------------------------------===//
-
-@_silgen_name("NS_Swift_NSUndoManager_registerUndoWithTargetHandler")
-internal func NS_Swift_NSUndoManager_registerUndoWithTargetHandler(
-  _ self_: AnyObject,
-  _ target: AnyObject,
-  _ handler: @escaping @convention(block) (AnyObject) -> Void)
-
-extension UndoManager {
-  @available(*, unavailable, renamed: "registerUndo(withTarget:handler:)")
-  public func registerUndoWithTarget<TargetType : AnyObject>(_ target: TargetType, handler: (TargetType) -> Void) {
-    fatalError("This API has been renamed")
-  }
-
-  @available(OSX 10.11, iOS 9.0, *)
-  public func registerUndo<TargetType : AnyObject>(withTarget target: TargetType, handler: @escaping (TargetType) -> Void) {
-    // The generic blocks use a different ABI, so we need to wrap the provided
-    // handler in something ObjC compatible.
-    let objcCompatibleHandler: (AnyObject) -> Void = { internalTarget in
-      handler(internalTarget as! TargetType)
-    }
-    NS_Swift_NSUndoManager_registerUndoWithTargetHandler(
-      self as AnyObject, target as AnyObject, objcCompatibleHandler)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// NSCoder
-//===----------------------------------------------------------------------===//
-
-@_silgen_name("NS_Swift_NSCoder_decodeObject")
-internal func NS_Swift_NSCoder_decodeObject(
-  _ self_: AnyObject,
-  _ error: NSErrorPointer) -> AnyObject?
-
-@_silgen_name("NS_Swift_NSCoder_decodeObjectForKey")
-internal func NS_Swift_NSCoder_decodeObjectForKey(
-  _ self_: AnyObject,
-  _ key: AnyObject,
-  _ error: NSErrorPointer) -> AnyObject?
-
-@_silgen_name("NS_Swift_NSCoder_decodeObjectOfClassForKey")
-internal func NS_Swift_NSCoder_decodeObjectOfClassForKey(
-  _ self_: AnyObject,
-  _ cls: AnyObject,
-  _ key: AnyObject,
-  _ error: NSErrorPointer) -> AnyObject?
-
-@_silgen_name("NS_Swift_NSCoder_decodeObjectOfClassesForKey")
-internal func NS_Swift_NSCoder_decodeObjectOfClassesForKey(
-  _ self_: AnyObject,
-  _ classes: NSSet?,
-  _ key: AnyObject,
-  _ error: NSErrorPointer) -> AnyObject?
-
-
-@available(OSX 10.11, iOS 9.0, *)
-internal func resolveError(_ error: NSError?) throws {
-  if let error = error, error.code != NSCoderValueNotFoundError {
-    throw error
-  }
-}
-
-extension NSCoder {
-  @available(*, unavailable, renamed: "decodeObject(of:forKey:)")
-  public func decodeObjectOfClass<DecodedObjectType>(
-    _ cls: DecodedObjectType.Type, forKey key: String
-  ) -> DecodedObjectType?
-    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
-    fatalError("This API has been renamed")
-  }
-
-  public func decodeObject<DecodedObjectType>(
-    of cls: DecodedObjectType.Type, forKey key: String
-  ) -> DecodedObjectType?
-    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
-    let result = NS_Swift_NSCoder_decodeObjectOfClassForKey(self as AnyObject, cls as AnyObject, key as AnyObject, nil)
-    return result as? DecodedObjectType
-  }
-
-  @available(*, unavailable, renamed: "decodeObject(of:forKey:)")
-  @nonobjc
-  public func decodeObjectOfClasses(_ classes: NSSet?, forKey key: String) -> AnyObject? {
-    fatalError("This API has been renamed")
-  }
-
-  @nonobjc
-  public func decodeObject(of classes: [AnyClass]?, forKey key: String) -> Any? {
-    var classesAsNSObjects: NSSet?
-    if let theClasses = classes {
-      classesAsNSObjects = NSSet(array: theClasses.map { $0 as AnyObject })
-    }
-    return NS_Swift_NSCoder_decodeObjectOfClassesForKey(self as AnyObject, classesAsNSObjects, key as AnyObject, nil).map { $0 as Any }
-  }
-
-  @nonobjc
-  @available(OSX 10.11, iOS 9.0, *)
-  public func decodeTopLevelObject() throws -> Any? {
-    var error: NSError?
-    let result = NS_Swift_NSCoder_decodeObject(self as AnyObject, &error)
-    try resolveError(error)
-    return result.map { $0 as Any }
-  }
-
-  @available(*, unavailable, renamed: "decodeTopLevelObject(forKey:)")
-  public func decodeTopLevelObjectForKey(_ key: String) throws -> AnyObject? {
-    fatalError("This API has been renamed")
-  }
-
-  @nonobjc
-  @available(OSX 10.11, iOS 9.0, *)
-  public func decodeTopLevelObject(forKey key: String) throws -> AnyObject? {
-    var error: NSError?
-    let result = NS_Swift_NSCoder_decodeObjectForKey(self as AnyObject, key as AnyObject, &error)
-    try resolveError(error)
-    return result
-  }
-
-  @available(*, unavailable, renamed: "decodeTopLevelObject(of:forKey:)")
-  public func decodeTopLevelObjectOfClass<DecodedObjectType>(
-    _ cls: DecodedObjectType.Type, forKey key: String
-  ) throws -> DecodedObjectType?
-    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
-    fatalError("This API has been renamed")
-  }
-
-  @available(OSX 10.11, iOS 9.0, *)
-  public func decodeTopLevelObject<DecodedObjectType>(
-    of cls: DecodedObjectType.Type, forKey key: String
-  ) throws -> DecodedObjectType?
-    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
-    var error: NSError?
-    let result = NS_Swift_NSCoder_decodeObjectOfClassForKey(self as AnyObject, cls as AnyObject, key as AnyObject, &error)
-    try resolveError(error)
-    return result as? DecodedObjectType
-  }
-
-  @nonobjc
-  @available(*, unavailable, renamed: "decodeTopLevelObject(of:forKey:)")
-  public func decodeTopLevelObjectOfClasses(_ classes: NSSet?, forKey key: String) throws -> AnyObject? {
-    fatalError("This API has been renamed")
-  }
-
-  @nonobjc
-  @available(OSX 10.11, iOS 9.0, *)
-  public func decodeTopLevelObject(of classes: [AnyClass]?, forKey key: String) throws -> Any? {
-    var error: NSError?
-    var classesAsNSObjects: NSSet?
-    if let theClasses = classes {
-      classesAsNSObjects = NSSet(array: theClasses.map { $0 as AnyObject })
-    }
-    let result = NS_Swift_NSCoder_decodeObjectOfClassesForKey(self as AnyObject, classesAsNSObjects, key as AnyObject, &error)
-    try resolveError(error)
-    return result.map { $0 as Any }
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// NSKeyedUnarchiver
-//===----------------------------------------------------------------------===//
-
-@_silgen_name("NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData")
-internal func NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData(
-  _ self_: AnyObject,
-  _ data: AnyObject,
-  _ error: NSErrorPointer) -> AnyObject?
-
-extension NSKeyedUnarchiver {
-  @available(OSX 10.11, iOS 9.0, *)
-  @nonobjc
-  public class func unarchiveTopLevelObjectWithData(_ data: NSData) throws -> AnyObject? {
-    var error: NSError?
-    let result = NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData(self, data as AnyObject, &error)
-    try resolveError(error)
-    return result
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// Mirror/Quick Look Conformance
-//===----------------------------------------------------------------------===//
-
-extension NSURL : CustomPlaygroundQuickLookable {
-  public var customPlaygroundQuickLook: PlaygroundQuickLook {
-    guard let str = absoluteString else { return .text("Unknown URL") }
-    return .url(str)
-  }
-}
-
-extension NSRange : CustomReflectable {
-  public var customMirror: Mirror {
-    return Mirror(self, children: ["location": location, "length": length])
-  }
-}
-
-extension NSRange : CustomPlaygroundQuickLookable {
-  public var customPlaygroundQuickLook: PlaygroundQuickLook {
-    return .range(Int64(location), Int64(length))
-  }
-}
-
-extension NSDate : CustomPlaygroundQuickLookable {
-  var summary: String {
-    let df = DateFormatter()
-    df.dateStyle = .medium
-    df.timeStyle = .short
-    return df.string(from: self as Date)
-  }
-
-  public var customPlaygroundQuickLook: PlaygroundQuickLook {
-    return .text(summary)
-  }
-}
-
-extension NSSet : CustomReflectable {
-  public var customMirror: Mirror {
-    return Mirror(reflecting: self as Set<NSObject>)
-  }
-}
-
-extension NSString : CustomPlaygroundQuickLookable {
-  public var customPlaygroundQuickLook: PlaygroundQuickLook {
-    return .text(self as String)
-  }
-}
-
-extension NSArray : CustomReflectable {
-  public var customMirror: Mirror {
-    return Mirror(reflecting: self as [AnyObject])
-  }
-}
-
-extension NSDictionary : CustomReflectable {
-  public var customMirror: Mirror {
-    return Mirror(reflecting: self as [NSObject : AnyObject])
-  }
-}
-
-@available(*, deprecated, renamed:"NSCoding", message: "Please use NSCoding")
-typealias Coding = NSCoding
-
-@available(*, deprecated, renamed:"NSCoder", message: "Please use NSCoder")
-typealias Coder = NSCoder
-
-@available(*, deprecated, renamed:"NSKeyedUnarchiver", message: "Please use NSKeyedUnarchiver")
-typealias KeyedUnarchiver = NSKeyedUnarchiver
-
-@available(*, deprecated, renamed:"NSKeyedArchiver", message: "Please use NSKeyedArchiver")
-typealias KeyedArchiver = NSKeyedArchiver
-
-//===----------------------------------------------------------------------===//
-// AnyHashable
-//===----------------------------------------------------------------------===//
-
-extension AnyHashable : _ObjectiveCBridgeable {
-  public func _bridgeToObjectiveC() -> NSObject {
-    // This is unprincipled, but pretty much any object we'll encounter in
-    // Swift is NSObject-conforming enough to have -hash and -isEqual:.
-    return unsafeBitCast(base as AnyObject, to: NSObject.self)
-  }
-
-  public static func _forceBridgeFromObjectiveC(
-    _ x: NSObject,
-    result: inout AnyHashable?
-  ) {
-    result = AnyHashable(x)
-  }
-
-  public static func _conditionallyBridgeFromObjectiveC(
-    _ x: NSObject,
-    result: inout AnyHashable?
-  ) -> Bool {
-    self._forceBridgeFromObjectiveC(x, result: &result)
-    return result != nil
-  }
-
-  public static func _unconditionallyBridgeFromObjectiveC(
-    _ source: NSObject?
-  ) -> AnyHashable {
-    // `nil` has historically been used as a stand-in for an empty
-    // string; map it to an empty string.
-    if _slowPath(source == nil) { return AnyHashable(String()) }
-    return AnyHashable(source!)
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// CVarArg for bridged types
-//===----------------------------------------------------------------------===//
-
-extension CVarArg where Self: _ObjectiveCBridgeable {
-  /// Default implementation for bridgeable types.
-  public var _cVarArgEncoding: [Int] {
-    let object = self._bridgeToObjectiveC()
-    _autorelease(object)
-    return _encodeBitsAsWords(object)
-  }
-}
-
-extension String: CVarArg {}
-extension Array: CVarArg {}
-extension Dictionary: CVarArg {}
-extension Set: CVarArg {}
diff --git a/stdlib/public/SDK/Foundation/NSArray.swift b/stdlib/public/SDK/Foundation/NSArray.swift
new file mode 100644
index 0000000..b8d8645
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSArray.swift
@@ -0,0 +1,159 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// Arrays
+//===----------------------------------------------------------------------===//
+
+extension NSArray : ExpressibleByArrayLiteral {
+  /// Create an instance initialized with `elements`.
+  public required convenience init(arrayLiteral elements: Any...) {
+    // Let bridging take care of it.
+    self.init(array: elements)
+  }
+}
+
+extension Array : _ObjectiveCBridgeable {
+
+  /// Private initializer used for bridging.
+  ///
+  /// The provided `NSArray` will be copied to ensure that the copy can
+  /// not be mutated by other code.
+  internal init(_cocoaArray: NSArray) {
+    _sanityCheck(_isBridgedVerbatimToObjectiveC(Element.self),
+      "Array can be backed by NSArray only when the element type can be bridged verbatim to Objective-C")
+    // FIXME: We would like to call CFArrayCreateCopy() to avoid doing an
+    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
+    // today because CFArrayCreateCopy() copies array contents unconditionally,
+    // resulting in O(n) copies even for immutable arrays.
+    //
+    // <rdar://problem/19773555> CFArrayCreateCopy() is >10x slower than
+    // -[NSArray copyWithZone:]
+    //
+    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
+    // and watchOS.
+    self = Array(
+      _immutableCocoaArray:
+        unsafeBitCast(_cocoaArray.copy() as AnyObject, to: _NSArrayCore.self))
+  }
+
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSArray {
+    return unsafeBitCast(self._bridgeToObjectiveCImpl(), to: NSArray.self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ source: NSArray,
+    result: inout Array?
+  ) {
+    // If we have the appropriate native storage already, just adopt it.
+    if let native =
+        Array._bridgeFromObjectiveCAdoptingNativeStorageOf(source) {
+      result = native
+      return
+    }
+
+    if _fastPath(_isBridgedVerbatimToObjectiveC(Element.self)) {
+      // Forced down-cast (possible deferred type-checking)
+      result = Array(_cocoaArray: source)
+      return
+    }
+
+    result = _arrayForceCast([AnyObject](_cocoaArray: source))
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ source: NSArray,
+    result: inout Array?
+  ) -> Bool {
+    // Construct the result array by conditionally bridging each element.
+    let anyObjectArr = [AnyObject](_cocoaArray: source)
+
+    result = _arrayConditionalCast(anyObjectArr)
+    return result != nil
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSArray?
+  ) -> Array {
+    // `nil` has historically been used as a stand-in for an empty
+    // array; map it to an empty array instead of failing.
+    if _slowPath(source == nil) { return Array() }
+
+    // If we have the appropriate native storage already, just adopt it.
+    if let native =
+        Array._bridgeFromObjectiveCAdoptingNativeStorageOf(source!) {
+      return native
+    }
+
+    if _fastPath(_isBridgedVerbatimToObjectiveC(Element.self)) {
+      // Forced down-cast (possible deferred type-checking)
+      return Array(_cocoaArray: source!)
+    }
+
+    return _arrayForceCast([AnyObject](_cocoaArray: source!))
+  }
+}
+
+extension NSArray : Sequence {
+  /// Return an *iterator* over the elements of this *sequence*.
+  ///
+  /// - Complexity: O(1).
+  final public func makeIterator() -> NSFastEnumerationIterator {
+    return NSFastEnumerationIterator(self)
+  }
+}
+
+/* TODO: API review
+extension NSArray : Swift.Collection {
+  final public var startIndex: Int {
+    return 0
+  }
+
+  final public var endIndex: Int {
+    return count
+  }
+}
+ */
+
+extension NSArray {
+  // Overlay: - (instancetype)initWithObjects:(id)firstObj, ...
+  public convenience init(objects elements: Any...) {
+    self.init(array: elements)
+  }
+}
+
+extension NSArray {
+  /// Initializes a newly allocated array by placing in it the objects
+  /// contained in a given array.
+  ///
+  /// - Returns: An array initialized to contain the objects in
+  ///    `anArray``. The returned object might be different than the
+  ///    original receiver.
+  ///
+  /// Discussion: After an immutable array has been initialized in
+  /// this way, it cannot be modified.
+  @nonobjc
+  public convenience init(array anArray: NSArray) {
+    self.init(array: anArray as Array)
+  }
+}
+
+extension NSArray : CustomReflectable {
+  public var customMirror: Mirror {
+    return Mirror(reflecting: self as [AnyObject])
+  }
+}
+
+extension Array: CVarArg {}
diff --git a/stdlib/public/SDK/Foundation/NSCoder.swift b/stdlib/public/SDK/Foundation/NSCoder.swift
new file mode 100644
index 0000000..f8eddb4
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSCoder.swift
@@ -0,0 +1,179 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+
+//===----------------------------------------------------------------------===//
+// NSCoder
+//===----------------------------------------------------------------------===//
+
+@_silgen_name("NS_Swift_NSCoder_decodeObject")
+internal func NS_Swift_NSCoder_decodeObject(
+  _ self_: AnyObject,
+  _ error: NSErrorPointer) -> AnyObject?
+
+@_silgen_name("NS_Swift_NSCoder_decodeObjectForKey")
+internal func NS_Swift_NSCoder_decodeObjectForKey(
+  _ self_: AnyObject,
+  _ key: AnyObject,
+  _ error: NSErrorPointer) -> AnyObject?
+
+@_silgen_name("NS_Swift_NSCoder_decodeObjectOfClassForKey")
+internal func NS_Swift_NSCoder_decodeObjectOfClassForKey(
+  _ self_: AnyObject,
+  _ cls: AnyObject,
+  _ key: AnyObject,
+  _ error: NSErrorPointer) -> AnyObject?
+
+@_silgen_name("NS_Swift_NSCoder_decodeObjectOfClassesForKey")
+internal func NS_Swift_NSCoder_decodeObjectOfClassesForKey(
+  _ self_: AnyObject,
+  _ classes: NSSet?,
+  _ key: AnyObject,
+  _ error: NSErrorPointer) -> AnyObject?
+
+
+@available(OSX 10.11, iOS 9.0, *)
+internal func resolveError(_ error: NSError?) throws {
+  if let error = error, error.code != NSCoderValueNotFoundError {
+    throw error
+  }
+}
+
+extension NSCoder {
+  @available(*, unavailable, renamed: "decodeObject(of:forKey:)")
+  public func decodeObjectOfClass<DecodedObjectType>(
+    _ cls: DecodedObjectType.Type, forKey key: String
+  ) -> DecodedObjectType?
+    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
+    fatalError("This API has been renamed")
+  }
+
+  public func decodeObject<DecodedObjectType>(
+    of cls: DecodedObjectType.Type, forKey key: String
+  ) -> DecodedObjectType?
+    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
+    let result = NS_Swift_NSCoder_decodeObjectOfClassForKey(self as AnyObject, cls as AnyObject, key as AnyObject, nil)
+    return result as? DecodedObjectType
+  }
+
+  @available(*, unavailable, renamed: "decodeObject(of:forKey:)")
+  @nonobjc
+  public func decodeObjectOfClasses(_ classes: NSSet?, forKey key: String) -> AnyObject? {
+    fatalError("This API has been renamed")
+  }
+
+  @nonobjc
+  public func decodeObject(of classes: [AnyClass]?, forKey key: String) -> Any? {
+    var classesAsNSObjects: NSSet?
+    if let theClasses = classes {
+      classesAsNSObjects = NSSet(array: theClasses.map { $0 as AnyObject })
+    }
+    return NS_Swift_NSCoder_decodeObjectOfClassesForKey(self as AnyObject, classesAsNSObjects, key as AnyObject, nil).map { $0 as Any }
+  }
+
+  @nonobjc
+  @available(OSX 10.11, iOS 9.0, *)
+  public func decodeTopLevelObject() throws -> Any? {
+    var error: NSError?
+    let result = NS_Swift_NSCoder_decodeObject(self as AnyObject, &error)
+    try resolveError(error)
+    return result.map { $0 as Any }
+  }
+
+  @available(*, unavailable, renamed: "decodeTopLevelObject(forKey:)")
+  public func decodeTopLevelObjectForKey(_ key: String) throws -> AnyObject? {
+    fatalError("This API has been renamed")
+  }
+
+  @nonobjc
+  @available(OSX 10.11, iOS 9.0, *)
+  public func decodeTopLevelObject(forKey key: String) throws -> AnyObject? {
+    var error: NSError?
+    let result = NS_Swift_NSCoder_decodeObjectForKey(self as AnyObject, key as AnyObject, &error)
+    try resolveError(error)
+    return result
+  }
+
+  @available(*, unavailable, renamed: "decodeTopLevelObject(of:forKey:)")
+  public func decodeTopLevelObjectOfClass<DecodedObjectType>(
+    _ cls: DecodedObjectType.Type, forKey key: String
+  ) throws -> DecodedObjectType?
+    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
+    fatalError("This API has been renamed")
+  }
+
+  @available(OSX 10.11, iOS 9.0, *)
+  public func decodeTopLevelObject<DecodedObjectType>(
+    of cls: DecodedObjectType.Type, forKey key: String
+  ) throws -> DecodedObjectType?
+    where DecodedObjectType : NSCoding, DecodedObjectType : NSObject {
+    var error: NSError?
+    let result = NS_Swift_NSCoder_decodeObjectOfClassForKey(self as AnyObject, cls as AnyObject, key as AnyObject, &error)
+    try resolveError(error)
+    return result as? DecodedObjectType
+  }
+
+  @nonobjc
+  @available(*, unavailable, renamed: "decodeTopLevelObject(of:forKey:)")
+  public func decodeTopLevelObjectOfClasses(_ classes: NSSet?, forKey key: String) throws -> AnyObject? {
+    fatalError("This API has been renamed")
+  }
+
+  @nonobjc
+  @available(OSX 10.11, iOS 9.0, *)
+  public func decodeTopLevelObject(of classes: [AnyClass]?, forKey key: String) throws -> Any? {
+    var error: NSError?
+    var classesAsNSObjects: NSSet?
+    if let theClasses = classes {
+      classesAsNSObjects = NSSet(array: theClasses.map { $0 as AnyObject })
+    }
+    let result = NS_Swift_NSCoder_decodeObjectOfClassesForKey(self as AnyObject, classesAsNSObjects, key as AnyObject, &error)
+    try resolveError(error)
+    return result.map { $0 as Any }
+  }
+}
+
+//===----------------------------------------------------------------------===//
+// NSKeyedUnarchiver
+//===----------------------------------------------------------------------===//
+
+@_silgen_name("NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData")
+internal func NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData(
+  _ self_: AnyObject,
+  _ data: AnyObject,
+  _ error: NSErrorPointer) -> AnyObject?
+
+extension NSKeyedUnarchiver {
+  @available(OSX 10.11, iOS 9.0, *)
+  @nonobjc
+  public class func unarchiveTopLevelObjectWithData(_ data: NSData) throws -> AnyObject? {
+    var error: NSError?
+    let result = NS_Swift_NSKeyedUnarchiver_unarchiveObjectWithData(self, data as AnyObject, &error)
+    try resolveError(error)
+    return result
+  }
+}
+
+
+@available(*, deprecated, renamed:"NSCoding", message: "Please use NSCoding")
+typealias Coding = NSCoding
+
+@available(*, deprecated, renamed:"NSCoder", message: "Please use NSCoder")
+typealias Coder = NSCoder
+
+@available(*, deprecated, renamed:"NSKeyedUnarchiver", message: "Please use NSKeyedUnarchiver")
+typealias KeyedUnarchiver = NSKeyedUnarchiver
+
+@available(*, deprecated, renamed:"NSKeyedArchiver", message: "Please use NSKeyedArchiver")
+typealias KeyedArchiver = NSKeyedArchiver
diff --git a/stdlib/public/SDK/Foundation/NSDate.swift b/stdlib/public/SDK/Foundation/NSDate.swift
new file mode 100644
index 0000000..6c712ee
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSDate.swift
@@ -0,0 +1,26 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+extension NSDate : CustomPlaygroundQuickLookable {
+  var summary: String {
+    let df = DateFormatter()
+    df.dateStyle = .medium
+    df.timeStyle = .short
+    return df.string(from: self as Date)
+  }
+
+  public var customPlaygroundQuickLook: PlaygroundQuickLook {
+    return .text(summary)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSDictionary.swift b/stdlib/public/SDK/Foundation/NSDictionary.swift
new file mode 100644
index 0000000..a5a5bdf
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSDictionary.swift
@@ -0,0 +1,263 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// Dictionaries
+//===----------------------------------------------------------------------===//
+
+extension NSDictionary : ExpressibleByDictionaryLiteral {
+  public required convenience init(
+    dictionaryLiteral elements: (Any, Any)...
+  ) {
+    // FIXME: Unfortunate that the `NSCopying` check has to be done at runtime.
+    self.init(
+      objects: elements.map { $0.1 as AnyObject },
+      forKeys: elements.map { $0.0 as AnyObject as! NSCopying },
+      count: elements.count)
+  }
+}
+
+extension Dictionary {
+  /// Private initializer used for bridging.
+  ///
+  /// The provided `NSDictionary` will be copied to ensure that the copy can
+  /// not be mutated by other code.
+  public init(_cocoaDictionary: _NSDictionary) {
+    _sanityCheck(
+      _isBridgedVerbatimToObjectiveC(Key.self) &&
+      _isBridgedVerbatimToObjectiveC(Value.self),
+      "Dictionary can be backed by NSDictionary storage only when both key and value are bridged verbatim to Objective-C")
+    // FIXME: We would like to call CFDictionaryCreateCopy() to avoid doing an
+    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
+    // today because CFDictionaryCreateCopy() copies dictionary contents
+    // unconditionally, resulting in O(n) copies even for immutable dictionaries.
+    //
+    // <rdar://problem/20690755> CFDictionaryCreateCopy() does not call copyWithZone:
+    //
+    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
+    // and watchOS.
+    self = Dictionary(
+      _immutableCocoaDictionary:
+        unsafeBitCast(_cocoaDictionary.copy(with: nil) as AnyObject,
+                      to: _NSDictionary.self))
+  }
+}
+
+// Dictionary<Key, Value> is conditionally bridged to NSDictionary
+extension Dictionary : _ObjectiveCBridgeable {
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSDictionary {
+    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject,
+                         to: NSDictionary.self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ d: NSDictionary,
+    result: inout Dictionary?
+  ) {
+    if let native = [Key : Value]._bridgeFromObjectiveCAdoptingNativeStorageOf(
+        d as AnyObject) {
+      result = native
+      return
+    }
+
+    if _isBridgedVerbatimToObjectiveC(Key.self) &&
+       _isBridgedVerbatimToObjectiveC(Value.self) {
+      result = [Key : Value](
+        _cocoaDictionary: unsafeBitCast(d as AnyObject, to: _NSDictionary.self))
+      return
+    }
+
+    // `Dictionary<Key, Value>` where either `Key` or `Value` is a value type
+    // may not be backed by an NSDictionary.
+    var builder = _DictionaryBuilder<Key, Value>(count: d.count)
+    d.enumerateKeysAndObjects({
+      (anyKey: Any, anyValue: Any,
+       stop: UnsafeMutablePointer<ObjCBool>) in
+      let anyObjectKey = anyKey as AnyObject
+      let anyObjectValue = anyValue as AnyObject
+      builder.add(
+          key: Swift._forceBridgeFromObjectiveC(anyObjectKey, Key.self),
+          value: Swift._forceBridgeFromObjectiveC(anyObjectValue, Value.self))
+    })
+    result = builder.take()
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSDictionary,
+    result: inout Dictionary?
+  ) -> Bool {
+    let anyDict = x as [NSObject : AnyObject]
+    if _isBridgedVerbatimToObjectiveC(Key.self) &&
+       _isBridgedVerbatimToObjectiveC(Value.self) {
+      result = Swift._dictionaryDownCastConditional(anyDict)
+      return result != nil
+    }
+
+    result = Swift._dictionaryBridgeFromObjectiveCConditional(anyDict)
+    return result != nil
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ d: NSDictionary?
+  ) -> Dictionary {
+    // `nil` has historically been used as a stand-in for an empty
+    // dictionary; map it to an empty dictionary.
+    if _slowPath(d == nil) { return Dictionary() }
+
+    if let native = [Key : Value]._bridgeFromObjectiveCAdoptingNativeStorageOf(
+        d! as AnyObject) {
+      return native
+    }
+
+    if _isBridgedVerbatimToObjectiveC(Key.self) &&
+       _isBridgedVerbatimToObjectiveC(Value.self) {
+      return [Key : Value](
+        _cocoaDictionary: unsafeBitCast(d! as AnyObject, to: _NSDictionary.self))
+    }
+
+    // `Dictionary<Key, Value>` where either `Key` or `Value` is a value type
+    // may not be backed by an NSDictionary.
+    var builder = _DictionaryBuilder<Key, Value>(count: d!.count)
+    d!.enumerateKeysAndObjects({
+      (anyKey: Any, anyValue: Any,
+       stop: UnsafeMutablePointer<ObjCBool>) in
+      builder.add(
+          key: Swift._forceBridgeFromObjectiveC(anyKey as AnyObject, Key.self),
+          value: Swift._forceBridgeFromObjectiveC(anyValue as AnyObject, Value.self))
+    })
+    return builder.take()
+  }
+}
+
+extension NSDictionary : Sequence {
+  // FIXME: A class because we can't pass a struct with class fields through an
+  // [objc] interface without prematurely destroying the references.
+  final public class Iterator : IteratorProtocol {
+    var _fastIterator: NSFastEnumerationIterator
+    var _dictionary: NSDictionary {
+      return _fastIterator.enumerable as! NSDictionary
+    }
+
+    public func next() -> (key: Any, value: Any)? {
+      if let key = _fastIterator.next() {
+        // Deliberately avoid the subscript operator in case the dictionary
+        // contains non-copyable keys. This is rare since NSMutableDictionary
+        // requires them, but we don't want to paint ourselves into a corner.
+        return (key: key, value: _dictionary.object(forKey: key)!)
+      }
+      return nil
+    }
+
+    internal init(_ _dict: NSDictionary) {
+      _fastIterator = NSFastEnumerationIterator(_dict)
+    }
+  }
+
+  // Bridging subscript.
+  @objc
+  public subscript(key: Any) -> Any? {
+    @objc(_swift_objectForKeyedSubscript:)
+    get {
+      // Deliberately avoid the subscript operator in case the dictionary
+      // contains non-copyable keys. This is rare since NSMutableDictionary
+      // requires them, but we don't want to paint ourselves into a corner.
+      return self.object(forKey: key)
+    }
+  }
+
+  /// Return an *iterator* over the elements of this *sequence*.
+  ///
+  /// - Complexity: O(1).
+  public func makeIterator() -> Iterator {
+    return Iterator(self)
+  }
+}
+
+extension NSMutableDictionary {
+  // Bridging subscript.
+  override public subscript(key: Any) -> Any? {
+    get {
+      return self.object(forKey: key)
+    }
+    @objc(_swift_setObject:forKeyedSubscript:)
+    set {
+      // FIXME: Unfortunate that the `NSCopying` check has to be done at
+      // runtime.
+      let copyingKey = key as AnyObject as! NSCopying
+      if let newValue = newValue {
+        self.setObject(newValue, forKey: copyingKey)
+      } else {
+        self.removeObject(forKey: copyingKey)
+      }
+    }
+  }
+}
+
+extension NSDictionary {
+  /// Initializes a newly allocated dictionary and adds to it objects from
+  /// another given dictionary.
+  ///
+  /// - Returns: An initialized dictionary—which might be different
+  ///   than the original receiver—containing the keys and values
+  ///   found in `otherDictionary`.
+  @objc(_swiftInitWithDictionary_NSDictionary:)
+  public convenience init(dictionary otherDictionary: NSDictionary) {
+    // FIXME(performance)(compiler limitation): we actually want to do just
+    // `self = otherDictionary.copy()`, but Swift does not have factory
+    // initializers right now.
+    let numElems = otherDictionary.count
+    let stride = MemoryLayout<AnyObject>.stride
+    let alignment = MemoryLayout<AnyObject>.alignment
+    let singleSize = stride * numElems
+    let totalSize = singleSize * 2
+    _sanityCheck(stride == MemoryLayout<NSCopying>.stride)
+    _sanityCheck(alignment == MemoryLayout<NSCopying>.alignment)
+
+    // Allocate a buffer containing both the keys and values.
+    let buffer = UnsafeMutableRawPointer.allocate(
+      bytes: totalSize, alignedTo: alignment)
+    defer {
+      buffer.deallocate(bytes: totalSize, alignedTo: alignment)
+      _fixLifetime(otherDictionary)
+    }
+
+    let valueBuffer = buffer.bindMemory(to: AnyObject.self, capacity: numElems)
+    let buffer2 = buffer + singleSize
+    let keyBuffer = buffer2.bindMemory(to: AnyObject.self, capacity: numElems)
+
+    _stdlib_NSDictionary_getObjects(
+      nsDictionary: otherDictionary,
+      objects: valueBuffer,
+      andKeys: keyBuffer)
+
+    let keyBufferCopying = buffer2.assumingMemoryBound(to: NSCopying.self)
+    self.init(objects: valueBuffer, forKeys: keyBufferCopying, count: numElems)
+  }
+}
+
+@_silgen_name("__NSDictionaryGetObjects")
+func _stdlib_NSDictionary_getObjects(
+  nsDictionary: NSDictionary,
+  objects: UnsafeMutablePointer<AnyObject>?,
+  andKeys keys: UnsafeMutablePointer<AnyObject>?
+)
+
+extension NSDictionary : CustomReflectable {
+  public var customMirror: Mirror {
+    return Mirror(reflecting: self as [NSObject : AnyObject])
+  }
+}
+
+extension Dictionary: CVarArg {}
diff --git a/stdlib/public/SDK/Foundation/NSError.swift b/stdlib/public/SDK/Foundation/NSError.swift
index f2aba24..1590eef 100644
--- a/stdlib/public/SDK/Foundation/NSError.swift
+++ b/stdlib/public/SDK/Foundation/NSError.swift
@@ -10,9 +10,37 @@
 //
 //===----------------------------------------------------------------------===//
 
+@_exported import Foundation // Clang module
 import CoreFoundation
 import Darwin
 
+//===----------------------------------------------------------------------===//
+// NSError (as an out parameter).
+//===----------------------------------------------------------------------===//
+
+public typealias NSErrorPointer = AutoreleasingUnsafeMutablePointer<NSError?>?
+
+// Note: NSErrorPointer becomes ErrorPointer in Swift 3.
+public typealias ErrorPointer = NSErrorPointer
+
+public // COMPILER_INTRINSIC
+let _nilObjCError: Error = _GenericObjCError.nilError
+
+@_silgen_name("swift_convertNSErrorToError")
+public // COMPILER_INTRINSIC
+func _convertNSErrorToError(_ error: NSError?) -> Error {
+  if let error = error {
+    return error
+  }
+  return _nilObjCError
+}
+
+@_silgen_name("swift_convertErrorToNSError")
+public // COMPILER_INTRINSIC
+func _convertErrorToNSError(_ error: Error) -> NSError {
+  return unsafeDowncast(_bridgeErrorToNSError(error), to: NSError.self)
+}
+
 /// Describes an error that provides localized messages describing why
 /// an error occurred and provides more information about the error.
 public protocol LocalizedError : Error {
diff --git a/stdlib/public/SDK/Foundation/NSExpression.swift b/stdlib/public/SDK/Foundation/NSExpression.swift
new file mode 100644
index 0000000..4f26a0f
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSExpression.swift
@@ -0,0 +1,22 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+extension NSExpression {
+  // + (NSExpression *) expressionWithFormat:(NSString *)expressionFormat, ...;
+  public
+  convenience init(format expressionFormat: String, _ args: CVarArg...) {
+    let va_args = getVaList(args)
+    self.init(format: expressionFormat, arguments: va_args)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSFastEnumeration.swift b/stdlib/public/SDK/Foundation/NSFastEnumeration.swift
new file mode 100644
index 0000000..c63f056
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSFastEnumeration.swift
@@ -0,0 +1,78 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+
+//===----------------------------------------------------------------------===//
+// Fast enumeration
+//===----------------------------------------------------------------------===//
+
+// NB: This is a class because fast enumeration passes around interior pointers
+// to the enumeration state, so the state cannot be moved in memory. We will
+// probably need to implement fast enumeration in the compiler as a primitive
+// to implement it both correctly and efficiently.
+final public class NSFastEnumerationIterator : IteratorProtocol {
+  var enumerable: NSFastEnumeration
+  var state: [NSFastEnumerationState]
+  var n: Int
+  var count: Int
+
+  /// Size of ObjectsBuffer, in ids.
+  static var STACK_BUF_SIZE: Int { return 4 }
+
+  var objects: [Unmanaged<AnyObject>?]
+
+  public func next() -> Any? {
+    if n == count {
+      // FIXME: Is this check necessary before refresh()?
+      if count == 0 { return nil }
+      refresh()
+      if count == 0 { return nil }
+    }
+    let next: Any = state[0].itemsPtr![n]!
+    n += 1
+    return next
+  }
+
+  func refresh() {
+    _sanityCheck(objects.count > 0)
+    n = 0
+    objects.withUnsafeMutableBufferPointer {
+      count = enumerable.countByEnumerating(
+        with: &state,
+        objects: AutoreleasingUnsafeMutablePointer($0.baseAddress!),
+        count: $0.count)
+    }
+  }
+
+  public init(_ enumerable: NSFastEnumeration) {
+    self.enumerable = enumerable
+    self.state = [ NSFastEnumerationState(
+      state: 0, itemsPtr: nil,
+      mutationsPtr: _fastEnumerationStorageMutationsPtr,
+      extra: (0, 0, 0, 0, 0)) ]
+    self.objects = Array(
+      repeating: nil, count: NSFastEnumerationIterator.STACK_BUF_SIZE)
+    self.n = -1
+    self.count = -1
+  }
+}
+
+extension NSEnumerator : Sequence {
+  /// Return an *iterator* over the *enumerator*.
+  ///
+  /// - Complexity: O(1).
+  public func makeIterator() -> NSFastEnumerationIterator {
+    return NSFastEnumerationIterator(self)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSGeometry.swift b/stdlib/public/SDK/Foundation/NSGeometry.swift
new file mode 100644
index 0000000..6d7d893
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSGeometry.swift
@@ -0,0 +1,57 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+import CoreGraphics
+
+
+#if os(OSX)
+
+//===----------------------------------------------------------------------===//
+// NSRectEdge
+//===----------------------------------------------------------------------===//
+
+// In the SDK, the following NS*Edge constants are defined as macros for the
+// corresponding CGRectEdge enumerators.  Thus, in the SDK, NS*Edge constants
+// have CGRectEdge type.  This is not correct for Swift (as there is no
+// implicit conversion to NSRectEdge).
+
+@available(*, unavailable, renamed: "NSRectEdge.MinX")
+public var NSMinXEdge: NSRectEdge {
+  fatalError("unavailable property can't be accessed")
+}
+@available(*, unavailable, renamed: "NSRectEdge.MinY")
+public var NSMinYEdge: NSRectEdge {
+  fatalError("unavailable property can't be accessed")
+}
+@available(*, unavailable, renamed: "NSRectEdge.MaxX")
+public var NSMaxXEdge: NSRectEdge {
+  fatalError("unavailable property can't be accessed")
+}
+@available(*, unavailable, renamed: "NSRectEdge.MaxY")
+public var NSMaxYEdge: NSRectEdge {
+  fatalError("unavailable property can't be accessed")
+}
+
+extension NSRectEdge {
+  public init(rectEdge: CGRectEdge) {
+    self = NSRectEdge(rawValue: UInt(rectEdge.rawValue))!
+  }
+}
+
+extension CGRectEdge {
+  public init(rectEdge: NSRectEdge) {
+    self = CGRectEdge(rawValue: UInt32(rectEdge.rawValue))!
+  }
+}
+
+#endif
diff --git a/stdlib/public/SDK/Foundation/NSIndexSet.swift b/stdlib/public/SDK/Foundation/NSIndexSet.swift
new file mode 100644
index 0000000..12a2998
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSIndexSet.swift
@@ -0,0 +1,51 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+// FIXME: move inside NSIndexSet when the compiler supports this.
+public struct NSIndexSetIterator : IteratorProtocol {
+  public typealias Element = Int
+
+  internal let _set: NSIndexSet
+  internal var _first: Bool = true
+  internal var _current: Int?
+
+  internal init(set: NSIndexSet) {
+    self._set = set
+    self._current = nil
+  }
+
+  public mutating func next() -> Int? {
+    if _first {
+      _current = _set.firstIndex
+      _first = false
+    } else if let c = _current {
+      _current = _set.indexGreaterThanIndex(c)
+    } else {
+      // current is already nil
+    }
+    if _current == NSNotFound {
+      _current = nil
+    }
+    return _current
+  }
+}
+
+extension NSIndexSet : Sequence {
+  /// Return an *iterator* over the elements of this *sequence*.
+  ///
+  /// - Complexity: O(1).
+  public func makeIterator() -> NSIndexSetIterator {
+    return NSIndexSetIterator(set: self)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSNumber.swift.gyb b/stdlib/public/SDK/Foundation/NSNumber.swift.gyb
new file mode 100644
index 0000000..15f6e61
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSNumber.swift.gyb
@@ -0,0 +1,323 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+import CoreGraphics
+
+//===----------------------------------------------------------------------===//
+// Numbers
+//===----------------------------------------------------------------------===//
+
+@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetKind")
+internal func _swift_Foundation_TypePreservingNSNumberGetKind(
+  _ value: NSNumber
+) -> UInt8
+
+// This enum has a matching counterpart in TypePreservingNSNumber.mm. Please
+// update both copies when changing it.
+internal enum _SwiftTypePreservingNSNumberTag : UInt8 {
+  case SwiftInt     =  0
+  case SwiftInt64   =  1
+  case SwiftInt32   =  2
+  case SwiftInt16   =  3
+  case SwiftInt8    =  4
+  case SwiftUInt    =  5
+  case SwiftUInt64  =  6
+  case SwiftUInt32  =  7
+  case SwiftUInt16  =  8
+  case SwiftUInt8   =  9
+  case SwiftFloat   = 10
+  case SwiftDouble  = 11
+  case SwiftCGFloat = 12
+  case SwiftBool    = 13
+}
+
+// Conversions between NSNumber and various numeric types. The
+// conversion to NSNumber is automatic (auto-boxing), while conversion
+// back to a specific numeric type requires a cast.
+
+%{
+# The set of types we bridge to NSNumber using a Swift-type-preserving
+# subclass. Note that this doesn't include Bool or CGFloat, which require
+# special handling.
+bridgedNumberTypes = [
+  ('Int',     'int'),
+  ('Int64',   'int64'),
+  ('Int32',   'int32'),
+  ('Int16',   'int16'),
+  ('Int8',    'int8'),
+  ('UInt',    'uint'),
+  ('UInt64',  'uint64'),
+  ('UInt32',  'uint32'),
+  ('UInt16',  'uint16'),
+  ('UInt8',   'uint8'),
+  ('Float',   'float'),
+  ('Double',  'double'),
+]
+}%
+
+% for NumberType, accessorName in bridgedNumberTypes:
+
+@_silgen_name("_swift_Foundation_TypePreservingNSNumberWith${NumberType}")
+internal func _swift_Foundation_TypePreservingNSNumberWith${NumberType}(
+  _ value: ${NumberType}
+) -> NSNumber
+
+@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetAs${NumberType}")
+internal func _swift_Foundation_TypePreservingNSNumberGetAs${NumberType}(
+  _ value: NSNumber
+) -> ${NumberType}
+
+extension ${NumberType} : _ObjectiveCBridgeable {
+  public init(_ number: NSNumber) {
+    self = number.${accessorName}Value
+  }
+
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSNumber {
+    return _swift_Foundation_TypePreservingNSNumberWith${NumberType}(self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout ${NumberType}?
+  ) {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
+      precondition(tag == .Swift${NumberType},
+        "NSNumber does not contain right type to be cast to ${NumberType}")
+    }
+
+    result = x.${accessorName}Value
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout ${NumberType}?
+  ) -> Bool {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
+       tag != .Swift${NumberType} {
+      result = nil
+      return false
+    }
+
+    result = x.${accessorName}Value
+    return true
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSNumber?
+  ) -> ${NumberType} {
+    let unwrappedSource = source!
+
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
+      precondition(tag == .Swift${NumberType},
+        "NSNumber does not contain right type to be cast to ${NumberType}")
+    }
+
+    return unwrappedSource.${accessorName}Value
+  }
+}
+% end
+
+// Cocoa's implementation of NSNumber already preserves the type of Bool
+// values by producing a CFBoolean instance instead of a CFNumber instance
+// under the hood. Property list and JSON serialization in Foundation rely
+// on -[NSNumber numberWithBool:] producing the correct implementation-
+// internal subclass to know when to serialize as a boolean instead of a
+// number, so implement Bool's bridging in terms of the standard NSNumber
+// interfaces.
+extension Bool: _ObjectiveCBridgeable {
+  public init(_ number: NSNumber) {
+    self = number.boolValue
+  }
+
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSNumber {
+    return NSNumber(value: self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout Bool?
+  ) {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
+      precondition(tag == .SwiftBool,
+        "NSNumber does not contain right type to be cast to Bool")
+    }
+
+    result = x.boolValue
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout Bool?
+  ) -> Bool {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
+       tag != .SwiftBool {
+      result = nil
+      return false
+    }
+
+    result = x.boolValue
+    return true
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSNumber?
+  ) -> Bool {
+    let unwrappedSource = source!
+
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
+      precondition(tag == .SwiftBool,
+        "NSNumber does not contain right type to be cast to Bool")
+    }
+
+    return unwrappedSource.boolValue
+  }
+}
+
+// CGFloat bridging.
+
+@_silgen_name("_swift_Foundation_TypePreservingNSNumberWithCGFloat")
+internal func _swift_Foundation_TypePreservingNSNumberWithCGFloat(
+  _ value: CGFloat
+) -> NSNumber
+
+@_silgen_name("_swift_Foundation_TypePreservingNSNumberGetAsCGFloat")
+internal func _swift_Foundation_TypePreservingNSNumberGetAsCGFloat(
+  _ value: NSNumber
+) -> CGFloat
+
+extension CGFloat : _ObjectiveCBridgeable {
+  public init(_ number: NSNumber) {
+    self.native = CGFloat.NativeType(number)
+  }
+
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSNumber {
+    return _swift_Foundation_TypePreservingNSNumberWithCGFloat(self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout CGFloat?
+  ) {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)) {
+      precondition(tag == .SwiftCGFloat,
+        "NSNumber does not contain right type to be cast to CGFloat")
+    }
+    
+    result = CGFloat(x)
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSNumber,
+    result: inout CGFloat?
+  ) -> Bool {
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(x)),
+       tag != .SwiftCGFloat {
+      result = nil
+      return false
+    }
+
+    result = CGFloat(x)
+    return true
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSNumber?
+  ) -> CGFloat {
+    let unwrappedSource = source!
+
+    // If the NSNumber instance preserved its Swift type, we only want to allow
+    // the cast if the type matches.
+    if let tag = _SwiftTypePreservingNSNumberTag(rawValue:
+        _swift_Foundation_TypePreservingNSNumberGetKind(unwrappedSource)) {
+      precondition(tag == .SwiftCGFloat,
+        "NSNumber does not contain right type to be cast to CGFloat")
+    }
+
+    return CGFloat(unwrappedSource)
+  }
+}
+
+// Literal support for NSNumber
+extension NSNumber
+  : ExpressibleByFloatLiteral,
+    ExpressibleByIntegerLiteral,
+    ExpressibleByBooleanLiteral
+{
+  /// Create an instance initialized to `value`.
+  public required convenience init(integerLiteral value: Int) {
+    self.init(value: value)
+  }
+
+  /// Create an instance initialized to `value`.
+  public required convenience init(floatLiteral value: Double) {
+    self.init(value: value)
+  }
+
+  /// Create an instance initialized to `value`.
+  public required convenience init(booleanLiteral value: Bool) {
+    self.init(value: value)
+  }
+}
+
+extension NSNumber : _HasCustomAnyHashableRepresentation {
+  // Must be @nonobjc to prevent infinite recursion trying to bridge
+  // AnyHashable to NSObject.
+  @nonobjc
+  public func _toCustomAnyHashable() -> AnyHashable? {
+    guard let kind = _SwiftTypePreservingNSNumberTag(
+      rawValue: _swift_Foundation_TypePreservingNSNumberGetKind(self)
+    ) else {
+      if let nsDecimalNumber: NSDecimalNumber = self as? NSDecimalNumber {
+        return AnyHashable(nsDecimalNumber as Decimal)
+      }
+      return nil
+    }
+    switch kind {
+% for NumberType, _ in bridgedNumberTypes:
+    case .Swift${NumberType}:
+      return AnyHashable(_swift_Foundation_TypePreservingNSNumberGetAs${NumberType}(self))
+% end
+    case .SwiftCGFloat:
+      return AnyHashable(_swift_Foundation_TypePreservingNSNumberGetAsCGFloat(self))
+    case .SwiftBool:
+      return AnyHashable(self.boolValue)
+    }
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSPredicate.swift b/stdlib/public/SDK/Foundation/NSPredicate.swift
new file mode 100644
index 0000000..c65c28c
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSPredicate.swift
@@ -0,0 +1,22 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+extension NSPredicate {
+  // + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;
+  public
+  convenience init(format predicateFormat: String, _ args: CVarArg...) {
+    let va_args = getVaList(args)
+    self.init(format: predicateFormat, arguments: va_args)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSRange.swift b/stdlib/public/SDK/Foundation/NSRange.swift
new file mode 100644
index 0000000..68043f5
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSRange.swift
@@ -0,0 +1,44 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// Ranges
+//===----------------------------------------------------------------------===//
+
+extension NSRange {
+  public init(_ x: Range<Int>) {
+    location = x.lowerBound
+    length = x.count
+  }
+
+  // FIXME(ABI)#75 (Conditional Conformance): this API should be an extension on Range.
+  // Can't express it now because the compiler does not support conditional
+  // extensions with type equality constraints.
+  public func toRange() -> Range<Int>? {
+    if location == NSNotFound { return nil }
+    return location..<(location+length)
+  }
+}
+
+extension NSRange : CustomReflectable {
+  public var customMirror: Mirror {
+    return Mirror(self, children: ["location": location, "length": length])
+  }
+}
+
+extension NSRange : CustomPlaygroundQuickLookable {
+  public var customPlaygroundQuickLook: PlaygroundQuickLook {
+    return .range(Int64(location), Int64(length))
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSSet.swift b/stdlib/public/SDK/Foundation/NSSet.swift
new file mode 100644
index 0000000..970f880
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSSet.swift
@@ -0,0 +1,202 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+extension Set {
+  /// Private initializer used for bridging.
+  ///
+  /// The provided `NSSet` will be copied to ensure that the copy can
+  /// not be mutated by other code.
+  public init(_cocoaSet: _NSSet) {
+    _sanityCheck(_isBridgedVerbatimToObjectiveC(Element.self),
+      "Set can be backed by NSSet _variantStorage only when the member type can be bridged verbatim to Objective-C")
+    // FIXME: We would like to call CFSetCreateCopy() to avoid doing an
+    // objc_msgSend() for instances of CoreFoundation types.  We can't do that
+    // today because CFSetCreateCopy() copies dictionary contents
+    // unconditionally, resulting in O(n) copies even for immutable dictionaries.
+    //
+    // <rdar://problem/20697680> CFSetCreateCopy() does not call copyWithZone:
+    //
+    // The bug is fixed in: OS X 10.11.0, iOS 9.0, all versions of tvOS
+    // and watchOS.
+    self = Set(
+      _immutableCocoaSet:
+        unsafeBitCast(_cocoaSet.copy(with: nil) as AnyObject, to: _NSSet.self))
+  }
+}
+
+extension NSSet : Sequence {
+  /// Return an *iterator* over the elements of this *sequence*.
+  ///
+  /// - Complexity: O(1).
+  public func makeIterator() -> NSFastEnumerationIterator {
+    return NSFastEnumerationIterator(self)
+  }
+}
+
+extension NSOrderedSet : Sequence {
+  /// Return an *iterator* over the elements of this *sequence*.
+  ///
+  /// - Complexity: O(1).
+  public func makeIterator() -> NSFastEnumerationIterator {
+    return NSFastEnumerationIterator(self)
+  }
+}
+
+// Set<Element> is conditionally bridged to NSSet
+extension Set : _ObjectiveCBridgeable {
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSSet {
+    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject, to: NSSet.self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(_ s: NSSet, result: inout Set?) {
+    if let native =
+      Set<Element>._bridgeFromObjectiveCAdoptingNativeStorageOf(s as AnyObject) {
+
+      result = native
+      return
+    }
+
+    if _isBridgedVerbatimToObjectiveC(Element.self) {
+      result = Set<Element>(_cocoaSet: unsafeBitCast(s, to: _NSSet.self))
+      return
+    }
+
+    // `Set<Element>` where `Element` is a value type may not be backed by
+    // an NSSet.
+    var builder = _SetBuilder<Element>(count: s.count)
+    s.enumerateObjects({
+      (anyMember: Any, stop: UnsafeMutablePointer<ObjCBool>) in
+      builder.add(member: Swift._forceBridgeFromObjectiveC(
+        anyMember as AnyObject, Element.self))
+    })
+    result = builder.take()
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSSet, result: inout Set?
+  ) -> Bool {
+    let anySet = x as Set<NSObject>
+    if _isBridgedVerbatimToObjectiveC(Element.self) {
+      result = Swift._setDownCastConditional(anySet)
+      return result != nil
+    }
+
+    result = Swift._setBridgeFromObjectiveCConditional(anySet)
+    return result != nil
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(_ s: NSSet?) -> Set {
+    // `nil` has historically been used as a stand-in for an empty
+    // set; map it to an empty set.
+    if _slowPath(s == nil) { return Set() }
+
+    if let native =
+      Set<Element>._bridgeFromObjectiveCAdoptingNativeStorageOf(s! as AnyObject) {
+
+      return native
+    }
+
+    if _isBridgedVerbatimToObjectiveC(Element.self) {
+      return Set<Element>(_cocoaSet: unsafeBitCast(s! as AnyObject,
+                                                   to: _NSSet.self))
+    }
+
+    // `Set<Element>` where `Element` is a value type may not be backed by
+    // an NSSet.
+    var builder = _SetBuilder<Element>(count: s!.count)
+    s!.enumerateObjects({
+      (anyMember: Any, stop: UnsafeMutablePointer<ObjCBool>) in
+      builder.add(member: Swift._forceBridgeFromObjectiveC(
+        anyMember as AnyObject, Element.self))
+    })
+    return builder.take()
+  }
+}
+
+extension NSSet : _HasCustomAnyHashableRepresentation {
+  // Must be @nonobjc to avoid infinite recursion during bridging
+  @nonobjc
+  public func _toCustomAnyHashable() -> AnyHashable? {
+    return AnyHashable(self as! Set<AnyHashable>)
+  }
+}
+
+extension NSOrderedSet {
+  // - (instancetype)initWithObjects:(id)firstObj, ...
+  public convenience init(objects elements: Any...) {
+    self.init(array: elements)
+  }
+}
+
+extension NSSet {
+  // - (instancetype)initWithObjects:(id)firstObj, ...
+  public convenience init(objects elements: Any...) {
+    self.init(array: elements)
+  }
+}
+
+extension NSSet : ExpressibleByArrayLiteral {
+  public required convenience init(arrayLiteral elements: Any...) {
+    self.init(array: elements)
+  }
+}
+
+extension NSOrderedSet : ExpressibleByArrayLiteral {
+  public required convenience init(arrayLiteral elements: Any...) {
+    self.init(array: elements)
+  }
+}
+
+extension NSSet {
+  /// Initializes a newly allocated set and adds to it objects from
+  /// another given set.
+  ///
+  /// - Returns: An initialized objects set containing the objects from
+  ///   `set`. The returned set might be different than the original
+  ///   receiver.
+  @nonobjc
+  public convenience init(set anSet: NSSet) {
+    // FIXME(performance)(compiler limitation): we actually want to do just
+    // `self = anSet.copy()`, but Swift does not have factory
+    // initializers right now.
+    let numElems = anSet.count
+    let stride = MemoryLayout<Optional<UnsafeRawPointer>>.stride
+    let alignment = MemoryLayout<Optional<UnsafeRawPointer>>.alignment
+    let bufferSize = stride * numElems
+    assert(stride == MemoryLayout<AnyObject>.stride)
+    assert(alignment == MemoryLayout<AnyObject>.alignment)
+
+    let rawBuffer = UnsafeMutableRawPointer.allocate(
+      bytes: bufferSize, alignedTo: alignment)
+    defer {
+      rawBuffer.deallocate(bytes: bufferSize, alignedTo: alignment)
+      _fixLifetime(anSet)
+    }
+    let valueBuffer = rawBuffer.bindMemory(
+     to: Optional<UnsafeRawPointer>.self, capacity: numElems)
+
+    CFSetGetValues(anSet, valueBuffer)
+    let valueBufferForInit = rawBuffer.assumingMemoryBound(to: AnyObject.self)
+    self.init(objects: valueBufferForInit, count: numElems)
+  }
+}
+
+extension NSSet : CustomReflectable {
+  public var customMirror: Mirror {
+    return Mirror(reflecting: self as Set<NSObject>)
+  }
+}
+
+extension Set: CVarArg {}
diff --git a/stdlib/public/SDK/Foundation/NSString.swift b/stdlib/public/SDK/Foundation/NSString.swift
new file mode 100644
index 0000000..9afc6f1
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSString.swift
@@ -0,0 +1,131 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// Strings
+//===----------------------------------------------------------------------===//
+
+@available(*, unavailable, message: "Please use String or NSString")
+public class NSSimpleCString {}
+
+@available(*, unavailable, message: "Please use String or NSString")
+public class NSConstantString {}
+
+@_silgen_name("swift_convertStringToNSString")
+public // COMPILER_INTRINSIC
+func _convertStringToNSString(_ string: String) -> NSString {
+  return string._bridgeToObjectiveC()
+}
+
+extension NSString : ExpressibleByStringLiteral {
+  /// Create an instance initialized to `value`.
+  public required convenience init(unicodeScalarLiteral value: StaticString) {
+    self.init(stringLiteral: value)
+  }
+
+  public required convenience init(
+    extendedGraphemeClusterLiteral value: StaticString
+  ) {
+    self.init(stringLiteral: value)
+  }
+
+  /// Create an instance initialized to `value`.
+  public required convenience init(stringLiteral value: StaticString) {
+    var immutableResult: NSString
+    if value.hasPointerRepresentation {
+      immutableResult = NSString(
+        bytesNoCopy: UnsafeMutableRawPointer(mutating: value.utf8Start),
+        length: Int(value.utf8CodeUnitCount),
+        encoding: value.isASCII ? String.Encoding.ascii.rawValue : String.Encoding.utf8.rawValue,
+        freeWhenDone: false)!
+    } else {
+      var uintValue = value.unicodeScalar
+      immutableResult = NSString(
+        bytes: &uintValue,
+        length: 4,
+        encoding: String.Encoding.utf32.rawValue)!
+    }
+    self.init(string: immutableResult as String)
+  }
+}
+
+extension NSString : _HasCustomAnyHashableRepresentation {
+  // Must be @nonobjc to prevent infinite recursion trying to bridge
+  // AnyHashable to NSObject.
+  @nonobjc
+  public func _toCustomAnyHashable() -> AnyHashable? {
+    // Consistently use Swift equality and hashing semantics for all strings.
+    return AnyHashable(self as String)
+  }
+}
+
+extension NSString {
+  public convenience init(format: NSString, _ args: CVarArg...) {
+    // We can't use withVaList because 'self' cannot be captured by a closure
+    // before it has been initialized.
+    let va_args = getVaList(args)
+    self.init(format: format as String, arguments: va_args)
+  }
+
+  public convenience init(
+    format: NSString, locale: Locale?, _ args: CVarArg...
+  ) {
+    // We can't use withVaList because 'self' cannot be captured by a closure
+    // before it has been initialized.
+    let va_args = getVaList(args)
+    self.init(format: format as String, locale: locale, arguments: va_args)
+  }
+
+  public class func localizedStringWithFormat(
+    _ format: NSString, _ args: CVarArg...
+  ) -> Self {
+    return withVaList(args) {
+      self.init(format: format as String, locale: Locale.current, arguments: $0)
+    }
+  }
+
+  public func appendingFormat(_ format: NSString, _ args: CVarArg...)
+  -> NSString {
+    return withVaList(args) {
+      self.appending(NSString(format: format as String, arguments: $0) as String) as NSString
+    }
+  }
+}
+
+extension NSMutableString {
+  public func appendFormat(_ format: NSString, _ args: CVarArg...) {
+    return withVaList(args) {
+      self.append(NSString(format: format as String, arguments: $0) as String)
+    }
+  }
+}
+
+extension NSString {
+  /// Returns an `NSString` object initialized by copying the characters
+  /// from another given string.
+  ///
+  /// - Returns: An `NSString` object initialized by copying the
+  ///   characters from `aString`. The returned object may be different
+  ///   from the original receiver.
+  @nonobjc
+  public convenience init(string aString: NSString) {
+    self.init(string: aString as String)
+  }
+}
+
+extension NSString : CustomPlaygroundQuickLookable {
+  public var customPlaygroundQuickLook: PlaygroundQuickLook {
+    return .text(self as String)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSTextCheckingResult.swift b/stdlib/public/SDK/Foundation/NSTextCheckingResult.swift
new file mode 100644
index 0000000..b2b4269
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSTextCheckingResult.swift
@@ -0,0 +1,31 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// TextChecking
+//===----------------------------------------------------------------------===//
+
+extension NSTextCheckingResult.CheckingType {
+    public static var allSystemTypes : NSTextCheckingResult.CheckingType {
+        return NSTextCheckingResult.CheckingType(rawValue: 0xffffffff)
+    }
+    
+    public static var allCustomTypes : NSTextCheckingResult.CheckingType {
+        return NSTextCheckingResult.CheckingType(rawValue: 0xffffffff << 32)
+    }
+    
+    public static var allTypes : NSTextCheckingResult.CheckingType {
+        return NSTextCheckingResult.CheckingType(rawValue: UInt64.max)
+    }
+}
diff --git a/stdlib/public/SDK/Foundation/NSURL.swift b/stdlib/public/SDK/Foundation/NSURL.swift
new file mode 100644
index 0000000..8ca6616
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSURL.swift
@@ -0,0 +1,20 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+extension NSURL : CustomPlaygroundQuickLookable {
+  public var customPlaygroundQuickLook: PlaygroundQuickLook {
+    guard let str = absoluteString else { return .text("Unknown URL") }
+    return .url(str)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/NSUndoManager.swift b/stdlib/public/SDK/Foundation/NSUndoManager.swift
new file mode 100644
index 0000000..4578185
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/NSUndoManager.swift
@@ -0,0 +1,37 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+@_silgen_name("NS_Swift_NSUndoManager_registerUndoWithTargetHandler")
+internal func NS_Swift_NSUndoManager_registerUndoWithTargetHandler(
+  _ self_: AnyObject,
+  _ target: AnyObject,
+  _ handler: @escaping @convention(block) (AnyObject) -> Void)
+
+extension UndoManager {
+  @available(*, unavailable, renamed: "registerUndo(withTarget:handler:)")
+  public func registerUndoWithTarget<TargetType : AnyObject>(_ target: TargetType, handler: (TargetType) -> Void) {
+    fatalError("This API has been renamed")
+  }
+
+  @available(OSX 10.11, iOS 9.0, *)
+  public func registerUndo<TargetType : AnyObject>(withTarget target: TargetType, handler: @escaping (TargetType) -> Void) {
+    // The generic blocks use a different ABI, so we need to wrap the provided
+    // handler in something ObjC compatible.
+    let objcCompatibleHandler: (AnyObject) -> Void = { internalTarget in
+      handler(internalTarget as! TargetType)
+    }
+    NS_Swift_NSUndoManager_registerUndoWithTargetHandler(
+      self as AnyObject, target as AnyObject, objcCompatibleHandler)
+  }
+}
diff --git a/stdlib/public/SDK/Foundation/String.swift b/stdlib/public/SDK/Foundation/String.swift
new file mode 100644
index 0000000..58b1b45
--- /dev/null
+++ b/stdlib/public/SDK/Foundation/String.swift
@@ -0,0 +1,63 @@
+//===----------------------------------------------------------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+@_exported import Foundation // Clang module
+
+//===----------------------------------------------------------------------===//
+// New Strings
+//===----------------------------------------------------------------------===//
+
+//
+// Conversion from NSString to Swift's native representation
+//
+
+extension String {
+  public init(_ cocoaString: NSString) {
+    self = String(_cocoaString: cocoaString)
+  }
+}
+
+extension String : _ObjectiveCBridgeable {
+  @_semantics("convertToObjectiveC")
+  public func _bridgeToObjectiveC() -> NSString {
+    // This method should not do anything extra except calling into the
+    // implementation inside core.  (These two entry points should be
+    // equivalent.)
+    return unsafeBitCast(_bridgeToObjectiveCImpl() as AnyObject, to: NSString.self)
+  }
+
+  public static func _forceBridgeFromObjectiveC(
+    _ x: NSString,
+    result: inout String?
+  ) {
+    result = String(x)
+  }
+
+  public static func _conditionallyBridgeFromObjectiveC(
+    _ x: NSString,
+    result: inout String?
+  ) -> Bool {
+    self._forceBridgeFromObjectiveC(x, result: &result)
+    return result != nil
+  }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    _ source: NSString?
+  ) -> String {
+    // `nil` has historically been used as a stand-in for an empty
+    // string; map it to an empty string.
+    if _slowPath(source == nil) { return String() }
+    return String(source!)
+  }
+}
+
+extension String: CVarArg {}
diff --git a/stdlib/public/SDK/Foundation/URL.swift b/stdlib/public/SDK/Foundation/URL.swift
index 5288f14..ad48ac1 100644
--- a/stdlib/public/SDK/Foundation/URL.swift
+++ b/stdlib/public/SDK/Foundation/URL.swift
@@ -287,8 +287,22 @@
     /// The quarantine properties as defined in LSQuarantine.h. To remove quarantine information from a file, pass `nil` as the value when setting this property.
     @available(OSX 10.10, *)
     public var quarantineProperties: [String : Any]? {
-        get { return _get(.quarantinePropertiesKey) }
-        set { _set(.quarantinePropertiesKey, newValue: newValue as NSObject?) }
+        get {
+            // If a caller has caused us to stash NSNull in the dictionary (via set), make sure to return nil instead of NSNull
+            if let isNull = _values[.quarantinePropertiesKey] as? NSNull {
+                return nil
+            } else {
+                return _values[.quarantinePropertiesKey] as? [String : Any]
+            }
+        }
+        set {
+            if let v = newValue {
+                _set(.quarantinePropertiesKey, newValue: newValue as NSObject?)
+            } else {
+                // Set to NSNull, a special case for deleting quarantine properties
+                _set(.quarantinePropertiesKey, newValue: NSNull())
+            }
+        }
     }
 #endif
     
diff --git a/stdlib/public/core/Algorithm.swift b/stdlib/public/core/Algorithm.swift
index b207029..4f0b87e 100644
--- a/stdlib/public/core/Algorithm.swift
+++ b/stdlib/public/core/Algorithm.swift
@@ -106,8 +106,9 @@
   /// Once `nil` has been returned, all subsequent calls return `nil`.
   public mutating func next() -> Element? {
     guard let b = _base.next() else { return nil }
-    defer { _count += 1 }
-    return (offset: _count, element: b)
+    let result = (offset: _count, element: b)
+    _count += 1 
+    return result
   }
 }
 
diff --git a/stdlib/public/core/Arrays.swift.gyb b/stdlib/public/core/Arrays.swift.gyb
index 9e10fe4..ec66598 100644
--- a/stdlib/public/core/Arrays.swift.gyb
+++ b/stdlib/public/core/Arrays.swift.gyb
@@ -2170,7 +2170,7 @@
   /// - Returns: The return value of the `body` closure parameter, if any.
   ///
   /// - SeeAlso: `withUnsafeBytes`, `UnsafeRawBufferPointer`
-  public mutating func withUnsafeBytes<R>(
+  public func withUnsafeBytes<R>(
     _ body: (UnsafeRawBufferPointer) throws -> R
   ) rethrows -> R {
     return try self.withUnsafeBufferPointer {
diff --git a/stdlib/public/core/ContiguousArrayBuffer.swift b/stdlib/public/core/ContiguousArrayBuffer.swift
index 8d2b0ed..98dd2e6 100644
--- a/stdlib/public/core/ContiguousArrayBuffer.swift
+++ b/stdlib/public/core/ContiguousArrayBuffer.swift
@@ -32,15 +32,11 @@
     return try body(UnsafeBufferPointer(start: nil, count: 0))
   }
 
-  // FIXME(ABI)#26 (Type Checker): remove 'Void' arguments here and elsewhere in this file, they
-  // are a workaround for an old compiler limitation.
-  override func _getNonVerbatimBridgedCount(_ dummy: Void) -> Int {
+  override func _getNonVerbatimBridgedCount() -> Int {
     return 0
   }
 
-  override func _getNonVerbatimBridgedHeapBuffer(
-    _ dummy: Void
-  ) -> _HeapBuffer<Int, AnyObject> {
+  override func _getNonVerbatimBridgedHeapBuffer() -> _HeapBuffer<Int, AnyObject> {
     return _HeapBuffer<Int, AnyObject>(
       _HeapBufferStorage<Int, AnyObject>.self, 0, 0)
   }
@@ -122,7 +118,7 @@
   /// Returns the number of elements in the array.
   ///
   /// - Precondition: `Element` is bridged non-verbatim.
-  override internal func _getNonVerbatimBridgedCount(_ dummy: Void) -> Int {
+  override internal func _getNonVerbatimBridgedCount() -> Int {
     _sanityCheck(
       !_isBridgedVerbatimToObjectiveC(Element.self),
       "Verbatim bridging should be handled separately")
@@ -132,7 +128,7 @@
   /// Bridge array elements and return a new buffer that owns them.
   ///
   /// - Precondition: `Element` is bridged non-verbatim.
-  override internal func _getNonVerbatimBridgedHeapBuffer(_ dummy: Void) ->
+  override internal func _getNonVerbatimBridgedHeapBuffer() ->
     _HeapBuffer<Int, AnyObject> {
     _sanityCheck(
       !_isBridgedVerbatimToObjectiveC(Element.self),
diff --git a/stdlib/public/core/HashedCollectionsAnyHashableExtensions.swift.gyb b/stdlib/public/core/HashedCollectionsAnyHashableExtensions.swift.gyb
index 406117e..b38ae8c 100644
--- a/stdlib/public/core/HashedCollectionsAnyHashableExtensions.swift.gyb
+++ b/stdlib/public/core/HashedCollectionsAnyHashableExtensions.swift.gyb
@@ -10,16 +10,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-// FIXME(ABI)#35 (Concrete Same Type Requirements): This protocol exists to identify
-// `AnyHashable` in conditional extensions.  Replace this protocol
-// with conditional extensions on `Set` and `Dictionary` "where Key ==
-// AnyHashable".
-public protocol _AnyHashableProtocol {
-  var base: Any { get }
-}
-
-extension AnyHashable : _AnyHashableProtocol {}
-
 //===----------------------------------------------------------------------===//
 // Convenience APIs for Set<AnyHashable>
 //===----------------------------------------------------------------------===//
@@ -49,8 +39,7 @@
   }
 }
 
-// FIXME(ABI)#37 (Concrete Same Type Requirements): replace with `where Element == AnyHashable`.
-extension Set where Element : _AnyHashableProtocol {
+extension Set where Element == AnyHashable {
   public mutating func insert<ConcreteElement : Hashable>(
     _ newMember: ConcreteElement
   ) -> (inserted: Bool, memberAfterInsert: ConcreteElement) {
@@ -65,7 +54,7 @@
   public mutating func update<ConcreteElement : Hashable>(
     with newMember: ConcreteElement
   ) -> ConcreteElement? {
-    return _concreteElement_update(with: AnyHashable(newMember) as! Element)
+    return _concreteElement_update(with: AnyHashable(newMember))
       .map { $0.base as! ConcreteElement }
   }
 
@@ -73,7 +62,7 @@
   public mutating func remove<ConcreteElement : Hashable>(
     _ member: ConcreteElement
   ) -> ConcreteElement? {
-    return _concreteElement_remove(AnyHashable(member) as! Element)
+    return _concreteElement_remove(AnyHashable(member))
       .map { $0.base as! ConcreteElement }
   }
 }
@@ -109,16 +98,15 @@
   }
 }
 
-// FIXME(ABI)#39 (Concrete Same Type Requirements): replace with `where Element == AnyHashable`.
-extension Dictionary where Key : _AnyHashableProtocol {
+extension Dictionary where Key == AnyHashable {
   public subscript(_ key: _Hashable) -> Value? {
     // FIXME(ABI)#40 (Generic subscripts): replace this API with a
     // generic subscript.
     get {
-      return self[_concreteKey: key._toAnyHashable() as! Key]
+      return self[_concreteKey: key._toAnyHashable()]
     }
     set {
-      self[_concreteKey: key._toAnyHashable() as! Key] = newValue
+      self[_concreteKey: key._toAnyHashable()] = newValue
     }
   }
 
@@ -126,14 +114,14 @@
   public mutating func updateValue<ConcreteKey : Hashable>(
     _ value: Value, forKey key: ConcreteKey
   ) -> Value? {
-    return _concreteKey_updateValue(value, forKey: AnyHashable(key) as! Key)
+    return _concreteKey_updateValue(value, forKey: AnyHashable(key))
   }
 
   @discardableResult
   public mutating func removeValue<ConcreteKey : Hashable>(
     forKey key: ConcreteKey
   ) -> Value? {
-    return _concreteKey_removeValue(forKey: AnyHashable(key) as! Key)
+    return _concreteKey_removeValue(forKey: AnyHashable(key))
   }
 }
 
diff --git a/stdlib/public/core/StringCharacterView.swift b/stdlib/public/core/StringCharacterView.swift
index 3ff3c9e..570ee83 100644
--- a/stdlib/public/core/StringCharacterView.swift
+++ b/stdlib/public/core/StringCharacterView.swift
@@ -54,14 +54,22 @@
   public struct CharacterView {
     internal var _core: _StringCore
 
+    /// The offset of this view's `_core` from an original core. This works
+    /// around the fact that `_StringCore` is always zero-indexed.
+    /// `_coreOffset` should be subtracted from `UnicodeScalarIndex._position`
+    /// before that value is used as a `_core` index.
+    internal var _coreOffset: Int
+
     /// Creates a view of the given string.
     public init(_ text: String) {
       self._core = text._core
+      self._coreOffset = 0
     }
     
     public // @testable
-    init(_ _core: _StringCore) {
+    init(_ _core: _StringCore, coreOffset: Int = 0) {
       self._core = _core
+      self._coreOffset = coreOffset
     }
   }
 
@@ -139,7 +147,7 @@
 extension String.CharacterView : BidirectionalCollection {
   internal typealias UnicodeScalarView = String.UnicodeScalarView
   internal var unicodeScalars: UnicodeScalarView {
-    return UnicodeScalarView(_core)
+    return UnicodeScalarView(_core, coreOffset: _coreOffset)
   }
   
   /// A position in a string's `CharacterView` instance.
@@ -246,7 +254,7 @@
     from start: UnicodeScalarView.Index
   ) -> Int {
     var start = start
-    let end = UnicodeScalarView.Index(_position: _core.count)
+    let end = unicodeScalars.endIndex
     if start == end {
       return 0
     }
@@ -288,7 +296,7 @@
   internal func _measureExtendedGraphemeClusterBackward(
     from end: UnicodeScalarView.Index
   ) -> Int {
-    let start = UnicodeScalarView.Index(_position: 0)
+    let start = unicodeScalars.startIndex
     if start == end {
       return 0
     }
@@ -363,8 +371,8 @@
     with newElements: C
   ) where C : Collection, C.Iterator.Element == Character {
     let rawSubRange: Range<Int> =
-      bounds.lowerBound._base._position
-      ..< bounds.upperBound._base._position
+      bounds.lowerBound._base._position - _coreOffset
+      ..< bounds.upperBound._base._position - _coreOffset
     let lazyUTF16 = newElements.lazy.flatMap { $0.utf16 }
     _core.replaceSubrange(rawSubRange, with: lazyUTF16)
   }
@@ -436,10 +444,9 @@
   /// - Complexity: O(*n*) if the underlying string is bridged from
   ///   Objective-C, where *n* is the length of the string; otherwise, O(1).
   public subscript(bounds: Range<Index>) -> String.CharacterView {
-    let unicodeScalarRange =
-      bounds.lowerBound._base..<bounds.upperBound._base
-    return String.CharacterView(
-      String(_core).unicodeScalars[unicodeScalarRange]._core)
+    let unicodeScalarRange = bounds.lowerBound._base..<bounds.upperBound._base
+    return String.CharacterView(unicodeScalars[unicodeScalarRange]._core,
+      coreOffset: unicodeScalarRange.lowerBound._position)
   }
 }
 
diff --git a/stdlib/public/core/StringUTF16.swift b/stdlib/public/core/StringUTF16.swift
index 8e2e8a0..ecbff7e 100644
--- a/stdlib/public/core/StringUTF16.swift
+++ b/stdlib/public/core/StringUTF16.swift
@@ -145,7 +145,7 @@
     /// The position of the first code unit if the `String` is
     /// nonempty; identical to `endIndex` otherwise.
     public var startIndex: Index {
-      return Index(_offset: 0)
+      return Index(_offset: _offset)
     }
 
     /// The "past the end" position---that is, the position one greater than
@@ -153,7 +153,7 @@
     ///
     /// In an empty UTF-16 view, `endIndex` is equal to `startIndex`.
     public var endIndex: Index {
-      return Index(_offset: _length)
+      return Index(_offset: _offset + _length)
     }
 
     public struct Indices {
@@ -204,7 +204,7 @@
     }
 
     func _internalIndex(at i: Int) -> Int {
-      return _core.startIndex + _offset + i
+      return _core.startIndex + i
     }
 
     /// Accesses the code unit at the given position.
@@ -220,11 +220,10 @@
     /// - Parameter position: A valid index of the view. `position` must be
     ///   less than the view's end index.
     public subscript(i: Index) -> UTF16.CodeUnit {
-      let position = i._offset
-      _precondition(position >= 0 && position < _length,
+      _precondition(i >= startIndex && i < endIndex,
           "out-of-range access on a UTF16View")
 
-      let index = _internalIndex(at: position)
+      let index = _internalIndex(at: i._offset)
       let u = _core[index]
       if _fastPath((u >> 11) != 0b1101_1) {
         // Neither high-surrogate, nor low-surrogate -- well-formed sequence
@@ -292,8 +291,8 @@
     }
 
     public var description: String {
-      let start = _internalIndex(at: 0)
-      let end = _internalIndex(at: _length)
+      let start = _internalIndex(at: _offset)
+      let end = _internalIndex(at: _offset + _length)
       return String(_core[start..<end])
     }
 
@@ -337,17 +336,16 @@
   public init?(_ utf16: UTF16View) {
     let wholeString = String(utf16._core)
 
-    if let start = UTF16Index(
-      _offset: utf16._offset
-    ).samePosition(in: wholeString) {
-      if let end = UTF16Index(
-        _offset: utf16._offset + utf16._length
-      ).samePosition(in: wholeString) {
-        self = wholeString[start..<end]
-        return
-      }
+    guard
+      let start = UTF16Index(_offset: utf16._offset)
+        .samePosition(in: wholeString),
+      let end = UTF16Index(_offset: utf16._offset + utf16._length)
+        .samePosition(in: wholeString)
+      else
+    {
+        return nil
     }
-    return nil
+    self = wholeString[start..<end]
   }
 
   /// The index type for subscripting a string's `utf16` view.
diff --git a/stdlib/public/core/StringUnicodeScalarView.swift b/stdlib/public/core/StringUnicodeScalarView.swift
index f0b9a88..c15c0ad 100644
--- a/stdlib/public/core/StringUnicodeScalarView.swift
+++ b/stdlib/public/core/StringUnicodeScalarView.swift
@@ -62,8 +62,9 @@
     CustomStringConvertible,
     CustomDebugStringConvertible
   {
-    internal init(_ _core: _StringCore) {
+    internal init(_ _core: _StringCore, coreOffset: Int = 0) {
       self._core = _core
+      self._coreOffset = coreOffset
     }
 
     internal struct _ScratchIterator : IteratorProtocol {
@@ -109,12 +110,24 @@
       @_versioned internal var _position: Int
     }
 
+    /// Translates a `_core` index into a `UnicodeScalarIndex` using this view's
+    /// `_coreOffset`.
+    internal func _fromCoreIndex(_ i: Int) -> Index {
+      return Index(_position: i + _coreOffset)
+    }
+    
+    /// Translates a `UnicodeScalarIndex` into a `_core` index using this view's
+    /// `_coreOffset`.
+    internal func _toCoreIndex(_ i: Index) -> Int {
+      return i._position - _coreOffset
+    }
+    
     /// The position of the first Unicode scalar value if the string is
     /// nonempty.
     ///
     /// If the string is empty, `startIndex` is equal to `endIndex`.
     public var startIndex: Index {
-      return Index(_position: _core.startIndex)
+      return _fromCoreIndex(_core.startIndex)
     }
 
     /// The "past the end" position---that is, the position one greater than
@@ -122,31 +135,32 @@
     ///
     /// In an empty Unicode scalars view, `endIndex` is equal to `startIndex`.
     public var endIndex: Index {
-      return Index(_position: _core.endIndex)
+      return _fromCoreIndex(_core.endIndex)
     }
 
     /// Returns the next consecutive location after `i`.
     ///
     /// - Precondition: The next location exists.
     public func index(after i: Index) -> Index {
-      var scratch = _ScratchIterator(_core, i._position)
+      let i = _toCoreIndex(i)
+      var scratch = _ScratchIterator(_core, i)
       var decoder = UTF16()
       let (_, length) = decoder._decodeOne(&scratch)
-      return Index(_position: i._position + length)
+      return _fromCoreIndex(i + length)
     }
 
     /// Returns the previous consecutive location before `i`.
     ///
     /// - Precondition: The previous location exists.
     public func index(before i: Index) -> Index {
-      var i = i._position - 1
+      var i = _toCoreIndex(i) - 1
       let codeUnit = _core[i]
       if _slowPath((codeUnit >> 10) == 0b1101_11) {
         if i != 0 && (_core[i - 1] >> 10) == 0b1101_10 {
           i -= 1
         }
       }
-      return Index(_position: i)
+      return _fromCoreIndex(i)
     }
 
     /// Accesses the Unicode scalar value at the given position.
@@ -166,7 +180,7 @@
     /// - Parameter position: A valid index of the character view. `position`
     ///   must be less than the view's end index.
     public subscript(position: Index) -> UnicodeScalar {
-      var scratch = _ScratchIterator(_core, position._position)
+      var scratch = _ScratchIterator(_core, _toCoreIndex(position))
       var decoder = UTF16()
       switch decoder.decode(&scratch) {
       case .scalarValue(let us):
@@ -192,8 +206,9 @@
     /// - Complexity: O(*n*) if the underlying string is bridged from
     ///   Objective-C, where *n* is the length of the string; otherwise, O(1).
     public subscript(r: Range<Index>) -> UnicodeScalarView {
-      return UnicodeScalarView(
-        _core[r.lowerBound._position..<r.upperBound._position])
+      let rawSubRange = _toCoreIndex(r.lowerBound)..<_toCoreIndex(r.upperBound)
+      return UnicodeScalarView(_core[rawSubRange],
+        coreOffset: r.lowerBound._position)
     }
 
     /// An iterator over the Unicode scalars that make up a `UnicodeScalarView`
@@ -270,7 +285,7 @@
     }
 
     public var description: String {
-      return String(_core[startIndex._position..<endIndex._position])
+      return String(_core)
     }
 
     public var debugDescription: String {
@@ -278,6 +293,12 @@
     }
 
     internal var _core: _StringCore
+    
+    /// The offset of this view's `_core` from an original core. This works
+    /// around the fact that `_StringCore` is always zero-indexed.
+    /// `_coreOffset` should be subtracted from `UnicodeScalarIndex._position`
+    /// before that value is used as a `_core` index.
+    internal var _coreOffset: Int
   }
 
   /// Creates a string corresponding to the given collection of Unicode
@@ -391,9 +412,8 @@
     _ bounds: Range<Index>,
     with newElements: C
   ) where C : Collection, C.Iterator.Element == UnicodeScalar {
-    let rawSubRange: Range<Int> =
-      bounds.lowerBound._position
-      ..< bounds.upperBound._position
+    let rawSubRange: Range<Int> = _toCoreIndex(bounds.lowerBound) ..<
+      _toCoreIndex(bounds.upperBound)
     let lazyUTF16 = newElements.lazy.flatMap { $0.utf16 }
     _core.replaceSubrange(rawSubRange, with: lazyUTF16)
   }
diff --git a/stdlib/public/core/SwiftNativeNSArray.swift b/stdlib/public/core/SwiftNativeNSArray.swift
index 1b84f41..f9db279 100644
--- a/stdlib/public/core/SwiftNativeNSArray.swift
+++ b/stdlib/public/core/SwiftNativeNSArray.swift
@@ -259,12 +259,12 @@
       "Concrete subclasses must implement _withVerbatimBridgedUnsafeBuffer")
   }
 
-  internal func _getNonVerbatimBridgedCount(_ dummy: Void) -> Int {
+  internal func _getNonVerbatimBridgedCount() -> Int {
     _sanityCheckFailure(
       "Concrete subclasses must implement _getNonVerbatimBridgedCount")
   }
 
-  internal func _getNonVerbatimBridgedHeapBuffer(_ dummy: Void) ->
+  internal func _getNonVerbatimBridgedHeapBuffer() ->
     _HeapBuffer<Int, AnyObject> {
     _sanityCheckFailure(
       "Concrete subclasses must implement _getNonVerbatimBridgedHeapBuffer")
diff --git a/stdlib/public/runtime/Casting.cpp b/stdlib/public/runtime/Casting.cpp
index 7b48a68..2082032 100644
--- a/stdlib/public/runtime/Casting.cpp
+++ b/stdlib/public/runtime/Casting.cpp
@@ -2388,14 +2388,18 @@
 void _swift_setDownCastIndirect(OpaqueValue *destination,
                                 OpaqueValue *source,
                                 const Metadata *sourceValueType,
-                                const Metadata *targetValueType);
+                                const Metadata *targetValueType,
+                                const void *sourceValueHashable,
+                                const void *targetValueHashable);
 
 SWIFT_CC(swift)
 extern "C"
 bool _swift_setDownCastConditionalIndirect(OpaqueValue *destination,
-                                           OpaqueValue *source,
-                                           const Metadata *sourceValueType,
-                                           const Metadata *targetValueType);
+                                       OpaqueValue *source,
+                                       const Metadata *sourceValueType,
+                                       const Metadata *targetValueType,
+                                       const void *sourceValueHashable,
+                                       const void *targetValueHashable);
 
 SWIFT_CC(swift)
 extern "C"
@@ -2404,16 +2408,20 @@
                                        const Metadata *sourceKeyType,
                                        const Metadata *sourceValueType,
                                        const Metadata *targetKeyType,
-                                       const Metadata *targetValueType);
+                                       const Metadata *targetValueType,
+                                       const void *sourceKeyHashable,
+                                       const void *targetKeyHashable);
 
 SWIFT_CC(swift)
 extern "C"
 bool _swift_dictionaryDownCastConditionalIndirect(OpaqueValue *destination,
-                                                  OpaqueValue *source,
-                                            const Metadata *sourceKeyType,
-                                            const Metadata *sourceValueType,
-                                            const Metadata *targetKeyType,
-                                            const Metadata *targetValueType);
+                                        OpaqueValue *source,
+                                        const Metadata *sourceKeyType,
+                                        const Metadata *sourceValueType,
+                                        const Metadata *targetKeyType,
+                                        const Metadata *targetValueType,
+                                        const void *sourceKeyHashable,
+                                        const void *targetKeyHashable);
 
 static bool _dynamicCastStructToStruct(OpaqueValue *destination,
                                        OpaqueValue *source,
@@ -2460,25 +2468,29 @@
     if (flags & DynamicCastFlags::Unconditional) {
       _swift_dictionaryDownCastIndirect(source, destination,
                                         sourceArgs[0], sourceArgs[1],
-                                        targetArgs[0], targetArgs[1]);
+                                        targetArgs[0], targetArgs[1],
+                                        sourceArgs[2], targetArgs[2]);
       result = true;
     } else {
       result =
         _swift_dictionaryDownCastConditionalIndirect(source, destination,
                                         sourceArgs[0], sourceArgs[1],
-                                        targetArgs[0], targetArgs[1]);
+                                        targetArgs[0], targetArgs[1],
+                                        sourceArgs[2], targetArgs[2]);
     }
 
   // Sets.
   } else if (descriptor == &_TMnVs3Set) {
     if (flags & DynamicCastFlags::Unconditional) {
       _swift_setDownCastIndirect(source, destination,
-                                 sourceArgs[0], targetArgs[0]);
+                                 sourceArgs[0], targetArgs[0],
+                                 sourceArgs[1], targetArgs[1]);
       result = true;
     } else {
       result =
         _swift_setDownCastConditionalIndirect(source, destination,
-                                              sourceArgs[0], targetArgs[0]);
+                                              sourceArgs[0], targetArgs[0],
+                                              sourceArgs[1], targetArgs[1]);
     }
 
   // Other struct types don't support dynamic covariance for now.
diff --git a/test/ClangModules/objc_factory_method.swift b/test/ClangModules/objc_factory_method.swift
index a179cde..b87bda0 100644
--- a/test/ClangModules/objc_factory_method.swift
+++ b/test/ClangModules/objc_factory_method.swift
@@ -93,7 +93,6 @@
 
 func testFactoryMethodBlacklist() {
   _ = NCWidgetController.widgetController()
-  _ = ProcessInfo.processInfo()
 }
 
 func test17261609() {
diff --git a/test/ClangModules/objc_ir.swift b/test/ClangModules/objc_ir.swift
index dcc3536..e1d8e7e 100644
--- a/test/ClangModules/objc_ir.swift
+++ b/test/ClangModules/objc_ir.swift
@@ -46,8 +46,7 @@
 }
 
 // CHECK: linkonce_odr hidden {{.*}} @_TFCSo1BCfT3intVs5Int32_GSQS__
-// CHECK: load i8*, i8** @"\01L_selector(allocWithZone:)"
-// CHECK: call [[OPAQUE:%.*]]* bitcast (void ()* @objc_msgSend
+// CHECK: call [[OPAQUE:%.*]]* @objc_allocWithZone
 
 // Indexed subscripting
 // CHECK: define hidden void @_TF7objc_ir19indexedSubscriptingFT1bCSo1B3idxSi1aCSo1A_T_
@@ -83,7 +82,7 @@
 // CHECK: define hidden [[B]]* @_TF7objc_ir8downcastFT1aCSo1A_CSo1B(
 func downcast(a a: A) -> B {
   // CHECK: [[CLASS:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_B"
-  // CHECK: [[T0:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[CLASS]])
+  // CHECK: [[T0:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[CLASS]])
   // CHECK: [[T1:%.*]] = bitcast %objc_class* [[T0]] to i8*
   // CHECK: call i8* @swift_dynamicCastObjCClassUnconditional(i8* [[A:%.*]], i8* [[T1]]) [[NOUNWIND:#[0-9]+]]
   return a as! B
@@ -134,7 +133,7 @@
   // CHECK: [[RAW_RESULT:%.+]] = call i8* @processComboType(i8* {{%.+}})
   // CHECK: [[CASTED_RESULT:%.+]] = bitcast i8* [[RAW_RESULT]] to %objc_class*
   // CHECK: [[SWIFT_RESULT:%.+]] = call %swift.type* @swift_getObjCClassMetadata(%objc_class* [[CASTED_RESULT]])
-  // CHECK: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C7objc_ir4Impl*)*)(%C7objc_ir4Impl* %0)
+  // CHECK: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C7objc_ir4Impl*)*)(%C7objc_ir4Impl* %0)
   // CHECK: ret %swift.type* [[SWIFT_RESULT]]
   let type = processComboType(type(of: p))
   return type
@@ -147,7 +146,7 @@
   // CHECK: [[RAW_RESULT:%.+]] = call i8* @processComboType2(i8* {{%.+}})
   // CHECK: [[CASTED_RESULT:%.+]] = bitcast i8* [[RAW_RESULT]] to %objc_class*
   // CHECK: [[SWIFT_RESULT:%.+]] = call %swift.type* @swift_getObjCClassMetadata(%objc_class* [[CASTED_RESULT]])
-  // CHECK: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C7objc_ir4Impl*)*)(%C7objc_ir4Impl* %0)
+  // CHECK: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C7objc_ir4Impl*)*)(%C7objc_ir4Impl* %0)
   // CHECK: ret %swift.type* [[SWIFT_RESULT]]
   let type = processComboType2(type(of: p))
   return type
diff --git a/test/Compatibility/attr_escaping.swift b/test/Compatibility/attr_escaping.swift
new file mode 100644
index 0000000..bc9d65e
--- /dev/null
+++ b/test/Compatibility/attr_escaping.swift
@@ -0,0 +1,10 @@
+// RUN: %target-parse-verify-swift
+
+// This is allowed, in order to keep source compat with Swift version 3.0.
+func takesVarargsOfFunctionsExplicitEscaping(_ fns: @escaping () -> ()...) {} 
+
+func takesVarargsOfFunctions(_ fn: () -> (), _ fns: () -> ()...) {
+		// expected-note@-1{{parameter 'fn' is implicitly non-escaping}}
+	takesVarargsOfFunctionsExplicitEscaping(fns[0], fns[1]) // ok
+	takesVarargsOfFunctionsExplicitEscaping(fn) // expected-error{{passing non-escaping parameter 'fn' to function expecting an @escaping closure}}
+} 
diff --git a/test/Constraints/bridging.swift b/test/Constraints/bridging.swift
index 5a639c4..c865316 100644
--- a/test/Constraints/bridging.swift
+++ b/test/Constraints/bridging.swift
@@ -288,7 +288,7 @@
 // <rdar://problem/20029786> Swift compiler sometimes suggests changing "as!" to "as?!"
 func rdar20029786(_ ns: NSString?) {
   var s: String = ns ?? "str" as String as String // expected-error{{cannot convert value of type 'NSString?' to expected argument type 'String?'}}
-  var s2 = ns ?? "str" as String as String // expected-error {{binary operator '??' cannot be applied to operands of type 'NSString?' and 'String'}} expected-note{{}}
+  var s2 = ns ?? "str" as String as String // expected-error {{cannot convert value of type 'String' to expected argument type 'NSString'}}
 
   let s3: NSString? = "str" as String? // expected-error {{cannot convert value of type 'String?' to specified type 'NSString?'}}
 
diff --git a/test/Constraints/closures.swift b/test/Constraints/closures.swift
index 8bae68b..278786a 100644
--- a/test/Constraints/closures.swift
+++ b/test/Constraints/closures.swift
@@ -324,3 +324,35 @@
 }
 
 let f: (Int, Int) -> Void = { x in }  // expected-error {{contextual closure type specifies '(Int, Int)', but 1 was used in closure body, try adding extra parentheses around the single tuple argument}}
+
+// Make sure that behavior related to allowing trailing closures to match functions
+// with Any as a final parameter is the same after the changes made by SR-2505, namely:
+// that we continue to select function that does _not_ have Any as a final parameter in
+// presence of other possibilities.
+
+protocol SR_2505_Initable { init() }
+struct SR_2505_II : SR_2505_Initable {}
+
+protocol P_SR_2505 {
+  associatedtype T: SR_2505_Initable
+}
+
+extension P_SR_2505 {
+  func test(it o: (T) -> Bool) -> Bool {
+    return o(T.self())
+  }
+}
+
+class C_SR_2505 : P_SR_2505 {
+  typealias T = SR_2505_II
+
+  func test(_ o: Any) -> Bool {
+    return false
+  }
+
+  func call(_ c: C_SR_2505) -> Bool {
+    return c.test { o in test(o) }
+  }
+}
+
+let _ = C_SR_2505().call(C_SR_2505())
diff --git a/test/Constraints/diagnostics.swift b/test/Constraints/diagnostics.swift
index d6ee191..c8f88aa 100644
--- a/test/Constraints/diagnostics.swift
+++ b/test/Constraints/diagnostics.swift
@@ -671,8 +671,7 @@
 func overloadSetResultType(_ a : Int, b : Int) -> Int {
   // https://twitter.com/_jlfischer/status/712337382175952896
   // TODO: <rdar://problem/27391581> QoI: Nonsensical "binary operator '&&' cannot be applied to two 'Bool' operands"
-  return a == b && 1 == 2  // expected-error {{binary operator '&&' cannot be applied to two 'Bool' operands}}
-  // expected-note @-1 {{expected an argument list of type '(Bool, @autoclosure () throws -> Bool)'}}
+  return a == b && 1 == 2  // expected-error {{cannot convert return expression of type 'Bool' to return type 'Int'}}
 }
 
 // <rdar://problem/21523291> compiler error message for mutating immutable field is incorrect
@@ -733,9 +732,8 @@
 extension Foo23752537 {
   func isEquivalent(other: Foo23752537) {
     // TODO: <rdar://problem/27391581> QoI: Nonsensical "binary operator '&&' cannot be applied to two 'Bool' operands"
-    // expected-error @+1 {{binary operator '&&' cannot be applied to two 'Bool' operands}}
+    // expected-error @+1 {{unexpected non-void return value in void function}}
     return (self.title != other.title && self.message != other.message)
-    // expected-note @-1 {{expected an argument list of type '(Bool, @autoclosure () throws -> Bool)'}}
   }
 }
 
@@ -815,3 +813,37 @@
 r27212391(1, x: 3, y: 5)    // expected-error {{missing argument label 'a' in call}}
 r27212391(a: 1, y: 3, x: 5) // expected-error {{argument 'x' must precede argument 'y'}}
 r27212391(a: 1, 3, x: 5)    // expected-error {{argument 'x' must precede unnamed argument #2}}
+
+// SR-1255
+func foo1255_1() {
+  return true || false // expected-error {{unexpected non-void return value in void function}}
+}
+func foo1255_2() -> Int {
+  return true || false // expected-error {{cannot convert return expression of type 'Bool' to return type 'Int'}}
+}
+
+// SR-2505: "Call arguments did not match up" assertion
+
+func sr_2505(_ a: Any) {} // expected-note {{}}
+sr_2505()          // expected-error {{missing argument for parameter #1 in call}}
+sr_2505(a: 1)      // expected-error {{extraneous argument label 'a:' in call}}
+sr_2505(1, 2)      // expected-error {{extra argument in call}}
+sr_2505(a: 1, 2)   // expected-error {{extra argument in call}}
+
+struct C_2505 {
+  init(_ arg: Any) {
+  }
+}
+
+protocol P_2505 {
+}
+
+extension C_2505 {
+  init<T>(from: [T]) where T: P_2505 {
+  }
+}
+
+class C2_2505: P_2505 {
+}
+
+let c_2505 = C_2505(arg: [C2_2505()]) // expected-error {{argument labels '(arg:)' do not match any available overloads}} expected-note {{overloads for 'C_2505' exist}}
diff --git a/test/Constraints/members.swift b/test/Constraints/members.swift
index 3dc1b05..0db3ffd 100644
--- a/test/Constraints/members.swift
+++ b/test/Constraints/members.swift
@@ -580,3 +580,13 @@
   }
 }
 
+// SR-2193: QoI: better diagnostic when a decl exists, but is not a type
+
+enum SR_2193_Error: Error {
+  case Boom
+}
+
+do {
+  throw SR_2193_Error.Boom
+} catch let e as SR_2193_Error.Boom { // expected-error {{enum element 'Boom' is not a member type of 'SR_2193_Error'}}
+}
diff --git a/test/DebugInfo/bbentry-location.swift b/test/DebugInfo/bbentry-location.swift
index 1b52e10..7d50b9b 100644
--- a/test/DebugInfo/bbentry-location.swift
+++ b/test/DebugInfo/bbentry-location.swift
@@ -14,7 +14,7 @@
         let itemProvider = provider as! NSItemProvider
 // CHECK: load {{.*}}selector
 // CHECK:; <label>{{.*}}  ; preds = %{{[0-9]+}}
-// CHECK: @rt_swift_allocObject({{.*}}, !dbg ![[DBG:[0-9]+]]
+// CHECK: @swift_rt_swift_allocObject({{.*}}, !dbg ![[DBG:[0-9]+]]
 // Test that the location is reset at the entry of a new basic block.        
 // CHECK: ![[DBG]] = {{.*}}line: 0
         if itemProvider.hasItemConformingToTypeIdentifier("") {
diff --git a/test/DebugInfo/linetable.swift b/test/DebugInfo/linetable.swift
index c8ebbc3..b2977ca 100644
--- a/test/DebugInfo/linetable.swift
+++ b/test/DebugInfo/linetable.swift
@@ -33,8 +33,8 @@
         {
             var result = my_class.do_something(x)
             markUsed(result)
-// CHECK: call {{.*}} @rt_swift_release {{.*}}
-// CHECK: call {{.*}} @rt_swift_release {{.*}}, !dbg ![[CLOSURE_END:.*]]
+// CHECK: call {{.*}} @swift_rt_swift_release {{.*}}
+// CHECK: call {{.*}} @swift_rt_swift_release {{.*}}, !dbg ![[CLOSURE_END:.*]]
 // CHECK-NEXT: bitcast
 // CHECK-NEXT: llvm.lifetime.end
 // CHECK-NEXT: ret void, !dbg ![[CLOSURE_END]]
diff --git a/test/DebugInfo/return.swift b/test/DebugInfo/return.swift
index 77db805..b6462b7 100644
--- a/test/DebugInfo/return.swift
+++ b/test/DebugInfo/return.swift
@@ -11,14 +11,14 @@
   // CHECK: [[META:%.*]] = call %swift.type* @_TMaC6return1X()
   // CHECK: [[X:%.*]] = call %C6return1X* @_TFC6return1XCfT1iVs5Int64_S0_(
   // CHECK-SAME:                                  i64 0, %swift.type* [[META]])
-  // CHECK:  @rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
+  // CHECK:  @swift_rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
   if true {
     x.x += 1
   } else {
     x.x -= 1
   }
-  // CHECK:  @rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
-  // CHECK:  @rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
+  // CHECK:  @swift_rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
+  // CHECK:  @swift_rt_swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
   // CHECK-SAME:                    , !dbg ![[RELEASE:.*]]
 
   // The ret instruction should be in the same scope as the return expression.
diff --git a/test/Driver/Dependencies/driver-show-incremental-mutual.swift b/test/Driver/Dependencies/driver-show-incremental-mutual.swift
new file mode 100644
index 0000000..b9f1765
--- /dev/null
+++ b/test/Driver/Dependencies/driver-show-incremental-mutual.swift
@@ -0,0 +1,17 @@
+/// main <==> other
+
+// RUN: rm -rf %t && cp -r %S/Inputs/mutual/ %t
+// RUN: touch -t 201401240005 %t/*
+
+// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path %S/Inputs/update-dependencies.py -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s
+// CHECK-FIRST: Queuing main.swift (initial)
+
+// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path %S/Inputs/update-dependencies.py -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s
+// CHECK-SECOND-NOT: Queuing
+
+// RUN: touch -t 201401240006 %t/other.swift
+// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path %S/Inputs/update-dependencies.py -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s
+// CHECK-THIRD: Queuing other.swift (initial)
+// CHECK-THIRD: Queuing main.swift because of the initial set:
+// CHECK-THIRD-NEXT: other.swift provides top-level name 'a'
+
diff --git a/test/Driver/Dependencies/driver-show-incremental-swift-version.swift b/test/Driver/Dependencies/driver-show-incremental-swift-version.swift
new file mode 100644
index 0000000..0f5b8eb
--- /dev/null
+++ b/test/Driver/Dependencies/driver-show-incremental-swift-version.swift
@@ -0,0 +1,25 @@
+// Test that when:
+//
+// 1. Using -incremental -v -driver-show-incremental, and...
+// 2. ...the Swift compiler version used to perform the incremental
+//    compilation differs the original compilation...
+//
+// ...then the driver prints a message indicating that incremental compilation
+// is disabled.
+
+
+// RUN: rm -rf %t && cp -r %S/Inputs/one-way/ %t
+// RUN: %S/Inputs/touch.py 443865900 %t/*
+
+// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps
+// RUN: cd %t && %swiftc_driver -driver-use-frontend-path %S/Inputs/update-dependencies.py -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s
+// CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled
+// CHECK-INCREMENTAL: Queuing main.swift (initial)
+
+// RUN: echo '{version: "bogus", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps
+// RUN: cd %t && %swiftc_driver -driver-use-frontend-path %S/Inputs/update-dependencies.py -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-VERSION-MISMATCH %s
+// CHECK-VERSION-MISMATCH: Incremental compilation has been disabled
+// CHECK-VERSION-MISMATCH: Compiling with:
+// CHECK-VERSION-MISMATCH: Previously compiled with: bogus
+// CHECK-VERSION-MISMATCH-NOT: Queuing main.swift (initial)
+
diff --git a/test/FixCode/fixits-apply.swift.result b/test/FixCode/fixits-apply.swift.result
index 51edd3b..93bfda5 100644
--- a/test/FixCode/fixits-apply.swift.result
+++ b/test/FixCode/fixits-apply.swift.result
@@ -308,4 +308,4 @@
 protocol P1 {}
 protocol P2 {}
 var a : (P1 & P2)?
-var a2 : (P1)= 17 as! P1
+var a2 : P1= 17 as! P1
diff --git a/test/Generics/generic_types.swift b/test/Generics/generic_types.swift
index bb8ca96..c47b55c 100644
--- a/test/Generics/generic_types.swift
+++ b/test/Generics/generic_types.swift
@@ -237,4 +237,4 @@
 // expected-error@-1 {{inheritance from non-protocol, non-class type 'U.A'}}
 // expected-error@-2 {{inheritance from non-protocol, non-class type 'T.A'}}
 
-enum X7<T> where X7.X : G { case X } // expected-error{{'X' is not a member type of 'X7<T>'}}
+enum X7<T> where X7.X : G { case X } // expected-error{{enum element 'X' is not a member type of 'X7<T>'}}
diff --git a/test/IDE/complete_unresolved_members.swift b/test/IDE/complete_unresolved_members.swift
index e9811c7..44530f3 100644
--- a/test/IDE/complete_unresolved_members.swift
+++ b/test/IDE/complete_unresolved_members.swift
@@ -208,6 +208,8 @@
 Container.OptionSetTaker1(.#^UNRESOLVED_19^#
 Container.EnumTaker1(.#^UNRESOLVED_20^#
 
+func parserSync() {}
+
 // UNRESOLVED_4: Begin completions
 // UNRESOLVED_4-DAG: Decl[StaticVar]/CurrNominal:        Option1[#SomeOptions1#]; name=Option1
 // UNRESOLVED_4-DAG: Decl[StaticVar]/CurrNominal:        Option2[#SomeOptions1#]; name=Option2
diff --git a/test/IRGen/alloc.sil b/test/IRGen/alloc.sil
index de460ac..65cb38a 100644
--- a/test/IRGen/alloc.sil
+++ b/test/IRGen/alloc.sil
@@ -20,15 +20,15 @@
 }
 
 // CHECK: @_swift_slowAlloc = external global i8* ([[SIZE_T:i(32|64)]],
-// CHECK: define linkonce_odr hidden i8* @rt_swift_slowAlloc([[SIZE_T:i(32|64)]],
+// CHECK: define linkonce_odr hidden i8* @swift_rt_swift_slowAlloc([[SIZE_T:i(32|64)]],
 
 // CHECK:    define linkonce_odr hidden void @_TwdeV4main4Huge(
 // CHECK:      [[T0:%.*]] = bitcast [[BUFFER:.[0-9]+ x i8.]]* {{%.*}} to i8**
 // CHECK-NEXT: [[T1:%.*]] = load i8*, i8** [[T0]]
-// CHECK-NEXT: call void @rt_swift_slowDealloc(i8* [[T1]], [[SIZE_T]] 4097, [[SIZE_T]] 7)
+// CHECK-NEXT: call void @swift_rt_swift_slowDealloc(i8* [[T1]], [[SIZE_T]] 4097, [[SIZE_T]] 7)
 // CHECK-NEXT: ret void
 
 // CHECK:    define linkonce_odr hidden [[OPAQUE:%swift.opaque]]* @_TwalV4main4Huge(
-// CHECK:      [[T0:%.*]] = call noalias i8* @rt_swift_slowAlloc([[SIZE_T]] 4097, [[SIZE_T]] 7)
+// CHECK:      [[T0:%.*]] = call noalias i8* @swift_rt_swift_slowAlloc([[SIZE_T]] 4097, [[SIZE_T]] 7)
 // CHECK-NEXT: [[T1:%.*]] = bitcast [[BUFFER]]* {{%.*}} to i8**
 // CHECK-NEXT: store i8* [[T0]], i8** [[T1]]
diff --git a/test/IRGen/associated_type_witness.swift b/test/IRGen/associated_type_witness.swift
index b99574d..0fd42e2 100644
--- a/test/IRGen/associated_type_witness.swift
+++ b/test/IRGen/associated_type_witness.swift
@@ -118,7 +118,7 @@
 //   Witness table instantiation function for Computed : Assocked.
 // CHECK-LABEL: define hidden i8** @_TWauRx23associated_type_witness1PrGVS_15GenericComputedx_S_22DerivedFromSimpleAssocS_(%swift.type*)
 // CHECK:         entry:
-// CHECK-NEXT:     [[WTABLE:%.*]] = call i8** @rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGuRx23associated_type_witness1PrGVS_15GenericComputedx_S_22DerivedFromSimpleAssocS_, %swift.type* %0, i8** null)
+// CHECK-NEXT:     [[WTABLE:%.*]] = call i8** @swift_rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGuRx23associated_type_witness1PrGVS_15GenericComputedx_S_22DerivedFromSimpleAssocS_, %swift.type* %0, i8** null)
 // CHECK-NEXT:     ret i8** [[WTABLE]]
 
 
@@ -158,7 +158,7 @@
 //   Witness table instantiation function for GenericComputed : HasSimpleAssoc..
 // CHECK-LABEL: define hidden i8** @_TWauRx23associated_type_witness1PrGVS_15GenericComputedx_S_14HasSimpleAssocS_(%swift.type*)
 // CHECK-NEXT:   entry:
-// CHECK-NEXT:    [[WTABLE:%.*]] = call i8** @rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGuRx23associated_type_witness1PrGVS_15GenericComputedx_S_14HasSimpleAssocS_, %swift.type* %0, i8** null)
+// CHECK-NEXT:    [[WTABLE:%.*]] = call i8** @swift_rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGuRx23associated_type_witness1PrGVS_15GenericComputedx_S_14HasSimpleAssocS_, %swift.type* %0, i8** null)
 // CHECK-NEXT:    ret i8** %1
 
 
diff --git a/test/IRGen/bitcast.sil b/test/IRGen/bitcast.sil
index d930fe5..8f74f5d 100644
--- a/test/IRGen/bitcast.sil
+++ b/test/IRGen/bitcast.sil
@@ -115,8 +115,8 @@
 }
 
 // CHECK-LABEL: define{{( protected)?}} void @unchecked_ref_cast_addr
-// CHECK-i386: call i1 @rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* %{{.*}}, %swift.type* %T, %swift.type* %U, i32 7)
-// CHECK-x86_64: call i1 @rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* %{{.*}}, %swift.type* %T, %swift.type* %U, i64 7)
+// CHECK-i386: call i1 @swift_rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* %{{.*}}, %swift.type* %T, %swift.type* %U, i32 7)
+// CHECK-x86_64: call i1 @swift_rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* %{{.*}}, %swift.type* %T, %swift.type* %U, i64 7)
 sil @unchecked_ref_cast_addr : $@convention(thin) <T, U> (@in T) -> @out U {
 bb0(%0 : $*U, %1 : $*T):
   %a = alloc_stack $T
diff --git a/test/IRGen/boxed_existential.sil b/test/IRGen/boxed_existential.sil
index bd38512..dcb42fc 100644
--- a/test/IRGen/boxed_existential.sil
+++ b/test/IRGen/boxed_existential.sil
@@ -6,10 +6,10 @@
 sil @retain_release_boxed_existential : $@convention(thin) (Error) -> () {
 entry(%e : $Error):
   // CHECK-objc: @swift_errorRetain
-  // CHECK-native: @rt_swift_retain
+  // CHECK-native: @swift_rt_swift_retain
   strong_retain %e : $Error
   // CHECK-objc: @swift_errorRelease
-  // CHECK-native: @rt_swift_release
+  // CHECK-native: @swift_rt_swift_release
   strong_release %e : $Error
   return undef : $()
 }
@@ -109,7 +109,7 @@
   %m = existential_metatype $@thick Error.Type, %b : $Error
 
   // CHECK-objc:   call void @swift_errorRelease(%swift.error* %0)
-  // CHECK-native: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%swift.error*)*)(%swift.error* %0)
+  // CHECK-native: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%swift.error*)*)(%swift.error* %0)
   strong_release %b : $Error
 
   // CHECK: [[RET:%.*]] = insertvalue { %swift.type*, i8** } undef, %swift.type* [[DYNAMIC_TYPE]], 0
diff --git a/test/IRGen/builtins.swift b/test/IRGen/builtins.swift
index 7c085f0..f00022d 100644
--- a/test/IRGen/builtins.swift
+++ b/test/IRGen/builtins.swift
@@ -151,7 +151,7 @@
 // CHECK: define hidden %swift.refcounted* @_TF8builtins16load_object_test
 func load_object_test(_ ptr: Builtin.RawPointer) -> Builtin.NativeObject {
   // CHECK: [[T0:%.*]] = load [[REFCOUNT]]*, [[REFCOUNT]]**
-  // CHECK: call void @rt_swift_retain([[REFCOUNT]]* [[T0]])
+  // CHECK: call void @swift_rt_swift_retain([[REFCOUNT]]* [[T0]])
   // CHECK: ret [[REFCOUNT]]* [[T0]]
   return Builtin.load(ptr)
 }
@@ -159,7 +159,7 @@
 // CHECK: define hidden %swift.refcounted* @_TF8builtins20load_raw_object_test
 func load_raw_object_test(_ ptr: Builtin.RawPointer) -> Builtin.NativeObject {
   // CHECK: [[T0:%.*]] = load [[REFCOUNT]]*, [[REFCOUNT]]**
-  // CHECK: call void @rt_swift_retain([[REFCOUNT]]* [[T0]])
+  // CHECK: call void @swift_rt_swift_retain([[REFCOUNT]]* [[T0]])
   // CHECK: ret [[REFCOUNT]]* [[T0]]
   return Builtin.loadRaw(ptr)
 }
@@ -430,7 +430,7 @@
 // CHECK-LABEL: define hidden void @_TF8builtins18destroyNonPODArray{{.*}}(i8*, i64) {{.*}} {
 // CHECK:       iter:
 // CHECK:       loop:
-// CHECK:         call {{.*}} @rt_swift_release
+// CHECK:         call {{.*}} @swift_rt_swift_release
 // CHECK:         br label %iter
 func destroyNonPODArray(_ array: Builtin.RawPointer, count: Builtin.Word) {
   Builtin.destroyArray(C.self, array, count)
@@ -461,7 +461,7 @@
 // CHECK-LABEL: define hidden void @_TF8builtins11copyBTArray{{.*}}(i8*, i8*, i64) {{.*}} {
 // CHECK:       iter:
 // CHECK:       loop:
-// CHECK:         call {{.*}} @rt_swift_retain
+// CHECK:         call {{.*}} @swift_rt_swift_retain
 // CHECK:         br label %iter
 // CHECK:         mul nuw i64 8, %2
 // CHECK:         call void @llvm.memmove.p0i8.p0i8.i64(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i32 8, i1 false)
@@ -575,7 +575,7 @@
 // CHECK-LABEL: define hidden i1 @_TF8builtins8isUniqueFRBoBi1_(%swift.refcounted** nocapture dereferenceable({{.*}})) {{.*}} {
 // CHECK-NEXT: entry:
 // CHECK-NEXT: load %swift.refcounted*, %swift.refcounted** %0
-// CHECK-NEXT: call i1 @rt_swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %1)
+// CHECK-NEXT: call i1 @swift_rt_swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %1)
 // CHECK-NEXT: ret i1 %2
 func isUnique(_ ref: inout Builtin.NativeObject) -> Bool {
   return Builtin.isUnique(&ref)
@@ -586,7 +586,7 @@
 // CHECK-NEXT: entry:
 // CHECK-NEXT: bitcast [[BUILTIN_NATIVE_OBJECT_TY]]* %0 to %swift.refcounted**
 // CHECK-NEXT: load %swift.refcounted*, %swift.refcounted** %1
-// CHECK-NEXT: call i1 @rt_swift_isUniquelyReferencedOrPinned_native(%swift.refcounted* %2)
+// CHECK-NEXT: call i1 @swift_rt_swift_isUniquelyReferencedOrPinned_native(%swift.refcounted* %2)
 // CHECK-NEXT: ret i1 %3
 func isUniqueOrPinned(_ ref: inout Builtin.NativeObject?) -> Bool {
   return Builtin.isUniqueOrPinned(&ref)
@@ -596,7 +596,7 @@
 // CHECK-LABEL: define hidden i1 @_TF8builtins16isUniqueOrPinnedFRBoBi1_(%swift.refcounted** nocapture dereferenceable({{.*}})) {{.*}} {
 // CHECK-NEXT: entry:
 // CHECK-NEXT: load %swift.refcounted*, %swift.refcounted** %0
-// CHECK-NEXT: call i1 @rt_swift_isUniquelyReferencedOrPinned_nonNull_native(%swift.refcounted* %1)
+// CHECK-NEXT: call i1 @swift_rt_swift_isUniquelyReferencedOrPinned_nonNull_native(%swift.refcounted* %1)
 // CHECK-NEXT: ret i1 %2
 func isUniqueOrPinned(_ ref: inout Builtin.NativeObject) -> Bool {
   return Builtin.isUniqueOrPinned(&ref)
@@ -661,7 +661,7 @@
 // CHECK-NEXT: entry:
 // CHECK-NEXT: bitcast %swift.bridge** %0 to %swift.refcounted**
 // CHECK-NEXT: load %swift.refcounted*, %swift.refcounted** %1
-// CHECK-NEXT: call i1 @rt_swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %2)
+// CHECK-NEXT: call i1 @swift_rt_swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %2)
 // CHECK-NEXT: ret i1 %3
 func isUnique_native(_ ref: inout Builtin.BridgeObject) -> Bool {
   return Builtin.isUnique_native(&ref)
@@ -672,7 +672,7 @@
 // CHECK-NEXT: entry:
 // CHECK-NEXT: bitcast %swift.bridge** %0 to %swift.refcounted**
 // CHECK-NEXT: load %swift.refcounted*, %swift.refcounted** %1
-// CHECK-NEXT: call i1 @rt_swift_isUniquelyReferencedOrPinned_nonNull_native(%swift.refcounted* %2)
+// CHECK-NEXT: call i1 @swift_rt_swift_isUniquelyReferencedOrPinned_nonNull_native(%swift.refcounted* %2)
 // CHECK-NEXT: ret i1 %3
 func isUniqueOrPinned_native(_ ref: inout Builtin.BridgeObject) -> Bool {
   return Builtin.isUniqueOrPinned_native(&ref)
@@ -718,9 +718,9 @@
 
 // CHECK-LABEL: define {{.*}} @{{.*}}unsafeGuaranteed_test
 // CHECK:  [[LOCAL:%.*]] = alloca %swift.refcounted*
-// CHECK:  call void @rt_swift_retain(%swift.refcounted* %0)
+// CHECK:  call void @swift_rt_swift_retain(%swift.refcounted* %0)
 // CHECK:  store %swift.refcounted* %0, %swift.refcounted** [[LOCAL]]
-// CHECK:  call void @rt_swift_release(%swift.refcounted* %0)
+// CHECK:  call void @swift_rt_swift_release(%swift.refcounted* %0)
 // CHECK:  ret %swift.refcounted* %0
 func unsafeGuaranteed_test(_ x: Builtin.NativeObject) -> Builtin.NativeObject {
   var (g,t) = Builtin.unsafeGuaranteed(x)
diff --git a/test/IRGen/casts.sil b/test/IRGen/casts.sil
index e2cdd59..87c3db0 100644
--- a/test/IRGen/casts.sil
+++ b/test/IRGen/casts.sil
@@ -225,7 +225,7 @@
 // CHECK:         [[OBJ_PTR:%.*]] = bitcast %C5casts1A* [[T0]] to i8*
 // CHECK:         [[METADATA:%.*]] = call %swift.type* @_TMaC5casts1A()
 // CHECK:         [[METADATA_PTR:%.*]] = bitcast %swift.type* [[METADATA]] to i8*
-// CHECK:         [[RESULT_PTR:%.*]] = call i8* @rt_swift_dynamicCastClass(i8* [[OBJ_PTR]], i8* [[METADATA_PTR]])
+// CHECK:         [[RESULT_PTR:%.*]] = call i8* @swift_rt_swift_dynamicCastClass(i8* [[OBJ_PTR]], i8* [[METADATA_PTR]])
 // CHECK:         [[RESULT:%.*]] = bitcast i8* [[RESULT_PTR]] to %C5casts1A*
 // CHECK:         [[COND:%.*]] = icmp ne %C5casts1A* [[RESULT]], null
 // CHECK:         br i1 [[COND]]
diff --git a/test/IRGen/class.sil b/test/IRGen/class.sil
index 8d58f06..c53a86b 100644
--- a/test/IRGen/class.sil
+++ b/test/IRGen/class.sil
@@ -100,7 +100,7 @@
   // CHECK:   [[T1:%.*]] = bitcast i8* [[T0]] to i16*
   // CHECK:   [[ALIGN16:%.*]] = load i16, i16* [[T1]], align 4
   // CHECK:   [[ALIGN:%.*]] = zext i16 [[ALIGN16]] to i64
-  // CHECK:   [[RESULT:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* %0, i64 [[SIZE]], i64 [[ALIGN]])
+  // CHECK:   [[RESULT:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* %0, i64 [[SIZE]], i64 [[ALIGN]])
   %1 = alloc_ref_dynamic %0 : $@thick C.Type, $C
   return %1 : $C
 }
diff --git a/test/IRGen/class_stack_alloc.sil b/test/IRGen/class_stack_alloc.sil
index 6c0611c..4350718 100644
--- a/test/IRGen/class_stack_alloc.sil
+++ b/test/IRGen/class_stack_alloc.sil
@@ -34,7 +34,7 @@
 // CHECK-NEXT: [[O:%[0-9]+]] = bitcast %[[C]]* %reference.raw to %swift.refcounted*
 // CHECK-NEXT: %reference.new = call %swift.refcounted* @swift_initStackObject(%swift.type* [[M]], %swift.refcounted* [[O]])
 // CHECK-NEXT: [[R:%[0-9]+]] = bitcast %swift.refcounted* %reference.new to %[[C]]*
-// CHECK-NEXT: call {{.*}} @rt_swift_release {{.*}} [[R]])
+// CHECK-NEXT: call {{.*}} @swift_rt_swift_release {{.*}} [[R]])
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %[[C]]* [[R]] to i8*
 // CHECK-NEXT: call void @llvm.lifetime.end(i64 -1, i8* [[O2]])
 // CHECK-NEXT: ret void
@@ -56,7 +56,7 @@
 // CHECK: alloca {{.*}}TestStruct
 // CHECK-NOT: alloca
 // CHECK: call %swift.refcounted* @swift_initStackObject
-// CHECK: call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK: call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK: ret void
 sil @exceed_limit : $@convention(thin) () -> () {
 bb0:
@@ -124,7 +124,7 @@
 }
 
 // CHECK-LABEL: define{{( protected)?}} void @not_promoted_with_inlined_devirtualized_release
-// CHECK: [[O:%[0-9]+]] = call {{.*}} @rt_swift_allocObject
+// CHECK: [[O:%[0-9]+]] = call {{.*}} @swift_rt_swift_allocObject
 // CHECK-NEXT: [[BC:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to
 // CHECK-NEXT: call {{.*}} @swift_setDeallocating {{.*}}({{.*}} [[BC]])
 // CHECK-NEXT: [[BC2:%[0-9]+]] = bitcast {{.*}} [[BC]] to %swift.refcounted*
diff --git a/test/IRGen/closure.swift b/test/IRGen/closure.swift
index 8b2a0ac..560ee90 100644
--- a/test/IRGen/closure.swift
+++ b/test/IRGen/closure.swift
@@ -40,8 +40,8 @@
 // CHECK:   [[WITNESS:%.*]] = load i8**, i8*** [[WITNESSADDR]], align 8
 // CHECK:   [[BOXADDR:%.*]] = getelementptr inbounds <{ %swift.refcounted, [16 x i8], %swift.refcounted* }>, <{ %swift.refcounted, [16 x i8], %swift.refcounted* }>* [[CONTEXT]], i32 0, i32 2
 // CHECK:   [[BOX:%.*]] = load %swift.refcounted*, %swift.refcounted** [[BOXADDR]], align 8
-// CHECK:   call void @rt_swift_retain(%swift.refcounted* [[BOX]])
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %1)
+// CHECK:   call void @swift_rt_swift_retain(%swift.refcounted* [[BOX]])
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %1)
 // CHECK:   [[RES:%.*]] = tail call i64 @[[CLOSURE2]](i64 %0, %swift.refcounted* [[BOX]], %swift.type* [[TYPE]], i8** [[WITNESS]])
 // CHECK:   ret i64 [[RES]]
 // CHECK: }
diff --git a/test/IRGen/dllimport.swift b/test/IRGen/dllimport.swift
index c58e811..17ec043 100644
--- a/test/IRGen/dllimport.swift
+++ b/test/IRGen/dllimport.swift
@@ -50,10 +50,10 @@
 // CHECK-NO-OPT-DAG: declare dllimport %swift.refcounted* @_TFC9dllexport1cd(%C9dllexport1c*)
 // CHECK-NO-OPT-DAG: declare dllimport %swift.type* @_TMaC9dllexport1c()
 // CHECK-NO-OPT-DAG: declare dllimport void @swift_deallocClassInstance(%swift.refcounted*, i32, i32)
-// CHECK-NO-OPT-DAG: define linkonce_odr hidden i8* @rt_swift_slowAlloc(i32, i32)
-// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @rt_swift_release(%swift.refcounted*)
-// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @rt_swift_retain(%swift.refcounted*)
-// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @rt_swift_slowDealloc(i8*, i32, i32)
+// CHECK-NO-OPT-DAG: define linkonce_odr hidden i8* @swift_rt_swift_slowAlloc(i32, i32)
+// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @swift_rt_swift_release(%swift.refcounted*)
+// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @swift_rt_swift_retain(%swift.refcounted*)
+// CHECK-NO-OPT-DAG: define linkonce_odr hidden void @swift_rt_swift_slowDealloc(i8*, i32, i32)
 
 // CHECK-OPT-DAG: @_swift_retain = external dllimport local_unnamed_addr global void (%swift.refcounted*)
 // CHECK-OPT-DAG: @_TWVBo = external dllimport global i8*
@@ -66,6 +66,6 @@
 // CHECK-OPT-DAG: declare dllimport void @swift_deallocClassInstance(%swift.refcounted*, i32, i32)
 // CHECK-OPT-DAG: declare dllimport %swift.refcounted* @_TFC9dllexport1cd(%C9dllexport1c*)
 // CHECK-OPT-DAG: declare dllimport void @swift_deletedMethodError()
-// CHECK-OPT-DAG: define linkonce_odr hidden i8* @rt_swift_slowAlloc(i32, i32)
-// CHECK-OPT-DAG: define linkonce_odr hidden void @rt_swift_slowDealloc(i8*, i32, i32)
+// CHECK-OPT-DAG: define linkonce_odr hidden i8* @swift_rt_swift_slowAlloc(i32, i32)
+// CHECK-OPT-DAG: define linkonce_odr hidden void @swift_rt_swift_slowDealloc(i8*, i32, i32)
 
diff --git a/test/IRGen/dynamic_cast.sil b/test/IRGen/dynamic_cast.sil
index f0147f6..c3db338 100644
--- a/test/IRGen/dynamic_cast.sil
+++ b/test/IRGen/dynamic_cast.sil
@@ -26,7 +26,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 7)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 7)
   %1 = alloc_stack $S
   unconditional_checked_cast_addr take_always P in %0 : $*P to S in %1 : $*S
   destroy_addr %1 : $*S
@@ -36,7 +36,7 @@
 }
 
 // CHECK-LABEL: define linkonce_odr hidden %swift.type* @_TMaP12dynamic_cast1P_()
-// CHECK:       call %swift.type* @rt_swift_getExistentialTypeMetadata(
+// CHECK:       call %swift.type* @swift_rt_swift_getExistentialTypeMetadata(
 
 // CHECK-LABEL: define{{( protected)?}} void @testUnconditional1(
 sil @testUnconditional1 : $@convention(thin) (@in P) -> () {
@@ -45,7 +45,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 3)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 3)
   %1 = alloc_stack $S
   unconditional_checked_cast_addr take_on_success P in %0 : $*P to S in %1 : $*S
   destroy_addr %1 : $*S
@@ -61,7 +61,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 1)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 1)
   %1 = alloc_stack $S
   unconditional_checked_cast_addr copy_on_success P in %0 : $*P to S in %1 : $*S
   destroy_addr %1 : $*S
@@ -77,7 +77,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: [[T4:%.*]] = call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 6)
+  // CHECK: [[T4:%.*]] = call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 6)
   // CHECK: br i1 [[T4]], 
   %1 = alloc_stack $S
   checked_cast_addr_br take_always P in %0 : $*P to S in %1 : $*S, bb1, bb2
@@ -97,7 +97,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: [[T4:%.*]] = call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 2)
+  // CHECK: [[T4:%.*]] = call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 2)
   // CHECK: br i1 [[T4]], 
   %1 = alloc_stack $S
   checked_cast_addr_br take_on_success P in %0 : $*P to S in %1 : $*S, bb1, bb2
@@ -117,7 +117,7 @@
   // CHECK: [[T1:%.*]] = bitcast [[S]]* [[T0]] to [[OPAQUE:%swift.opaque]]*
   // CHECK: [[T2:%.*]] = bitcast [[P:%.*]]* {{%.*}} to [[OPAQUE]]*
   // CHECK: [[T3:%.*]] = call [[TYPE:%.*]]* @_TMaP12dynamic_cast1P_()
-  // CHECK: [[T4:%.*]] = call i1 @rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 0)
+  // CHECK: [[T4:%.*]] = call i1 @swift_rt_swift_dynamicCast([[OPAQUE]]* [[T1]], [[OPAQUE]]* [[T2]], [[TYPE]]* [[T3]], [[TYPE]]* {{.*}}, [[LLVM_PTRSIZE_INT]] 0)
   // CHECK: br i1 [[T4]], 
   %1 = alloc_stack $S
   checked_cast_addr_br copy_on_success P in %0 : $*P to S in %1 : $*S, bb1, bb2
diff --git a/test/IRGen/dynamic_init.sil b/test/IRGen/dynamic_init.sil
index c2aff16..6d9f17e 100644
--- a/test/IRGen/dynamic_init.sil
+++ b/test/IRGen/dynamic_init.sil
@@ -27,7 +27,7 @@
   %2 = class_method %0 : $@thick C.Type, #C.init!allocator.1 : (C.Type) -> () -> C , $@convention(method) (@thick C.Type) -> @owned C
   // CHECK:   [[RESULT:%[0-9]+]] = call %C12dynamic_init1C* [[CTOR_FN]](%swift.type* %0)
   %3 = apply %2(%0) : $@convention(method) (@thick C.Type) -> @owned C
-  // CHECK:   call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C12dynamic_init1C*)*)(%C12dynamic_init1C* [[RESULT]])
+  // CHECK:   call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C12dynamic_init1C*)*)(%C12dynamic_init1C* [[RESULT]])
   strong_release %3 : $C
   // CHECK: ret void
   %5 = tuple ()
diff --git a/test/IRGen/enum.sil b/test/IRGen/enum.sil
index f47ebe0..4df6aaa 100644
--- a/test/IRGen/enum.sil
+++ b/test/IRGen/enum.sil
@@ -1217,7 +1217,7 @@
 
 // CHECK: define{{( protected)?}} void @dynamic_single_payload_switch(%O4enum20DynamicSinglePayload* noalias nocapture, %swift.type* %T) {{.*}} {
 // CHECK:   [[OPAQUE_ENUM:%.*]] = bitcast %O4enum20DynamicSinglePayload* %0 to %swift.opaque*
-// CHECK:   [[CASE_INDEX:%.*]] = call i32 @rt_swift_getEnumCaseSinglePayload(%swift.opaque* [[OPAQUE_ENUM]], %swift.type* %T, i32 3)
+// CHECK:   [[CASE_INDEX:%.*]] = call i32 @swift_rt_swift_getEnumCaseSinglePayload(%swift.opaque* [[OPAQUE_ENUM]], %swift.type* %T, i32 3)
 // CHECK:   switch i32 [[CASE_INDEX]], label {{%.*}} [
 // CHECK:     i32 -1, label {{%.*}}
 // CHECK:     i32 2, label {{%.*}}
@@ -1242,7 +1242,7 @@
 
 // CHECK: define{{( protected)?}} void @dynamic_single_payload_inject_x(%O4enum20DynamicSinglePayload* noalias nocapture sret, %swift.opaque* noalias nocapture, %swift.type* %T) {{.*}} {
 // CHECK:   [[ADDR:%.*]] = bitcast %O4enum20DynamicSinglePayload* %0 to %swift.opaque*
-// CHECK:   call void @rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[ADDR]], %swift.type* %T, i32 -1, i32 3)
+// CHECK:   call void @swift_rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[ADDR]], %swift.type* %T, i32 -1, i32 3)
 sil @dynamic_single_payload_inject_x : $<T> (@in T) -> @out DynamicSinglePayload<T> {
 entry(%r : $*DynamicSinglePayload<T>, %t : $*T):
   inject_enum_addr %r : $*DynamicSinglePayload<T>, #DynamicSinglePayload.x!enumelt.1
@@ -1252,7 +1252,7 @@
 
 // CHECK: define{{( protected)?}} void @dynamic_single_payload_inject_y(%O4enum20DynamicSinglePayload* noalias nocapture sret, %swift.type* %T) {{.*}} {
 // CHECK:   [[ADDR:%.*]] = bitcast %O4enum20DynamicSinglePayload* %0 to %swift.opaque*
-// CHECK:   call void @rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[ADDR]], %swift.type* %T, i32 0, i32 3)
+// CHECK:   call void @swift_rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[ADDR]], %swift.type* %T, i32 0, i32 3)
 sil @dynamic_single_payload_inject_y : $<T> () -> @out DynamicSinglePayload<T> {
 entry(%r : $*DynamicSinglePayload<T>):
   inject_enum_addr %r : $*DynamicSinglePayload<T>, #DynamicSinglePayload.y!enumelt
diff --git a/test/IRGen/enum_dynamic_multi_payload.sil b/test/IRGen/enum_dynamic_multi_payload.sil
index 508e68f..e381bd4 100644
--- a/test/IRGen/enum_dynamic_multi_payload.sil
+++ b/test/IRGen/enum_dynamic_multi_payload.sil
@@ -380,7 +380,7 @@
   // CHECK:        call void %destroy(%swift.opaque* {{%.*}}, %swift.type* %T)
   // CHECK:        br label %[[NOOP]]
   // CHECK:      <label>:[[RIGHT]]
-  // CHECK:        call void {{.*}} @rt_swift_release
+  // CHECK:        call void {{.*}} @swift_rt_swift_release
   // CHECK:      <label>:[[NOOP]]
   destroy_addr %a : $*EitherOr<T, C>
 
@@ -407,7 +407,7 @@
   // CHECK:        call %swift.opaque* %initializeWithCopy(%swift.opaque* {{%.*}}, %swift.type* %T)
   // CHECK:        br label %[[DONE:[0-9]+]]
   // CHECK:      <label>:[[RIGHT]]
-  // CHECK:        call void @rt_swift_retain
+  // CHECK:        call void @swift_rt_swift_retain
   // CHECK:        br label %[[DONE:[0-9]+]]
   // CHECK:      <label>:[[TRIVIAL]]
   // CHECK:        call void @llvm.memcpy
diff --git a/test/IRGen/enum_function.sil b/test/IRGen/enum_function.sil
index a2aa2fb..e04be7a 100644
--- a/test/IRGen/enum_function.sil
+++ b/test/IRGen/enum_function.sil
@@ -20,7 +20,7 @@
   // CHECK: br i1 [[T0]], label
   // CHECK: [[FNPTR:%.*]] = inttoptr [[WORD]] %0 to i8*
   // CHECK: [[CTX:%.*]] = inttoptr [[WORD]] %1 to %swift.refcounted*
-  // CHECK: call void @rt_swift_retain(%swift.refcounted* [[CTX]])
+  // CHECK: call void @swift_rt_swift_retain(%swift.refcounted* [[CTX]])
   // CHECK: br label
   retain_value %0 : $Optional<() -> ()>
   
diff --git a/test/IRGen/enum_resilience.swift b/test/IRGen/enum_resilience.swift
index 7650913..aaa8205 100644
--- a/test/IRGen/enum_resilience.swift
+++ b/test/IRGen/enum_resilience.swift
@@ -195,7 +195,7 @@
 // CHECK-LABEL: define{{( protected)?}} void @_TF15enum_resilience25resilientEnumPartialApplyFFO14resilient_enum6MediumSiT_(i8*, %swift.refcounted*)
 public func resilientEnumPartialApply(_ f: (Medium) -> Int) {
 
-// CHECK:     [[CONTEXT:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:     [[CONTEXT:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK:     call void @_TF15enum_resilience13reabstractionurFFO14resilient_enum6MediumxT_(i8* bitcast (void (%Si*, %swift.opaque*, %swift.refcounted*)* @_TPA__TTRXFo_iO14resilient_enum6Medium_dSi_XFo_iS0__iSi_ to i8*), %swift.refcounted* [[CONTEXT:%.*]], %swift.type* @_TMSi)
   reabstraction(f)
 
diff --git a/test/IRGen/enum_value_semantics.sil b/test/IRGen/enum_value_semantics.sil
index 1c5e406..850aba9 100644
--- a/test/IRGen/enum_value_semantics.sil
+++ b/test/IRGen/enum_value_semantics.sil
@@ -200,7 +200,7 @@
 // CHECK-NEXT:   i64 4, label [[NOT_PRESENT]]
 // CHECK-NEXT: ]
 // CHECK:      [[T0:%.*]] = inttoptr i64 [[V:%.*]] to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_retain(%swift.refcounted* [[T0]])
+// CHECK-NEXT: call void @swift_rt_swift_retain(%swift.refcounted* [[T0]])
 // CHECK-NEXT: br label [[NOT_PRESENT]]
 // CHECK:      switch i64 %0, label [[PRESENT:%.*]] [
 // CHECK-NEXT:   i64 0, label [[NOT_PRESENT:%.*]]
@@ -208,7 +208,7 @@
 // CHECK-NEXT:   i64 4, label [[NOT_PRESENT]]
 // CHECK-NEXT: ]
 // CHECK:      [[T0:%.*]] = inttoptr i64 [[V:%.*]] to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* [[T0]])
+// CHECK-NEXT: call void @swift_rt_swift_release(%swift.refcounted* [[T0]])
 // CHECK-NEXT: br label [[NOT_PRESENT]]
 // CHECK:      ret void
 
@@ -276,7 +276,7 @@
 // CHECK-LABEL: define linkonce_odr hidden i32 @_TwugO20enum_value_semantics20SinglePayloadTrivial
 // CHECK:      [[SELF:%.*]] = bitcast %swift.opaque* %value to %O20enum_value_semantics20SinglePayloadTrivial*
 // CHECK-NEXT: [[OPAQUE:%.*]] = bitcast %O20enum_value_semantics20SinglePayloadTrivial* [[SELF]] to %swift.opaque*
-// CHECK-NEXT: [[TAG:%.*]] = call i32 @rt_swift_getEnumCaseSinglePayload(%swift.opaque* [[OPAQUE]], %swift.type* getelementptr inbounds (%swift.full_type, %swift.full_type* @_TMBi64_, i32 0, i32 1), i32 3)
+// CHECK-NEXT: [[TAG:%.*]] = call i32 @swift_rt_swift_getEnumCaseSinglePayload(%swift.opaque* [[OPAQUE]], %swift.type* getelementptr inbounds (%swift.full_type, %swift.full_type* @_TMBi64_, i32 0, i32 1), i32 3)
 // CHECK-NEXT: ret i32 [[TAG]]
 
 
@@ -294,7 +294,7 @@
 // CHECK-LABEL: define linkonce_odr hidden void @_TwuiO20enum_value_semantics20SinglePayloadTrivial
 // CHECK:      [[SELF:%.*]] = bitcast %swift.opaque* %value to %O20enum_value_semantics20SinglePayloadTrivial*
 // CHECK-NEXT: [[OPAQUE:%.*]] = bitcast %O20enum_value_semantics20SinglePayloadTrivial* [[SELF]] to %swift.opaque*
-// CHECK-NEXT: call void @rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[OPAQUE]], %swift.type* getelementptr inbounds (%swift.full_type, %swift.full_type* @_TMBi64_, i32 0, i32 1), i32 %tag, i32 3)
+// CHECK-NEXT: call void @swift_rt_swift_storeEnumTagSinglePayload(%swift.opaque* [[OPAQUE]], %swift.type* getelementptr inbounds (%swift.full_type, %swift.full_type* @_TMBi64_, i32 0, i32 1), i32 %tag, i32 3)
 // CHECK-NEXT: ret void
 
 
@@ -312,7 +312,7 @@
 // CHECK:      ; <label>:[[RELEASE_PAYLOAD]]
 // CHECK-NEXT: [[DATA_ADDR:%.*]] = bitcast %O20enum_value_semantics23SinglePayloadNontrivial* [[ADDR]] to %swift.refcounted**
 // CHECK-NEXT: [[DATA:%.*]] = load %swift.refcounted*, %swift.refcounted** [[DATA_ADDR]], align 8
-// CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* [[DATA]])
+// CHECK-NEXT: call void @swift_rt_swift_release(%swift.refcounted* [[DATA]])
 // CHECK-NEXT: br label %[[DONE]]
 
 // CHECK:      ; <label>:[[DONE]]
@@ -484,7 +484,7 @@
 // CHECK:      ]
 // CHECK:      ; <label>:[[PAYLOAD1_DESTROY]]
 // CHECK-NEXT: [[PAYLOAD1_VAL:%.*]] = inttoptr i64 [[PAYLOAD_0]] to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* [[PAYLOAD1_VAL]])
+// CHECK-NEXT: call void @swift_rt_swift_release(%swift.refcounted* [[PAYLOAD1_VAL]])
 // CHECK-NEXT: br label %[[END]]
 // CHECK:      ; <label>:[[PAYLOAD3_DESTROY]]
 // CHECK-NEXT: [[PAYLOAD3_1_VAL:%.*]] = inttoptr i64 [[PAYLOAD_1]] to %objc_object*
@@ -539,7 +539,7 @@
 // CHECK:      ]
 // CHECK:      ; <label>:[[PAYLOAD1_DESTROY]]
 // CHECK-NEXT: [[PAYLOAD1_VAL:%.*]] = inttoptr i64 [[PAYLOAD_0]] to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* [[PAYLOAD1_VAL]])
+// CHECK-NEXT: call void @swift_rt_swift_release(%swift.refcounted* [[PAYLOAD1_VAL]])
 // CHECK-NEXT: br label %[[END]]
 // CHECK:      ; <label>:[[PAYLOAD3_DESTROY]]
 // CHECK-NEXT: [[MASKED:%.*]] = and i64 [[PAYLOAD_1]]
diff --git a/test/IRGen/enum_value_semantics_special_cases.sil b/test/IRGen/enum_value_semantics_special_cases.sil
index edac756..967dcfd 100644
--- a/test/IRGen/enum_value_semantics_special_cases.sil
+++ b/test/IRGen/enum_value_semantics_special_cases.sil
@@ -16,7 +16,7 @@
 // CHECK:   %0 = bitcast %swift.opaque* %object to %O34enum_value_semantics_special_cases18NullableRefcounted*
 // CHECK:   %1 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %0 to %swift.refcounted**
 // CHECK:   %2 = load %swift.refcounted*, %swift.refcounted** %1, align 8
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %2) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %2) {{#[0-9]+}}
 // CHECK:   ret void
 // CHECK: }
 
@@ -27,7 +27,7 @@
 // CHECK:   %2 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %0 to %swift.refcounted**
 // CHECK:   %3 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %1 to %swift.refcounted**
 // CHECK:   %4 = load %swift.refcounted*, %swift.refcounted** %3, align 8
-// CHECK:   call void @rt_swift_retain(%swift.refcounted* %4) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_retain(%swift.refcounted* %4) {{#[0-9]+}}
 // CHECK:   store %swift.refcounted* %4, %swift.refcounted** %2, align 8
 // CHECK:   %5 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %0 to %swift.opaque*
 // CHECK:   ret %swift.opaque* %5
@@ -41,9 +41,9 @@
 // CHECK:   %3 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %1 to %swift.refcounted**
 // CHECK:   %4 = load %swift.refcounted*, %swift.refcounted** %2, align 8
 // CHECK:   %5 = load %swift.refcounted*, %swift.refcounted** %3, align 8
-// CHECK:   call void @rt_swift_retain(%swift.refcounted* %5) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_retain(%swift.refcounted* %5) {{#[0-9]+}}
 // CHECK:   store %swift.refcounted* %5, %swift.refcounted** %2, align 8
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
 // CHECK:   %6 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %0 to %swift.opaque*
 // CHECK:   ret %swift.opaque* %6
 // CHECK: }
@@ -57,7 +57,7 @@
 // CHECK:   %4 = load %swift.refcounted*, %swift.refcounted** %2, align 8
 // CHECK:   %5 = load %swift.refcounted*, %swift.refcounted** %3, align 8
 // CHECK:   store %swift.refcounted* %5, %swift.refcounted** %2, align 8
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
 // CHECK:   %6 = bitcast %O34enum_value_semantics_special_cases18NullableRefcounted* %0 to %swift.opaque*
 // CHECK:   ret %swift.opaque* %6
 // CHECK: }
@@ -139,7 +139,7 @@
 // CHECK: ; <label>:3:                                      ; preds = %entry
 // CHECK:   %4 = bitcast %O34enum_value_semantics_special_cases23MultipleEmptyRefcounted* %0 to %swift.refcounted**
 // CHECK:   %toDestroy = load %swift.refcounted*, %swift.refcounted** %4, align 8
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %toDestroy) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %toDestroy) {{#[0-9]+}}
 // CHECK:   br label %5
 // CHECK: ; <label>:5:                                      ; preds = %3, %entry, %entry
 // CHECK:   ret void
@@ -172,7 +172,7 @@
 // --                        0x3fffffffffffffff
 // CHECK:   %3 = and i64 %2, 4611686018427387903
 // CHECK:   %4 = inttoptr i64 %3 to %swift.refcounted*
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %4) {{#[0-9]+}}
 // CHECK:   ret void
 // CHECK: }
 
@@ -181,7 +181,7 @@
 // --                              0x3fffffffffffffff
 // CHECK:         %4 = and i64 %3, 4611686018427387903
 // CHECK:         %5 = inttoptr i64 %4 to %swift.refcounted*
-// CHECK:         call void @rt_swift_retain(%swift.refcounted* %5)
+// CHECK:         call void @swift_rt_swift_retain(%swift.refcounted* %5)
 // CHECK:         %6 = bitcast %O34enum_value_semantics_special_cases13AllRefcounted* %0 to i64*
 // -- NB: The original loaded value is stored, not the masked one.
 // CHECK:         store i64 %3, i64* %6, align 8
diff --git a/test/IRGen/errors.sil b/test/IRGen/errors.sil
index 607c283..86a6be4 100644
--- a/test/IRGen/errors.sil
+++ b/test/IRGen/errors.sil
@@ -58,7 +58,7 @@
 // CHECK-objc:        [[T0:%.*]] = phi %objc_object* [ [[RESULT]],
 // CHECK-objc-NEXT:   call void @swift_unknownRelease(%objc_object* [[T0]])
 // CHECK-native:      [[T0:%.*]] = phi %swift.refcounted* [ [[RESULT]],
-// CHECK-native-NEXT: call void @rt_swift_release(%swift.refcounted* [[T0]])
+// CHECK-native-NEXT: call void @swift_rt_swift_release(%swift.refcounted* [[T0]])
 // CHECK-NEXT:        br label [[CONT:%[0-9]+]]
 bb1(%2 : $AnyObject):
   strong_release %2 : $AnyObject
@@ -67,7 +67,7 @@
 // CHECK:             [[T0:%.*]] = phi %swift.error* [ [[ERR]],
 // CHECK-NEXT:        store %swift.error* null, %swift.error** [[ERRORSLOT]], align
 // CHECK-objc-NEXT:   call void @swift_errorRelease(%swift.error* [[T0]])
-// CHECK-native-NEXT: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%swift.error*)*)(%swift.error* [[T0]])
+// CHECK-native-NEXT: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%swift.error*)*)(%swift.error* [[T0]])
 // CHECK-NEXT:        br label [[CONT]]
 bb2(%3 : $Error):
   release_value %3 : $Error
diff --git a/test/IRGen/existentials.sil b/test/IRGen/existentials.sil
index dcb90cc..0a3ebc2 100644
--- a/test/IRGen/existentials.sil
+++ b/test/IRGen/existentials.sil
@@ -12,15 +12,15 @@
 sil @class_existential_unowned : $@convention(thin) (@owned CP) -> @owned CP {
 entry(%s : $CP):
   %u = ref_to_unowned %s : $CP to $@sil_unowned CP
-  // CHECK: call void @rt_swift_unownedRetain(%swift.refcounted* %0)
+  // CHECK: call void @swift_rt_swift_unownedRetain(%swift.refcounted* %0)
   unowned_retain %u : $@sil_unowned CP
-  // CHECK: call void @rt_swift_unownedRelease(%swift.refcounted* %0)
+  // CHECK: call void @swift_rt_swift_unownedRelease(%swift.refcounted* %0)
   unowned_release %u : $@sil_unowned CP
 
-  // CHECK: call void @rt_swift_unownedRetainStrong(%swift.refcounted* %0)
+  // CHECK: call void @swift_rt_swift_unownedRetainStrong(%swift.refcounted* %0)
   strong_retain_unowned %u : $@sil_unowned CP
   %t = unowned_to_ref %u : $@sil_unowned CP to $CP
-  // CHECK: call void @rt_swift_release(%swift.refcounted* %0)
+  // CHECK: call void @swift_rt_swift_release(%swift.refcounted* %0)
   strong_release %t : $CP
 
   %v = ref_to_unmanaged %s : $CP to $@sil_unmanaged CP
diff --git a/test/IRGen/function_types.sil b/test/IRGen/function_types.sil
index f4e452f..69a1925 100644
--- a/test/IRGen/function_types.sil
+++ b/test/IRGen/function_types.sil
@@ -23,8 +23,8 @@
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @thick_func_value(i8*, %swift.refcounted*) {{.*}} {
 // CHECK-NEXT:  entry:
-// CHECK-NEXT:    call void @rt_swift_retain(%swift.refcounted* %1) {{#[0-9]+}}
-// CHECK-NEXT:    call void @rt_swift_release(%swift.refcounted* %1) {{#[0-9]+}}
+// CHECK-NEXT:    call void @swift_rt_swift_retain(%swift.refcounted* %1) {{#[0-9]+}}
+// CHECK-NEXT:    call void @swift_rt_swift_release(%swift.refcounted* %1) {{#[0-9]+}}
 // CHECK-NEXT:    %2 = insertvalue { i8*, %swift.refcounted* } undef, i8* %0, 0
 // CHECK-NEXT:    %3 = insertvalue { i8*, %swift.refcounted* } %2, %swift.refcounted* %1, 1
 // CHECK-NEXT:    ret { i8*, %swift.refcounted* } %3
diff --git a/test/IRGen/generic_casts.swift b/test/IRGen/generic_casts.swift
index a0bba95..f3203d4 100644
--- a/test/IRGen/generic_casts.swift
+++ b/test/IRGen/generic_casts.swift
@@ -38,7 +38,7 @@
   // CHECK: [[INT_TEMP:%.*]] = alloca %Si,
   // CHECK: [[TEMP:%.*]] = call %swift.opaque* {{.*}}([[BUFFER]]* [[BUF]], %swift.opaque* %0, %swift.type* %T)
   // CHECK: [[T0:%.*]] = bitcast %Si* [[INT_TEMP]] to %swift.opaque*
-  // CHECK: call i1 @rt_swift_dynamicCast(%swift.opaque* [[T0]], %swift.opaque* [[TEMP]], %swift.type* %T, %swift.type* @_TMSi, i64 7)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast(%swift.opaque* [[T0]], %swift.opaque* [[TEMP]], %swift.type* %T, %swift.type* @_TMSi, i64 7)
   // CHECK: [[T0:%.*]] = getelementptr inbounds %Si, %Si* [[INT_TEMP]], i32 0, i32 0
   // CHECK: [[INT_RESULT:%.*]] = load i64, i64* [[T0]],
   // CHECK: ret i64 [[INT_RESULT]]
@@ -50,7 +50,7 @@
   // CHECK: [[T0:%.*]] = getelementptr inbounds %Si, %Si* [[INT_TEMP]], i32 0, i32 0
   // CHECK: store i64 %1, i64* [[T0]],
   // CHECK: [[T0:%.*]] = bitcast %Si* [[INT_TEMP]] to %swift.opaque*
-  // CHECK: call i1 @rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* [[T0]], %swift.type* @_TMSi, %swift.type* %T, i64 7)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* [[T0]], %swift.type* @_TMSi, %swift.type* %T, i64 7)
   return x as! T
 }
 
@@ -94,7 +94,7 @@
   // CHECK: [[LOCAL:%.*]] = alloca %P13generic_casts10ObjCProto1_
   // CHECK: [[LOCAL_OPAQUE:%.*]] = bitcast %P13generic_casts10ObjCProto1_* [[LOCAL]] to %swift.opaque*
   // CHECK: [[PROTO_TYPE:%.*]] = call %swift.type* @_TMaP13generic_casts10ObjCProto1_()
-  // CHECK: call i1 @rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* [[LOCAL_OPAQUE]], %swift.type* [[PROTO_TYPE]], %swift.type* %T, i64 7)
+  // CHECK: call i1 @swift_rt_swift_dynamicCast(%swift.opaque* %0, %swift.opaque* [[LOCAL_OPAQUE]], %swift.type* [[PROTO_TYPE]], %swift.type* %T, i64 7)
   return x as! T
 }
 
diff --git a/test/IRGen/generic_classes.sil b/test/IRGen/generic_classes.sil
index 24a5ee3..7547793 100644
--- a/test/IRGen/generic_classes.sil
+++ b/test/IRGen/generic_classes.sil
@@ -214,7 +214,7 @@
 // CHECK:   [[T1:%.*]] = bitcast i8* [[T0]] to i16*
 // CHECK:   [[ALIGN16:%.*]] = load i16, i16* [[T1]], align 4
 // CHECK:   [[ALIGN:%.*]] = zext i16 [[ALIGN16]] to i64
-// CHECK:   call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* [[METADATA]], i64 [[SIZE]], i64 [[ALIGN]])
+// CHECK:   call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* [[METADATA]], i64 [[SIZE]], i64 [[ALIGN]])
 sil @RootGeneric_fragile_dependent_alloc : $<G> () -> RootGeneric<G> {
 entry:
   %x = alloc_ref $RootGeneric<G>
diff --git a/test/IRGen/generic_metatypes.swift b/test/IRGen/generic_metatypes.swift
index a9f704f..3b55b38 100644
--- a/test/IRGen/generic_metatypes.swift
+++ b/test/IRGen/generic_metatypes.swift
@@ -125,7 +125,7 @@
 // CHECK:   [[BUFFER_ELT:%.*]] = getelementptr inbounds { %swift.type* }, { %swift.type* }* [[BUFFER]], i32 0, i32 0
 // CHECK:   store %swift.type* %0, %swift.type** [[BUFFER_ELT]]
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type* }* [[BUFFER]] to i8*
-// CHECK:   [[METADATA:%.*]] = call %swift.type* @rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes6OneArg {{.*}}, i8* [[BUFFER_PTR]])
+// CHECK:   [[METADATA:%.*]] = call %swift.type* @swift_rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes6OneArg {{.*}}, i8* [[BUFFER_PTR]])
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type* }* [[BUFFER]] to i8*
 // CHECK:   call void @llvm.lifetime.end
 // CHECK:   ret %swift.type* [[METADATA]]
@@ -143,7 +143,7 @@
 // CHECK:   [[BUFFER_ELT:%.*]] = getelementptr inbounds { %swift.type*, %swift.type* }, { %swift.type*, %swift.type* }* [[BUFFER]], i32 0, i32 1
 // CHECK:   store %swift.type* %1, %swift.type** [[BUFFER_ELT]]
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type* }* [[BUFFER]] to i8*
-// CHECK:   [[METADATA:%.*]] = call %swift.type* @rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes7TwoArgs {{.*}}, i8* [[BUFFER_PTR]])
+// CHECK:   [[METADATA:%.*]] = call %swift.type* @swift_rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes7TwoArgs {{.*}}, i8* [[BUFFER_PTR]])
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type* }* [[BUFFER]] to i8*
 // CHECK:   call void @llvm.lifetime.end
 // CHECK:   ret %swift.type* [[METADATA]]
@@ -163,7 +163,7 @@
 // CHECK:   [[BUFFER_ELT:%.*]] = getelementptr inbounds { %swift.type*, %swift.type*, %swift.type* }, { %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]], i32 0, i32 2
 // CHECK:   store %swift.type* %2, %swift.type** [[BUFFER_ELT]]
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
-// CHECK:   [[METADATA:%.*]] = call %swift.type* @rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes9ThreeArgs {{.*}}, i8* [[BUFFER_PTR]])
+// CHECK:   [[METADATA:%.*]] = call %swift.type* @swift_rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes9ThreeArgs {{.*}}, i8* [[BUFFER_PTR]])
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
 // CHECK:   call void @llvm.lifetime.end
 // CHECK:   ret %swift.type* [[METADATA]]
@@ -185,7 +185,7 @@
 // CHECK:   [[BUFFER_ELT:%.*]] = getelementptr inbounds { %swift.type*, %swift.type*, %swift.type*, %swift.type* }, { %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]], i32 0, i32 3
 // CHECK:   store %swift.type* %3, %swift.type** [[BUFFER_ELT]]
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
-// CHECK:   [[METADATA:%.*]] = call %swift.type* @rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes8FourArgs {{.*}}, i8* [[BUFFER_PTR]])
+// CHECK:   [[METADATA:%.*]] = call %swift.type* @swift_rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes8FourArgs {{.*}}, i8* [[BUFFER_PTR]])
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
 // CHECK:   call void @llvm.lifetime.end
 // CHECK:   ret %swift.type* [[METADATA]]
@@ -207,7 +207,7 @@
 // CHECK:   [[BUFFER_ELT:%.*]] = getelementptr inbounds { %swift.type*, %swift.type*, %swift.type*, %swift.type*, %swift.type* }, { %swift.type*, %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]], i32 0, i32 3
 // CHECK:   store %swift.type* %3, %swift.type** [[BUFFER_ELT]]
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
-// CHECK:   [[METADATA:%.*]] = call %swift.type* @rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes8FiveArgs {{.*}}, i8* [[BUFFER_PTR]])
+// CHECK:   [[METADATA:%.*]] = call %swift.type* @swift_rt_swift_getGenericMetadata(%swift.type_pattern* {{.*}} @_TMPV17generic_metatypes8FiveArgs {{.*}}, i8* [[BUFFER_PTR]])
 // CHECK:   [[BUFFER_PTR:%.*]] = bitcast { %swift.type*, %swift.type*, %swift.type*, %swift.type*, %swift.type* }* [[BUFFER]] to i8*
 // CHECK:   call void @llvm.lifetime.end
 // CHECK:   ret %swift.type* [[METADATA]]
diff --git a/test/IRGen/generic_tuples.swift b/test/IRGen/generic_tuples.swift
index f86f37f..4113d05 100644
--- a/test/IRGen/generic_tuples.swift
+++ b/test/IRGen/generic_tuples.swift
@@ -50,7 +50,7 @@
 // CHECK-LABEL: define hidden { %C14generic_tuples1C*, %C14generic_tuples1C* } @_TF14generic_tuples4dupCuRxCS_1CrFxTxx_(%C14generic_tuples1C*, %swift.type* %T)
 // CHECK-NEXT: entry:
 // CHECK:      [[REF:%.*]] = bitcast %C14generic_tuples1C* %0 to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_retain(%swift.refcounted* [[REF]])
+// CHECK-NEXT: call void @swift_rt_swift_retain(%swift.refcounted* [[REF]])
 // CHECK-NEXT: [[TUP1:%.*]] = insertvalue { %C14generic_tuples1C*, %C14generic_tuples1C* } undef, %C14generic_tuples1C* %0, 0
 // CHECK-NEXT: [[TUP2:%.*]] = insertvalue { %C14generic_tuples1C*, %C14generic_tuples1C* } [[TUP1:%.*]], %C14generic_tuples1C* %0, 1
 // CHECK-NEXT: ret { %C14generic_tuples1C*, %C14generic_tuples1C* } [[TUP2]]
@@ -59,14 +59,14 @@
 // CHECK-LABEL: define hidden void @_TF14generic_tuples8callDupCFCS_1CT_(%C14generic_tuples1C*)
 // CHECK-NEXT: entry:
 // CHECK-NEXT: [[REF:%.*]] = bitcast %C14generic_tuples1C* %0 to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_retain(%swift.refcounted* [[REF]])
+// CHECK-NEXT: call void @swift_rt_swift_retain(%swift.refcounted* [[REF]])
 // CHECK-NEXT: [[METATYPE:%.*]] = call %swift.type* @_TMaC14generic_tuples1C()
 // CHECK-NEXT: [[TUPLE:%.*]] = call { %C14generic_tuples1C*, %C14generic_tuples1C* } @_TF14generic_tuples4dupCuRxCS_1CrFxTxx_(%C14generic_tuples1C* %0, %swift.type* [[METATYPE]])
 // CHECK-NEXT: [[LEFT:%.*]] = extractvalue { %C14generic_tuples1C*, %C14generic_tuples1C* } [[TUPLE]], 0
 // CHECK-NEXT: [[RIGHT:%.*]] = extractvalue { %C14generic_tuples1C*, %C14generic_tuples1C* } [[TUPLE]], 1
-// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* [[RIGHT]])
-// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* [[LEFT]])
-// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* %0)
+// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* [[RIGHT]])
+// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* [[LEFT]])
+// CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C14generic_tuples1C*)*)(%C14generic_tuples1C* %0)
 // CHECK-NEXT: ret void
 
 // CHECK: define hidden i64 @_TF14generic_tuples4lump{{.*}}(%swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type* %T)
diff --git a/test/IRGen/generic_types.swift b/test/IRGen/generic_types.swift
index e1b8af8..e230caa 100644
--- a/test/IRGen/generic_types.swift
+++ b/test/IRGen/generic_types.swift
@@ -88,7 +88,7 @@
 // CHECK:   %T = load %swift.type*, %swift.type** [[T0]],
 // CHECK-native: [[METADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata(%swift.type_pattern* %0, i8** %1, %objc_class* null)
 // CHECK-objc:   [[T0:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_SwiftObject"
-// CHECK-objc:   [[SUPER:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
+// CHECK-objc:   [[SUPER:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
 // CHECK-objc:   [[METADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata(%swift.type_pattern* %0, i8** %1, %objc_class* [[SUPER]])
 // CHECK:   [[SELF_ARRAY:%.*]] = bitcast %swift.type* [[METADATA]] to i8**
 // CHECK:   [[T1:%.*]] = getelementptr inbounds i8*, i8** [[SELF_ARRAY]], i32 10
@@ -102,7 +102,7 @@
 // CHECK:   %T = load %swift.type*, %swift.type** [[T0]],
 // CHECK-native: [[METADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata(%swift.type_pattern* %0, i8** %1, %objc_class* null)
 // CHECK-objc:   [[T0:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_SwiftObject"
-// CHECK-objc:   [[SUPER:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
+// CHECK-objc:   [[SUPER:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
 // CHECK-objc:   [[METADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata(%swift.type_pattern* %0, i8** %1, %objc_class* [[SUPER]])
 // CHECK:   [[SELF_ARRAY:%.*]] = bitcast %swift.type* [[METADATA]] to i8**
 // CHECK:   [[T1:%.*]] = getelementptr inbounds i8*, i8** [[SELF_ARRAY]], i32 10
diff --git a/test/IRGen/global_resilience.sil b/test/IRGen/global_resilience.sil
index fdbc117..de219ce 100644
--- a/test/IRGen/global_resilience.sil
+++ b/test/IRGen/global_resilience.sil
@@ -73,7 +73,7 @@
 // CHECK-LABEL: define{{( protected)?}} void @testLargeGlobal()
 sil @testLargeGlobal : $@convention(thin) () -> () {
 bb0:
-  // CHECK: [[ALLOC:%.*]] = call noalias i8* @rt_swift_slowAlloc([[INT]] 32, [[INT]] 7)
+  // CHECK: [[ALLOC:%.*]] = call noalias i8* @swift_rt_swift_slowAlloc([[INT]] 32, [[INT]] 7)
   // CHECK: store i8* [[ALLOC]], i8** bitcast ([[BUFFER]]* @largeGlobal to i8**), align 1
   alloc_global @largeGlobal
 
diff --git a/test/IRGen/indirect_argument.sil b/test/IRGen/indirect_argument.sil
index 8cc2f39..e6303ba 100644
--- a/test/IRGen/indirect_argument.sil
+++ b/test/IRGen/indirect_argument.sil
@@ -65,7 +65,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} void @huge_partial_application(%V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}), %V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}))
 // CHECK:         [[TMP_ARG:%.*]] = alloca
-// CHECK:         [[CLOSURE:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:         [[CLOSURE:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK:         bitcast %swift.refcounted* [[CLOSURE]] to <{ %swift.refcounted, %V17indirect_argument4Huge }>*
 // CHECK:         call void @_TPA_huge_partial_application(%V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]], %swift.refcounted* [[CLOSURE]])
 // CHECK:       define internal void @_TPA_huge_partial_application(%V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}), %swift.refcounted*)
@@ -83,7 +83,7 @@
 // CHECK-LABEL: define{{( protected)?}} void @huge_partial_application_stret(%V17indirect_argument4Huge* noalias nocapture sret, %V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}), %V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}))
 // CHECK:         [[TMP_ARG:%.*]] = alloca
 // CHECK:         [[TMP_RET:%.*]] = alloca
-// CHECK:         [[CLOSURE:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:         [[CLOSURE:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK:         bitcast %swift.refcounted* [[CLOSURE]] to <{ %swift.refcounted, %V17indirect_argument4Huge }>*
 // CHECK:         call void @_TPA_huge_partial_application_stret(%V17indirect_argument4Huge* noalias nocapture sret [[TMP_RET]], %V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}) [[TMP_ARG]], %swift.refcounted* [[CLOSURE]])
 // CHECK:       define internal void @_TPA_huge_partial_application_stret(%V17indirect_argument4Huge* noalias nocapture sret, %V17indirect_argument4Huge* noalias nocapture dereferenceable({{.*}}), %swift.refcounted*)
diff --git a/test/IRGen/metadata_dominance.swift b/test/IRGen/metadata_dominance.swift
index 234409c..bacce3e 100644
--- a/test/IRGen/metadata_dominance.swift
+++ b/test/IRGen/metadata_dominance.swift
@@ -80,5 +80,5 @@
 // conformance metadata_dominance.Foo : metadata_dominance.P should not use the Self type
 // as the type of the object to be created. It should dynamically obtain the type.
 // CHECK-OPT-LABEL: define hidden %C18metadata_dominance3Foo* @_TTWC18metadata_dominance3FooS_1PS_FS1_7makeFoofT_S0_
-// CHECK-OPT-NOT: tail call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* %Self
+// CHECK-OPT-NOT: tail call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* %Self
 
diff --git a/test/IRGen/nonatomic_reference_counting.sil b/test/IRGen/nonatomic_reference_counting.sil
index 160cb25..2f92dca 100644
--- a/test/IRGen/nonatomic_reference_counting.sil
+++ b/test/IRGen/nonatomic_reference_counting.sil
@@ -33,8 +33,8 @@
 sil @doSomething : $@convention(thin) () -> ()
 
 // CHECK-LABEL: define {{.*}}@test_strong_nonatomic_rr
-// CHECK: call {{.*}}@rt_swift_nonatomic_retain
-// CHECK: call {{.*}}@rt_swift_nonatomic_release
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_retain
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_release
 // CHECK: ret
 sil @test_strong_nonatomic_rr: $@convention(thin) () -> @owned C {
 bb0:
@@ -47,8 +47,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_unknown_nonatomic_rr
-// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRetain|rt_swift_nonatomic_retain)}}
-// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRelease|rt_swift_nonatomic_release)}}
+// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRetain|swift_rt_swift_nonatomic_retain)}}
+// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRelease|swift_rt_swift_nonatomic_release)}}
 // CHECK: ret
 sil @test_unknown_nonatomic_rr: $@convention(thin) <T where T : P> (@owned T) -> () {
 bb0(%0 : $T):
@@ -61,8 +61,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_strong_nonatomic_rr_n
-// CHECK: call {{.*}}@rt_swift_nonatomic_retain_n
-// CHECK: call {{.*}}@rt_swift_nonatomic_release_n
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_retain_n
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_release_n
 // CHECK: ret
 sil @test_strong_nonatomic_rr_n: $@convention(thin) () -> @owned C {
 bb0:
@@ -77,8 +77,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_strong_mixed_rr_n
-// CHECK: call {{.*}}@rt_swift_retain_n
-// CHECK: call {{.*}}@rt_swift_release_n
+// CHECK: call {{.*}}@swift_rt_swift_retain_n
+// CHECK: call {{.*}}@swift_rt_swift_release_n
 // CHECK: ret
 sil @test_strong_mixed_rr_n: $@convention(thin) () -> @owned C {
 bb0:
@@ -93,8 +93,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_unknown_nonatomic_rr_n
-// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRetain_n|rt_swift_nonatomic_retain_n)}}
-// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRelease_n|rt_swift_nonatomic_release_n)}}
+// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRetain_n|swift_rt_swift_nonatomic_retain_n)}}
+// CHECK: call {{.*}}@{{(swift_nonatomic_unknownRelease_n|swift_rt_swift_nonatomic_release_n)}}
 // CHECK: ret
 sil @test_unknown_nonatomic_rr_n: $@convention(thin) <T where T : P> (@owned T) -> () {
 bb0(%0 : $T):
@@ -109,8 +109,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_unknown_mixed_rr_n
-// CHECK: call {{.*}}@{{(swift_unknownRetain_n|rt_swift_retain_n)}}
-// CHECK: call {{.*}}@{{(swift_unknownRelease_n|rt_swift_release_n)}}
+// CHECK: call {{.*}}@{{(swift_unknownRetain_n|swift_rt_swift_retain_n)}}
+// CHECK: call {{.*}}@{{(swift_unknownRelease_n|swift_rt_swift_release_n)}}
 // CHECK: ret
 sil @test_unknown_mixed_rr_n: $@convention(thin) <T where T : P> (@owned T) -> () {
 bb0(%0 : $T):
@@ -196,8 +196,8 @@
 }
 
 // CHECK-LABEL: define {{.*}}@test_nonatomic_pin_unpin
-// CHECK: call {{.*}}@rt_swift_nonatomic_tryPin
-// CHECK: call {{.*}}@rt_swift_nonatomic_unpin
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_tryPin
+// CHECK: call {{.*}}@swift_rt_swift_nonatomic_unpin
 // CHECK: ret
 sil @test_nonatomic_pin_unpin: $@convention(thin) () -> () {
 bb0:
diff --git a/test/IRGen/objc.swift b/test/IRGen/objc.swift
index 4c4df44..b623b4c 100644
--- a/test/IRGen/objc.swift
+++ b/test/IRGen/objc.swift
@@ -39,7 +39,7 @@
 class MyBlammo : Blammo {
   func foo() {}
 // CHECK:  define hidden void @_TFC4objc8MyBlammo3foofT_T_([[MYBLAMMO]]*) {{.*}} {
-// CHECK:    call {{.*}} @rt_swift_release
+// CHECK:    call {{.*}} @swift_rt_swift_release
 // CHECK:    ret void
 }
 
@@ -83,7 +83,7 @@
 
 func test1(_ cell: Blammo) {}
 // CHECK:  define hidden void @_TF4objc5test1{{.*}}([[BLAMMO]]*) {{.*}} {
-// CHECK:    call {{.*}} @rt_swift_release
+// CHECK:    call {{.*}} @swift_rt_swift_release
 // CHECK:    ret void
 
 
diff --git a/test/IRGen/objc_block_storage.sil b/test/IRGen/objc_block_storage.sil
index c62f116..16e4faf 100644
--- a/test/IRGen/objc_block_storage.sil
+++ b/test/IRGen/objc_block_storage.sil
@@ -127,7 +127,7 @@
 // CHECK-NEXT:    %2 = getelementptr inbounds { %objc_block, %swift.refcounted* }, { %objc_block, %swift.refcounted* }* %0, i32 0, i32 1
 // CHECK-NEXT:    %3 = getelementptr inbounds { %objc_block, %swift.refcounted* }, { %objc_block, %swift.refcounted* }* %1, i32 0, i32 1
 // CHECK-NEXT:    %4 = load %swift.refcounted*, %swift.refcounted** %3, align 8
-// CHECK-NEXT:    call void @rt_swift_retain(%swift.refcounted* %4) {{#[0-9]+}}
+// CHECK-NEXT:    call void @swift_rt_swift_retain(%swift.refcounted* %4) {{#[0-9]+}}
 // CHECK-NEXT:    store %swift.refcounted* %4, %swift.refcounted** %2, align 8
 // CHECK-NEXT:    ret void
 
@@ -135,7 +135,7 @@
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    %1 = getelementptr inbounds { %objc_block, %swift.refcounted* }, { %objc_block, %swift.refcounted* }* %0, i32 0, i32 1
 // CHECK-NEXT:    %toDestroy = load %swift.refcounted*, %swift.refcounted** %1, align 8
-// CHECK-NEXT:    call void @rt_swift_release(%swift.refcounted* %toDestroy) {{#[0-9]+}}
+// CHECK-NEXT:    call void @swift_rt_swift_release(%swift.refcounted* %toDestroy) {{#[0-9]+}}
 // CHECK-NEXT:    ret void
 
 sil public_external @invoke_nontrivial : $@convention(c) (@inout_aliasable @block_storage Builtin.NativeObject) -> ()
diff --git a/test/IRGen/objc_casts.sil b/test/IRGen/objc_casts.sil
index 304cb7a..322b247 100644
--- a/test/IRGen/objc_casts.sil
+++ b/test/IRGen/objc_casts.sil
@@ -29,7 +29,7 @@
 //   TODO: is this really necessary? also, this really shouldn't use a direct reference
 // CHECK-NEXT:  [[T1:%.*]] = bitcast %objc_object* [[T0]] to i8*
 // CHECK-NEXT:  [[T2a:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_Foo"
-// CHECK-NEXT:  [[T2:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T2a]])
+// CHECK-NEXT:  [[T2:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T2a]])
 // CHECK-NEXT:  [[T3:%.*]] = bitcast %objc_class* [[T2]] to i8*
 // CHECK-NEXT:  call i8* @swift_dynamicCastObjCClassUnconditional(i8* [[T1]], i8* [[T3]])
 sil hidden @metatype_to_objc_class : $@convention(thin) <T> (@thick T.Type) -> () {
@@ -45,7 +45,7 @@
 //   TODO: is this really necessary? also, this really shouldn't use a direct reference
 // CHECK-NEXT:  [[T1:%.*]] = bitcast %objc_object* [[T0]] to i8*
 // CHECK-NEXT:  [[T2a:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_Foo"
-// CHECK-NEXT:  [[T2:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T2a]])
+// CHECK-NEXT:  [[T2:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T2a]])
 // CHECK-NEXT:  [[T3:%.*]] = bitcast %objc_class* [[T2]] to i8*
 // CHECK-NEXT:  call i8* @swift_dynamicCastObjCClassUnconditional(i8* [[T1]], i8* [[T3]])
 sil hidden @opt_metatype_to_objc_class : $@convention(thin) <T> (Optional<@thick T.Type>) -> () {
diff --git a/test/IRGen/objc_dealloc.sil b/test/IRGen/objc_dealloc.sil
index b545882..fe77b72 100644
--- a/test/IRGen/objc_dealloc.sil
+++ b/test/IRGen/objc_dealloc.sil
@@ -86,7 +86,7 @@
   // CHECK-NEXT: [[IVAR_ADDR:%[a-zA-Z0-9]+]] = getelementptr inbounds i8, i8* {{.*}}, i64 [[XOFFSET]]
   // CHECK-NEXT: [[XADDR:%[.a-zA-Z0-9]+]] = bitcast i8* [[IVAR_ADDR]] to %C12objc_dealloc1X**
   // CHECK-NEXT: [[X:%[a-zA-Z0-9]+]] = load %C12objc_dealloc1X*, %C12objc_dealloc1X** [[XADDR]], align 8
-  // CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C12objc_dealloc1X*)*)(%C12objc_dealloc1X* [[X]])
+  // CHECK-NEXT: call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%C12objc_dealloc1X*)*)(%C12objc_dealloc1X* [[X]])
   %3 = ref_element_addr %0 : $SwiftGizmo, #SwiftGizmo.x      // user: %4
   destroy_addr %3 : $*X                           // id: %4
 
diff --git a/test/IRGen/objc_generic_class_metadata.sil b/test/IRGen/objc_generic_class_metadata.sil
index d2293ec..3e0e2b0 100644
--- a/test/IRGen/objc_generic_class_metadata.sil
+++ b/test/IRGen/objc_generic_class_metadata.sil
@@ -39,7 +39,7 @@
   apply %z<GenericClass<NSObject>>(%b) : $@convention(thin) <T> (@thick T.Type) -> ()
 
   // CHECK: [[T0:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_GenericClass",
-  // CHECK: [[OBJC_CLASS:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
+  // CHECK: [[OBJC_CLASS:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
   // CHECK: call void @objc_class_sink(%objc_class* [[OBJC_CLASS]], %swift.type* [[METADATA]])
   %c = metatype $@objc_metatype GenericClass<NSString>.Type
   apply %y<GenericClass<NSString>>(%c) : $@convention(thin) <T: AnyObject> (@objc_metatype T.Type) -> ()
@@ -78,7 +78,7 @@
 
 // CHECK-LABEL: define linkonce_odr hidden %swift.type* @_TMaCSo12GenericClass()
 // CHECK:         [[T0:%.*]] = load %objc_class*, %objc_class** @"OBJC_CLASS_REF_$_GenericClass",
-// CHECK:         call %objc_class* @rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
+// CHECK:         call %objc_class* @swift_rt_swift_getInitializedObjCClass(%objc_class* [[T0]])
 
 // CHECK-LABEL: define linkonce_odr hidden %swift.type* @_TMaGSaTCSo12GenericClassSi__()
 // CHECK:         [[TUPLE:%.*]] = call %swift.type* @_TMaTCSo12GenericClassSi_()
diff --git a/test/IRGen/ownership_qualified_memopts.sil b/test/IRGen/ownership_qualified_memopts.sil
new file mode 100644
index 0000000..3152681
--- /dev/null
+++ b/test/IRGen/ownership_qualified_memopts.sil
@@ -0,0 +1,118 @@
+// First parse this and then emit a *.sib. Then read in the *.sib, then recreate
+// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
+
+import Builtin
+
+// CHECK-LABEL: define {{.*}}void @unqualified_load
+// CHECK: load
+// CHECK-NOT: retain
+// CHECK-NOT: release
+// CHECK: ret void
+sil @unqualified_load : $@convention(thin) (@in Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject):
+  load %0 : $*Builtin.NativeObject
+  %1 = tuple()
+  return %1 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @take_load
+// CHECK-NOT: retain
+// CHECK: load
+// CHECK-NOT: retain
+// CHECK: ret void
+sil @take_load : $@convention(thin) (@in Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject):
+  load [take] %0 : $*Builtin.NativeObject
+  %1 = tuple()
+  return %1 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @copy_load
+// CHECK: load
+// CHECK: retain
+// CHECK: ret void
+sil @copy_load : $@convention(thin) (@in Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject):
+  load [copy] %0 : $*Builtin.NativeObject
+  %1 = tuple()
+  return %1 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @trivial_load
+// CHECK-NOT: retain
+// CHECK: load
+// CHECK-NOT: retain
+// CHECK: ret void
+sil @trivial_load : $@convention(thin) (@in Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.Int32):
+  load [trivial] %0 : $*Builtin.Int32
+  %1 = tuple()
+  return %1 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @unqualified_store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: ret void
+sil @unqualified_store : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject):
+  store %1 to %0 : $*Builtin.NativeObject
+  %2 = tuple()
+  return %2 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @init_store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: ret void
+sil @init_store : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject):
+  store %1 to [init] %0 : $*Builtin.NativeObject
+  %2 = tuple()
+  return %2 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @assign_store
+// CHECK: load
+// CHECK: store
+// CHECK: release
+// CHECK: ret void
+sil @assign_store : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject):
+  store %1 to [assign] %0 : $*Builtin.NativeObject
+  %2 = tuple()
+  return %2 : $()
+}
+
+struct Foo {
+  var i: Builtin.Int32
+  var b: Builtin.NativeObject
+}
+
+sil @assign_store_2 : $@convention(thin) (@in Foo, Foo) -> () {
+bb0(%0 : $*Foo, %1 : $Foo):
+  %2 = load [copy] %0 : $*Foo
+  store %1 to [assign] %0 : $*Foo
+  %3 = tuple()
+  return %3 : $()
+}
+
+// CHECK-LABEL: define {{.*}}void @trivial_store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: store
+// CHECK-NOT: load
+// CHECK-NOT: release
+// CHECK: ret void
+sil @trivial_store : $@convention(thin) (@in Builtin.Int32, Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.Int32, %1 : $Builtin.Int32):
+  store %1 to [trivial] %0 : $*Builtin.Int32
+  %2 = tuple()
+  return %2 : $()
+}
diff --git a/test/IRGen/partial_apply.sil b/test/IRGen/partial_apply.sil
index 33b1ebd..0c5a786 100644
--- a/test/IRGen/partial_apply.sil
+++ b/test/IRGen/partial_apply.sil
@@ -50,7 +50,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @indirect_partial_apply(i8*, %swift.refcounted*, i64) {{.*}} {
 // CHECK: entry:
-// CHECK:   [[OBJ:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata, i32 0, i32 2), i64 40, i64 7)
+// CHECK:   [[OBJ:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata, i32 0, i32 2), i64 40, i64 7)
 // CHECK:   [[DATA_ADDR:%.*]] = bitcast %swift.refcounted* [[OBJ]] to [[DATA_TYPE:<{ %swift.refcounted, i64, %swift.refcounted\*, i8\* }>]]*
 // CHECK:   [[X_ADDR:%.*]] = getelementptr inbounds [[DATA_TYPE]], [[DATA_TYPE]]* [[DATA_ADDR]], i32 0, i32 1
 // CHECK:   store i64 %2, i64* [[X_ADDR]], align 8
@@ -83,7 +83,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @objc_partial_apply(%C13partial_apply9ObjCClass*) {{.*}} {
 // CHECK: entry:
-// CHECK:   [[OBJ:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata.2, i32 0, i32 2), i64 24, i64 7)
+// CHECK:   [[OBJ:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* getelementptr inbounds (%swift.full_boxmetadata, %swift.full_boxmetadata* @metadata.2, i32 0, i32 2), i64 24, i64 7)
 // CHECK:   [[DATA_ADDR:%.*]] = bitcast %swift.refcounted* [[OBJ]] to [[DATA_TYPE:<{ %swift.refcounted, %C13partial_apply9ObjCClass\* }>]]*
 // CHECK:   [[X_ADDR:%.*]] = getelementptr inbounds [[DATA_TYPE]], [[DATA_TYPE]]* [[DATA_ADDR]], i32 0, i32 1
 // CHECK:   store %C13partial_apply9ObjCClass* %0, %C13partial_apply9ObjCClass** [[X_ADDR]], align 8
@@ -114,7 +114,7 @@
 }
 
 // CHECK-LABEL: define{{.*}} { i8*, %swift.refcounted* } @objc_partial_apply_indirect_sil_argument(%C13partial_apply9ObjCClass*) {{.*}}
-// CHECK:  [[CTX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:  [[CTX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK:  [[CTX_ADDR:%.*]] = bitcast %swift.refcounted* [[CTX]] to [[CTXTYPE:<{ %swift.refcounted, %C13partial_apply9ObjCClass\* }>]]*
 // CHECK:  [[SELF_ADDR:%.*]] = getelementptr inbounds [[CTXTYPE]], [[CTXTYPE]]* [[CTX_ADDR]], i32 0, i32 1
 // CHECK:  store %C13partial_apply9ObjCClass* %0, %C13partial_apply9ObjCClass** [[SELF_ADDR]]
@@ -146,7 +146,7 @@
 // CHECK:   [[I8PTRSELF:%.*]] = bitcast %C13partial_apply9ObjCClass* [[SELF]] to [[OPAQUE4:%.*]]*
 // CHECK:   call [[OPAQUE3:%.*]]* bitcast (void ()* @objc_msgSend to [[OPAQUE3]]* ([[OPAQUE4:%.*]]*, i8*)*)([[OPAQUE4]]* [[I8PTRSELF]], i8* [[CMD]])
 // CHECK-NOT: release
-// CHECK:   call void @rt_swift_release(%swift.refcounted* %0)
+// CHECK:   call void @swift_rt_swift_release(%swift.refcounted* %0)
 // CHECK-NOT: release
 // CHECK:   ret void
 // CHECK: }
@@ -208,7 +208,7 @@
 sil @partially_applyable_to_pure_objc : $@convention(thin) Gizmo -> ()
 
 // CHECK: define{{( protected)?}} { i8*, %swift.refcounted* } @partial_apply_pure_objc
-// CHECK:   @rt_swift_allocObject
+// CHECK:   @swift_rt_swift_allocObject
 sil @partial_apply_pure_objc : $@convention(thin) Gizmo -> @callee_owned () -> () {
 entry(%c : $Gizmo):
   %f = function_ref @partially_applyable_to_pure_objc : $@convention(thin) Gizmo -> ()
@@ -296,7 +296,7 @@
 // CHECK-NOT:     release
 // CHECK:         [[RESULT:%.*]] = call i64 @indirect_guaranteed_captured_class_param(i64 %0, %C13partial_apply10SwiftClass** noalias nocapture dereferenceable({{.*}}) [[X_CAST]]
 // CHECK-NOT:     retain
-// CHECK:         call void @rt_swift_release(%swift.refcounted* %1)
+// CHECK:         call void @swift_rt_swift_release(%swift.refcounted* %1)
 // CHECK:         ret i64 [[RESULT]]
 
 sil @partial_apply_indirect_guaranteed_class_param : $@convention(thin) (@in SwiftClass) -> @callee_owned (Int) -> Int {
@@ -345,7 +345,7 @@
 sil public_external @guaranteed_captured_class_pair_param : $@convention(thin) (Int, @guaranteed SwiftClassPair) -> Int
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @partial_apply_guaranteed_class_pair_param(%C13partial_apply10SwiftClass*, %C13partial_apply10SwiftClass*)
-// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK:         [[PAIR_ADDR:%.*]] = getelementptr
 // CHECK-NEXT:    [[X_ADDR:%.*]] = getelementptr inbounds %V13partial_apply14SwiftClassPair, %V13partial_apply14SwiftClassPair* [[PAIR_ADDR]], i32 0, i32 0
 // CHECK-NEXT:    store %C13partial_apply10SwiftClass* %0, %C13partial_apply10SwiftClass** [[X_ADDR]], align
@@ -376,7 +376,7 @@
 sil public_external @indirect_guaranteed_captured_class_pair_param : $@convention(thin) (Int, @in_guaranteed SwiftClassPair) -> Int
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @partial_apply_indirect_guaranteed_class_pair_param(%V13partial_apply14SwiftClassPair* noalias nocapture dereferenceable({{.*}}))
-// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK-NOT:     {{retain|release}}
 // CHECK:         [[T0:%.*]] = insertvalue {{.*}} [[PARTIAL_APPLY_FORWARDER:@_TPA_[A-Za-z0-9_]+]] {{.*}} [[CONTEXT_OBJ]]
 // CHECK:         ret {{.*}} [[T0]]
@@ -399,7 +399,7 @@
 sil public_external @indirect_consumed_captured_class_pair_param : $@convention(thin) (Int, @in SwiftClassPair) -> Int
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @partial_apply_indirect_consumed_class_pair_param(%V13partial_apply14SwiftClassPair* noalias nocapture dereferenceable({{.*}}))
-// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject
+// CHECK:         [[CONTEXT_OBJ:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject
 // CHECK-NOT:     {{retain|release}}
 // CHECK:         [[T0:%.*]] = insertvalue {{.*}} [[PARTIAL_APPLY_FORWARDER:@_TPA_[A-Za-z0-9_]+]] {{.*}} [[CONTEXT_OBJ]]
 // CHECK:         ret {{.*}} [[T0]]
@@ -461,7 +461,7 @@
 // CHECK-32:      [[TOTAL_ALIGN:%.*]] = or [[WORD]] [[TOTAL_ALIGN_1]], 3
 
 // -- Allocate using the total size and alignment.
-// CHECK:         [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}}, [[WORD]] [[TOTAL_SIZE]], [[WORD]] [[TOTAL_ALIGN]])
+// CHECK:         [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}}, [[WORD]] [[TOTAL_SIZE]], [[WORD]] [[TOTAL_ALIGN]])
 // CHECK:         [[BOX_DATA:%.*]] = bitcast %swift.refcounted* [[BOX]]
 // -- metadata
 // CHECK:         getelementptr inbounds {{.*}} [[BOX_DATA]], i32 0, i32 1
@@ -580,7 +580,7 @@
   return %result : $()
 }
 // CHECK-LABEL: define void @partial_apply_complex_generic_function(i64, %swift.type* %T, i8** %T.P2, i8** %T.Y.P2)
-// CHECK:      [[T0:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}}, i64 48, i64 7)
+// CHECK:      [[T0:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}}, i64 48, i64 7)
 // CHECK-NEXT: [[T1:%.*]] = bitcast %swift.refcounted* [[T0]] to <{ %swift.refcounted, [24 x i8], %Si }>*
 // CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds <{ %swift.refcounted, [24 x i8], %Si }>, <{ %swift.refcounted, [24 x i8], %Si }>* [[T1]], i32 0, i32 1
 // CHECK-NEXT: [[BUFFER:%.*]] = bitcast [24 x i8]* [[T2]] to %swift.type**
diff --git a/test/IRGen/protocol_metadata.swift b/test/IRGen/protocol_metadata.swift
index ff4a7d9..9f3ffe8 100644
--- a/test/IRGen/protocol_metadata.swift
+++ b/test/IRGen/protocol_metadata.swift
@@ -82,12 +82,12 @@
                     abc: A & B & C,
                     abco: A & B & C & O) {
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1A
-  // CHECK: call %swift.type* @rt_swift_getExistentialTypeMetadata(i64 1, %swift.protocol** {{%.*}})
+  // CHECK: call %swift.type* @swift_rt_swift_getExistentialTypeMetadata(i64 1, %swift.protocol** {{%.*}})
   reify_metadata(a)
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1A
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1B
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1C
-  // CHECK: call %swift.type* @rt_swift_getExistentialTypeMetadata(i64 3, %swift.protocol** {{%.*}})
+  // CHECK: call %swift.type* @swift_rt_swift_getExistentialTypeMetadata(i64 3, %swift.protocol** {{%.*}})
   reify_metadata(abc)
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1A
   // CHECK: store %swift.protocol* @_TMp17protocol_metadata1B
@@ -95,7 +95,7 @@
   // CHECK: [[O_REF:%.*]] = load i8*, i8** @"\01l_OBJC_PROTOCOL_REFERENCE_$__TtP17protocol_metadata1O_"
   // CHECK: [[O_REF_BITCAST:%.*]] = bitcast i8* [[O_REF]] to %swift.protocol*
   // CHECK: store %swift.protocol* [[O_REF_BITCAST]]
-  // CHECK: call %swift.type* @rt_swift_getExistentialTypeMetadata(i64 4, %swift.protocol** {{%.*}})
+  // CHECK: call %swift.type* @swift_rt_swift_getExistentialTypeMetadata(i64 4, %swift.protocol** {{%.*}})
   reify_metadata(abco)
 }
 
diff --git a/test/IRGen/protocol_resilience.sil b/test/IRGen/protocol_resilience.sil
index a5a7781..b38e1b1 100644
--- a/test/IRGen/protocol_resilience.sil
+++ b/test/IRGen/protocol_resilience.sil
@@ -92,7 +92,7 @@
   // implementation
 
   // CHECK-NEXT: [[WTABLE:%.*]] = bitcast i8** %SelfWitnessTable to i8*
-  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject({{.*}})
+  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject({{.*}})
   // CHECK-NEXT: [[LAYOUT:%.*]] = bitcast %swift.refcounted* [[CONTEXT]] to <{ %swift.refcounted, [{{4|8}} x i8], i8* }>*
   // CHECK:      [[WTABLE_ADDR:%.*]] = getelementptr inbounds <{ %swift.refcounted, [{{4|8}} x i8], i8* }>, <{ %swift.refcounted, [{{4|8}} x i8], i8* }>* [[LAYOUT]], i32 0, i32 2
   // CHECK-NEXT: store i8* [[WTABLE]], i8** [[WTABLE_ADDR]]
@@ -132,7 +132,7 @@
   // implementation
 
   // CHECK-NEXT: [[WTABLE:%.*]] = bitcast i8** %SelfWitnessTable to i8*
-  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject({{.*}})
+  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject({{.*}})
   // CHECK-NEXT: [[LAYOUT:%.*]] = bitcast %swift.refcounted* [[CONTEXT]] to <{ %swift.refcounted, [{{4|8}} x i8], i8* }>*
   // CHECK:      [[WTABLE_ADDR:%.*]] = getelementptr inbounds <{ %swift.refcounted, [{{4|8}} x i8], i8* }>, <{ %swift.refcounted, [{{4|8}} x i8], i8* }>* [[LAYOUT]], i32 0, i32 2
   // CHECK-NEXT: store i8* [[WTABLE]], i8** [[WTABLE_ADDR]]
@@ -212,7 +212,7 @@
 
   // Make sure we can partially apply direct references to default implementations
 
-  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject({{.*}})
+  // CHECK-NEXT: [[CONTEXT:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject({{.*}})
   // CHECK-NEXT: [[LAYOUT:%.*]] = bitcast %swift.refcounted* [[CONTEXT]] to <{ %swift.refcounted, i8* }>*
   // CHECK-NEXT: [[WTABLE:%.*]] = getelementptr inbounds <{ %swift.refcounted, i8* }>, <{ %swift.refcounted, i8* }>* [[LAYOUT]], i32 0, i32 1
   // CHECK-NEXT: store i8* bitcast ([8 x i8*]* @_TWPV19protocol_resilience16ConformingStructS_17ResilientProtocolS_ to i8*), i8** [[WTABLE]]
@@ -287,7 +287,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} i8** @_TWaV19protocol_resilience23ResilientConformingType18resilient_protocol22OtherResilientProtocolS_()
 // CHECK-NEXT:  entry:
-// CHECK-NEXT:    [[WTABLE:%.*]] = call i8** @rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGV19protocol_resilience23ResilientConformingType18resilient_protocol22OtherResilientProtocolS_, %swift.type* null, i8** null)
+// CHECK-NEXT:    [[WTABLE:%.*]] = call i8** @swift_rt_swift_getGenericWitnessTable(%swift.generic_witness_table_cache* @_TWGV19protocol_resilience23ResilientConformingType18resilient_protocol22OtherResilientProtocolS_, %swift.type* null, i8** null)
 // CHECK-NEXT:    ret i8** [[WTABLE]]
 
 
diff --git a/test/IRGen/runtime_calling_conventions.swift b/test/IRGen/runtime_calling_conventions.swift
index 3db4c4e..cea3712 100644
--- a/test/IRGen/runtime_calling_conventions.swift
+++ b/test/IRGen/runtime_calling_conventions.swift
@@ -11,11 +11,11 @@
 
 // CHECK-LABEL: define {{(protected )?}}void @_TF27runtime_calling_conventions3fooFCS_1CT_(%C27runtime_calling_conventions1C*)
 // Check that runtime functions use a proper calling convention.
-// CHECK: call void {{.*}} @rt_swift_release
+// CHECK: call void {{.*}} @swift_rt_swift_release
 
 // OPT-CHECK-LABEL: define {{(protected )?}}void @_TF27runtime_calling_conventions3fooFCS_1CT_(%C27runtime_calling_conventions1C*)
 // Check that runtime functions use a proper calling convention.
-// OPT-CHECK: tail call void @rt_swift_release
+// OPT-CHECK: tail call void @swift_rt_swift_release
 
 public func foo(_ c: C) {
 }
@@ -23,13 +23,13 @@
 // Check that wrappers were generated, have a proper calling convention, linkage
 // and linkonce_odr flags.
 
-// CHECK: define linkonce_odr hidden void @rt_swift_release(%swift.refcounted*) #[[ATTR_REF:[0-9]+]]
+// CHECK: define linkonce_odr hidden void @swift_rt_swift_release(%swift.refcounted*) #[[ATTR_REF:[0-9]+]]
 // CHECK: load void (%swift.refcounted*)*, void (%swift.refcounted*)** @_swift_release
 // CHECK-NEXT: tail call void %load(%swift.refcounted* %0)
 // CHECK-NEXT: ret void
 // CHECK: attributes #[[ATTR_REF]] = { noinline nounwind }
 
-// OPT-CHECK: define linkonce_odr hidden void @rt_swift_release(%swift.refcounted*) local_unnamed_addr #[[ATTR_REF:[0-9]+]]
+// OPT-CHECK: define linkonce_odr hidden void @swift_rt_swift_release(%swift.refcounted*) local_unnamed_addr #[[ATTR_REF:[0-9]+]]
 // OPT-CHECK: load void (%swift.refcounted*)*, void (%swift.refcounted*)** @_swift_release
 // OPT-CHECK-NEXT: tail call void %load(%swift.refcounted* %0)
 // OPT-CHECK-NEXT: ret void
diff --git a/test/IRGen/sil_witness_methods.sil b/test/IRGen/sil_witness_methods.sil
index 8a7e2c2..a57a9cb 100644
--- a/test/IRGen/sil_witness_methods.sil
+++ b/test/IRGen/sil_witness_methods.sil
@@ -137,7 +137,7 @@
 }
 
 // CHECK-LABEL: define{{( protected)?}} { i8*, %swift.refcounted* } @partial_apply_concrete_witness() {{.*}} {
-// CHECK:         [[CONTEXT:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject({{.*}})
+// CHECK:         [[CONTEXT:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject({{.*}})
 // CHECK:         [[LAYOUT:%.*]] = bitcast %swift.refcounted* [[CONTEXT]] to <{ %swift.refcounted, i8* }>*
 // CHECK:         [[WTABLE:%.*]] = getelementptr inbounds <{ %swift.refcounted, i8* }>, <{ %swift.refcounted, i8* }>* [[LAYOUT]], i32 0, i32 1
 // CHECK:         store i8* null, i8** [[WTABLE]]
diff --git a/test/IRGen/tail_alloc.sil b/test/IRGen/tail_alloc.sil
index 2518c67..bcf9f06 100644
--- a/test/IRGen/tail_alloc.sil
+++ b/test/IRGen/tail_alloc.sil
@@ -35,7 +35,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} {{.*}}* @alloc_on_heap
 // CHECK:      [[M:%[0-9]+]] = call %swift.type* @_TMa[[C:[a-zA-Z0-9_]+]]()
-// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* [[M]], i64 28, i64 7) #5
+// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* [[M]], i64 28, i64 7) #5
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %[[C]]*
 // CHECK-NEXT:  ret %[[C]]* [[O2]]
 sil @alloc_on_heap : $@convention(thin) () -> @owned TestClass {
@@ -47,7 +47,7 @@
 
 // CHECK-LABEL: define{{( protected)?}} {{.*}}* @alloc_3_on_heap
 // CHECK:      [[M:%[0-9]+]] = call %swift.type* @_TMa[[C:[a-zA-Z0-9_]+]]()
-// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* [[M]], i64 40, i64 7) #5
+// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* [[M]], i64 40, i64 7) #5
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %[[C]]*
 // CHECK-NEXT:  ret %[[C]]* [[O2]]
 sil @alloc_3_on_heap : $@convention(thin) () -> @owned TestClass {
@@ -63,7 +63,7 @@
 // CHECK:      [[M:%[0-9]+]] = call %swift.type* @_TMa[[C:[a-zA-Z0-9_]+]]()
 // CHECK-NEXT: [[S:%[0-9]+]] = mul i64 4, %0
 // CHECK-NEXT: [[A:%[0-9]+]] = add i64 20, [[S]]
-// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* [[M]], i64 [[A]], i64 7) #5
+// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* [[M]], i64 [[A]], i64 7) #5
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %[[C]]*
 // CHECK-NEXT:  ret %[[C]]* [[O2]]
 sil @alloc_non_const_count : $@convention(thin) (Builtin.Word) -> @owned TestClass {
@@ -80,7 +80,7 @@
 // CHECK-NEXT: [[S4:%[0-9]+]] = and i64 [[S3]], -4
 // CHECK-NEXT: [[S5:%[0-9]+]] = mul i64 4, %1
 // CHECK-NEXT: [[S6:%[0-9]+]] = add i64 [[S4]], [[S5]]
-// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* [[M]], i64 [[S6]], i64 7) #5
+// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* [[M]], i64 [[S6]], i64 7) #5
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %[[C]]*
 // CHECK-NEXT:  ret %[[C]]* [[O2]]
 sil @alloc_2_non_const_count : $@convention(thin) (Builtin.Word, Builtin.Word) -> @owned TestClass {
@@ -95,7 +95,7 @@
 // CHECK-NEXT: [[S3:%[0-9]+]] = and i64 [[S1]], [[S2]]
 // CHECK-NEXT: [[S4:%[0-9]+]] = mul i64 %stride, %0
 // CHECK-NEXT: [[S5:%[0-9]+]] = add i64 [[S3]], [[S4]]
-// CHECK:      call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* %{{[0-9]+}}, i64 [[S5]], i64 7) #5
+// CHECK:      call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* %{{[0-9]+}}, i64 [[S5]], i64 7) #5
 // CHECK:      ret
 sil @alloc_generic : $@convention(thin) <T> (Builtin.Word, @thick T.Type) -> @owned TestClass {
 bb0(%0 : $Builtin.Word, %1 : $@thick T.Type):
@@ -113,7 +113,7 @@
 // CHECK:      [[ALIGN_TMP:%[0-9]+]] = add i64 [[SIZE64]], 3
 // CHECK-NEXT: [[ALIGNED:%[0-9]+]] = and i64 [[ALIGN_TMP]], -4
 // CHECK-NEXT: [[TOTAL_SIZE:%[0-9]+]] = add i64 [[ALIGNED]], 12
-// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* %0, i64 [[TOTAL_SIZE]], i64 {{.*}})
+// CHECK-NEXT: [[O:%[0-9]+]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* %0, i64 [[TOTAL_SIZE]], i64 {{.*}})
 // CHECK-NEXT: [[O2:%[0-9]+]] = bitcast %swift.refcounted* [[O]] to %{{.*TestClass}}*
 // CHECK-NEXT:  ret %{{.*TestClass}}* [[O2]]
 sil @alloc_dynamic : $@convention(thin) (@thick TestClass.Type) -> @owned TestClass {
diff --git a/test/IRGen/typed_boxes.sil b/test/IRGen/typed_boxes.sil
index ae7c860..d0d86e8 100644
--- a/test/IRGen/typed_boxes.sil
+++ b/test/IRGen/typed_boxes.sil
@@ -7,7 +7,7 @@
 // CHECK-LABEL: define{{( protected)?}} void @pod_box_8_8_a
 sil @pod_box_8_8_a : $@convention(thin) () -> () {
 entry:
-  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[POD_8_8_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD:i[0-9]+]] 24, [[WORD]] 7)
+  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[POD_8_8_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD:i[0-9]+]] 24, [[WORD]] 7)
   %a = alloc_box $Builtin.Int64
   // CHECK-32: [[BOX_RAW:%.*]] = bitcast %swift.refcounted* [[BOX]] to [[POD_8_8_LAYOUT:<\{ %swift.refcounted, \[4 x i8\], \[8 x i8\] \}>]]*
   // CHECK-32: [[BOX_DATA:%.*]] = getelementptr inbounds [[POD_8_8_LAYOUT]], [[POD_8_8_LAYOUT]]* [[BOX_RAW]], i32 0, i32 2
@@ -15,7 +15,7 @@
   // CHECK-64: [[BOX_DATA:%.*]] = getelementptr inbounds [[POD_8_8_LAYOUT]], [[POD_8_8_LAYOUT]]* [[BOX_RAW]], i32 0, i32 1
   // CHECK: [[BOX_DATA_1:%.*]] = bitcast [8 x i8]* [[BOX_DATA]] to i64*
   %b = project_box %a : $@box Builtin.Int64
-  // CHECK: call void @rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 24, [[WORD]] 7)
+  // CHECK: call void @swift_rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 24, [[WORD]] 7)
   dealloc_box %a : $@box Builtin.Int64
   return undef : $()
 }
@@ -23,7 +23,7 @@
 // CHECK-LABEL: define{{( protected)?}} void @pod_box_8_8_b
 sil @pod_box_8_8_b : $@convention(thin) () -> () {
 entry:
-  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[POD_8_8_METADATA]], {{.*}} [[WORD]] 24, [[WORD]] 7)
+  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[POD_8_8_METADATA]], {{.*}} [[WORD]] 24, [[WORD]] 7)
   %a = alloc_box $Builtin.FPIEEE64
   // CHECK-32: [[BOX_RAW:%.*]] = bitcast %swift.refcounted* [[BOX]] to [[POD_8_8_LAYOUT:<\{ %swift.refcounted, \[4 x i8\], \[8 x i8\] \}>]]*
   // CHECK-32: [[BOX_DATA:%.*]] = getelementptr inbounds [[POD_8_8_LAYOUT]], [[POD_8_8_LAYOUT]]* [[BOX_RAW]], i32 0, i32 2
@@ -31,7 +31,7 @@
   // CHECK-64: [[BOX_DATA:%.*]] = getelementptr inbounds [[POD_8_8_LAYOUT]], [[POD_8_8_LAYOUT]]* [[BOX_RAW]], i32 0, i32 1
   // CHECK: [[BOX_DATA_1:%.*]] = bitcast [8 x i8]* [[BOX_DATA]] to double*
   %b = project_box %a : $@box Builtin.FPIEEE64
-  // CHECK: call void @rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 24, [[WORD]] 7)
+  // CHECK: call void @swift_rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 24, [[WORD]] 7)
   dealloc_box %a : $@box Builtin.FPIEEE64
   return undef : $()
 }
@@ -44,14 +44,14 @@
 // CHECK-LABEL: define{{( protected)?}} void @pod_box_32_32
 sil @pod_box_32_32 : $@convention(thin) () -> () {
 entry:
-  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[POD_32_32_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 64, [[WORD]] 31)
+  // CHECK: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[POD_32_32_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 64, [[WORD]] 31)
   %a = alloc_box $OverAligned
   // CHECK-32: [[BOX_RAW:%.*]] = bitcast %swift.refcounted* [[BOX]] to [[POD_32_32_LAYOUT:<\{ %swift.refcounted, \[20 x i8\], \[32 x i8\] \}>]]*
   // CHECK-64: [[BOX_RAW:%.*]] = bitcast %swift.refcounted* [[BOX]] to [[POD_32_32_LAYOUT:<\{ %swift.refcounted, \[16 x i8\], \[32 x i8\] \}>]]*
   // CHECK: [[BOX_DATA:%.*]] = getelementptr inbounds [[POD_32_32_LAYOUT]], [[POD_32_32_LAYOUT]]* [[BOX_RAW]], i32 0, i32 2
   // CHECK: [[BOX_DATA_1:%.*]] = bitcast [32 x i8]* [[BOX_DATA]] to %V11typed_boxes11OverAligned*
   %b = project_box %a : $@box OverAligned
-  // CHECK: call void @rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 64, [[WORD]] 31)
+  // CHECK: call void @swift_rt_swift_deallocObject(%swift.refcounted* [[BOX]], [[WORD]] 64, [[WORD]] 31)
   dealloc_box %a : $@box OverAligned
   return undef : $()
 }
@@ -65,8 +65,8 @@
 // CHECK-LABEL: define{{( protected)?}} void @rc_box_a
 sil @rc_box_a : $@convention(thin) () -> () {
 entry:
-  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 16, [[WORD]] 3)
-  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 24, [[WORD]] 7)
+  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 16, [[WORD]] 3)
+  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 24, [[WORD]] 7)
   %a = alloc_box $C
   // CHECK: bitcast %swift.refcounted** {{%.*}} to %C11typed_boxes1C**
   %b = project_box %a : $@box C
@@ -78,8 +78,8 @@
 sil @rc_box_b : $@convention(thin) () -> () {
 entry:
   // TODO: Should reuse metadata
-  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA]], {{.*}} [[WORD]] 16, [[WORD]] 3)
-  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA]], {{.*}} [[WORD]] 24, [[WORD]] 7)
+  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA]], {{.*}} [[WORD]] 16, [[WORD]] 3)
+  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[NATIVE_RC_METADATA]], {{.*}} [[WORD]] 24, [[WORD]] 7)
   %a = alloc_box $D
   // CHECK: bitcast %swift.refcounted** {{%.*}} to %C11typed_boxes1D**
   %b = project_box %a : $@box D
@@ -90,8 +90,8 @@
 // CHECK-LABEL: define{{( protected)?}} void @unknown_rc_box
 sil @unknown_rc_box : $@convention(thin) () -> () {
 entry:
-  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[UNKNOWN_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 16, [[WORD]] 3)
-  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @rt_swift_allocObject(%swift.type* {{.*}} [[UNKNOWN_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 24, [[WORD]] 7)
+  // CHECK-32: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[UNKNOWN_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 16, [[WORD]] 3)
+  // CHECK-64: [[BOX:%.*]] = call noalias %swift.refcounted* @swift_rt_swift_allocObject(%swift.type* {{.*}} [[UNKNOWN_RC_METADATA:@metadata[0-9.]*]], {{.*}} [[WORD]] 24, [[WORD]] 7)
   %a = alloc_box $Builtin.UnknownObject
   %b = project_box %a : $@box Builtin.UnknownObject
   dealloc_box %a : $@box Builtin.UnknownObject
diff --git a/test/IRGen/typemetadata.sil b/test/IRGen/typemetadata.sil
index fcdcbd6..6f8f507 100644
--- a/test/IRGen/typemetadata.sil
+++ b/test/IRGen/typemetadata.sil
@@ -29,7 +29,7 @@
 // CHECK:      [[T0:%.*]] = load %swift.type*, %swift.type**  @_TMLC12typemetadata1C, align 8
 // CHECK-NEXT: [[T1:%.*]] = icmp eq %swift.type* [[T0]], null
 // CHECK-NEXT: br i1 [[T1]]
-// CHECK:      [[T0:%.*]] = call %objc_class* @rt_swift_getInitializedObjCClass({{.*}} @_TMfC12typemetadata1C, {{.*}})
+// CHECK:      [[T0:%.*]] = call %objc_class* @swift_rt_swift_getInitializedObjCClass({{.*}} @_TMfC12typemetadata1C, {{.*}})
 // CHECK-NEXT: [[T1:%.*]] = bitcast %objc_class* [[T0]] to %swift.type*
 // CHECK:      store atomic %swift.type* [[T1]], %swift.type** @_TMLC12typemetadata1C release, align 8
 // CHECK-NEXT: br label
diff --git a/test/IRGen/unowned.sil b/test/IRGen/unowned.sil
index 05af7d1..9fa03d7 100644
--- a/test/IRGen/unowned.sil
+++ b/test/IRGen/unowned.sil
@@ -27,8 +27,8 @@
   %4 = return %3 : $()
 }
 // CHECK:    define{{( protected)?}} void @test_weak_rr_class([[C]]*) {{.*}} {
-// CHECK:      call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* %0)
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* %0)
+// CHECK:      call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* %0)
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* %0)
 // CHECK-NEXT: ret void
 
 sil @test_weak_rr_proto : $@convention(thin) (@sil_unowned P) -> () {
@@ -39,8 +39,8 @@
   %4 = return %3 : $()
 }
 // CHECK:    define{{( protected)?}} void @test_weak_rr_proto(%swift.refcounted*, i8**) {{.*}} {
-// CHECK:      call void @rt_swift_unownedRetain(%swift.refcounted* %0)
-// CHECK:      call void @rt_swift_unownedRelease(%swift.refcounted* %0)
+// CHECK:      call void @swift_rt_swift_unownedRetain(%swift.refcounted* %0)
+// CHECK:      call void @swift_rt_swift_unownedRelease(%swift.refcounted* %0)
 // CHECK-NEXT: ret void
 
 // Value witnesses for A:
@@ -51,7 +51,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: ret void
 
 //   initializeBufferWithCopyOfBuffer
@@ -62,7 +62,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -74,7 +74,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: ret void
 
 //   initializeBufferWithCopy
@@ -85,7 +85,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -99,7 +99,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -113,11 +113,11 @@
 // CHECK-NEXT: [[SRC_X:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[SRC_X_C:%.*]] = bitcast %swift.unowned* [[SRC_X]] to [[C]]*
 // CHECK-NEXT: [[NEW:%.*]] = load [[C]]*, [[C]]** [[SRC_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[NEW]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[NEW]])
 // CHECK-NEXT: [[DEST_X_C:%.*]] = bitcast %swift.unowned* [[DEST_X]] to [[C]]*
 // CHECK-NEXT: [[OLD:%.*]] = load [[C]]*, [[C]]** [[DEST_X_C]], align 8
 // CHECK-NEXT: store [[C]]* [[NEW]], [[C]]** [[DEST_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
 // CHECK-NEXT: ret [[OPAQUE]]* [[T0]]
 
@@ -132,6 +132,6 @@
 // CHECK-NEXT: [[DEST_X_C:%.*]] = bitcast %swift.unowned* [[DEST_X]] to [[C]]*
 // CHECK-NEXT: [[OLD:%.*]] = load [[C]]*, [[C]]** [[DEST_X_C]], align 8
 // CHECK-NEXT: store [[C]]* [[NEW]], [[C]]** [[DEST_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
 // CHECK-NEXT: ret [[OPAQUE]]* [[T0]]
diff --git a/test/IRGen/unowned_objc.sil b/test/IRGen/unowned_objc.sil
index f6d646b..03eb731 100644
--- a/test/IRGen/unowned_objc.sil
+++ b/test/IRGen/unowned_objc.sil
@@ -34,8 +34,8 @@
   %4 = return %3 : $()
 }
 // CHECK:    define{{( protected)?}} void @test_weak_rr_class([[C]]*) {{.*}} {
-// CHECK:      call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* %0)
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* %0)
+// CHECK:      call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* %0)
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* %0)
 // CHECK-NEXT: ret void
 
 // CHECK:    define{{( protected)?}} void @test_unknown_unowned_copies([[UNKNOWN]]*, i8**, [[UNKNOWN]]*, i8**)
@@ -154,7 +154,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: ret void
 
 //   initializeBufferWithCopyOfBuffer
@@ -165,7 +165,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -177,7 +177,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: ret void
 
 //   initializeBufferWithCopy
@@ -188,7 +188,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -202,7 +202,7 @@
 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[T1C:%.*]] = bitcast %swift.unowned* [[T1]] to [[C]]*
 // CHECK-NEXT: [[T2:%.*]] = load [[C]]*, [[C]]** [[T1C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[T2]])
 // CHECK-NEXT: [[T0C:%.*]] = bitcast %swift.unowned* [[T0]] to [[C]]*
 // CHECK-NEXT: store [[C]]* [[T2]], [[C]]** [[T0C]], align 8
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
@@ -216,11 +216,11 @@
 // CHECK-NEXT: [[SRC_X:%.*]] = getelementptr inbounds [[A]], [[A]]* [[SRC]], i32 0, i32 0
 // CHECK-NEXT: [[SRC_X_C:%.*]] = bitcast %swift.unowned* [[SRC_X]] to [[C]]*
 // CHECK-NEXT: [[NEW:%.*]] = load [[C]]*, [[C]]** [[SRC_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[NEW]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRetain to void ([[C]]*)*)([[C]]* [[NEW]])
 // CHECK-NEXT: [[DEST_X_C:%.*]] = bitcast %swift.unowned* [[DEST_X]] to [[C]]*
 // CHECK-NEXT: [[OLD:%.*]] = load [[C]]*, [[C]]** [[DEST_X_C]], align 8
 // CHECK-NEXT: store [[C]]* [[NEW]], [[C]]** [[DEST_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
 // CHECK-NEXT: ret [[OPAQUE]]* [[T0]]
 
@@ -235,6 +235,6 @@
 // CHECK-NEXT: [[DEST_X_C:%.*]] = bitcast %swift.unowned* [[DEST_X]] to [[C]]*
 // CHECK-NEXT: [[OLD:%.*]] = load [[C]]*, [[C]]** [[DEST_X_C]], align 8
 // CHECK-NEXT: store [[C]]* [[NEW]], [[C]]** [[DEST_X_C]], align 8
-// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
+// CHECK-NEXT: call void bitcast (void ([[REF]]*)* @swift_rt_swift_unownedRelease to void ([[C]]*)*)([[C]]* [[OLD]])
 // CHECK-NEXT: [[T0:%.*]] = bitcast [[A]]* [[DEST]] to [[OPAQUE]]*
 // CHECK-NEXT: ret [[OPAQUE]]* [[T0]]
diff --git a/test/IRGen/value_buffers.sil b/test/IRGen/value_buffers.sil
index 1bb90a1..ffbba86 100644
--- a/test/IRGen/value_buffers.sil
+++ b/test/IRGen/value_buffers.sil
@@ -62,7 +62,7 @@
 // CHECK: [[SLOT1:%.*]] = load i64
 // CHECK: [[SLOT2:%.*]] = load i64
 // CHECK: [[SLOT3:%.*]] = load i64
-// CHECK-NEXT: [[T0:%.*]] = call noalias i8* @rt_swift_slowAlloc(i64 32, i64 7)
+// CHECK-NEXT: [[T0:%.*]] = call noalias i8* @swift_rt_swift_slowAlloc(i64 32, i64 7)
 // CHECK-NEXT: [[T1:%.*]] = bitcast [24 x i8]* %0 to i8**
 // CHECK-NEXT: store i8* [[T0]], i8** [[T1]], align 8
 // CHECK-NEXT: [[ADDR:%.*]] = bitcast i8* [[T0]] to %V13value_buffers9BigStruct*
@@ -119,5 +119,5 @@
 // CHECK-NEXT: entry:
 // CHECK-NEXT: [[T0:%.*]] = bitcast [24 x i8]* %0 to i8**
 // CHECK-NEXT: [[ADDR:%.*]] = load i8*, i8** [[T0]], align 8
-// CHECK-NEXT: call void @rt_swift_slowDealloc(i8* [[ADDR]], i64 32, i64 7)
+// CHECK-NEXT: call void @swift_rt_swift_slowDealloc(i8* [[ADDR]], i64 32, i64 7)
 // CHECK-NEXT: ret void
diff --git a/test/IRGen/weak.sil b/test/IRGen/weak.sil
index 08e0e9b..8934c73 100644
--- a/test/IRGen/weak.sil
+++ b/test/IRGen/weak.sil
@@ -48,7 +48,7 @@
 // CHECK-NEXT: %4 = inttoptr
 // CHECK-NEXT: call void bitcast (void ([[WEAK]]*, [[REF]]*)* @swift_weakAssign to void ([[WEAK]]*, [[C]]*)*)([[WEAK]]* [[X]], [[C]]* %4)
 // CHECK-NEXT: %5 = inttoptr i64 %3 to %swift.refcounted*
-// CHECK-NEXT: call void @rt_swift_release([[REF]]* %5)
+// CHECK-NEXT: call void @swift_rt_swift_release([[REF]]* %5)
 // CHECK-NEXT: ret void
 
 struct B {
diff --git a/test/Inputs/clang-importer-sdk/usr/include/Foundation.h b/test/Inputs/clang-importer-sdk/usr/include/Foundation.h
index 5612f4c..25a068d 100644
--- a/test/Inputs/clang-importer-sdk/usr/include/Foundation.h
+++ b/test/Inputs/clang-importer-sdk/usr/include/Foundation.h
@@ -740,7 +740,7 @@
 @end
 
 @interface NSProcessInfo : NSObject
-+ (nonnull NSProcessInfo *)processInfo;
+@property (class, readonly, strong, nonnull) NSProcessInfo *processInfo;
 @end
 
 @interface NSString(FoundationExts)
diff --git a/test/Interpreter/dynamic_cast_dict_conditional_type_metadata.swift b/test/Interpreter/dynamic_cast_dict_conditional_type_metadata.swift
new file mode 100644
index 0000000..7eb1531
--- /dev/null
+++ b/test/Interpreter/dynamic_cast_dict_conditional_type_metadata.swift
@@ -0,0 +1,25 @@
+// RUN: %target-run-simple-swift | %FileCheck %s
+// REQUIRES: executable_test
+// REQUIRES: objc_interop
+
+// rdar://problem/28022201 exposed an ABI mismatch bug between the C++ code
+// in the runtime and standard library hook functions written in Swift, which
+// led to dynamic cast operations on sets and dictionaries generating corrupt
+// type metadata. Exercising this bug requires that the first instantiation of
+// a specific dictionary type in the process be through a dynamic cast. We
+// then bridge to ObjC, so that the resulting NSDictionary subclass is forced
+// to recover the underlying Dictionary's generic environment from the
+// corrupted class metadata instead of getting it passed in from the compiler.
+
+import Foundation
+
+let a: [String: Int] = ["foo": 1]
+let b: Any = a
+let c = b as? [String: Any]
+
+let d = (c as AnyObject) as! NSDictionary
+
+_ = d.object(forKey: "foo" as NSString)
+
+// CHECK: ok
+print("ok")
diff --git a/test/Interpreter/dynamic_cast_dict_unconditional_type_metadata.swift b/test/Interpreter/dynamic_cast_dict_unconditional_type_metadata.swift
new file mode 100644
index 0000000..da82131
--- /dev/null
+++ b/test/Interpreter/dynamic_cast_dict_unconditional_type_metadata.swift
@@ -0,0 +1,25 @@
+// RUN: %target-run-simple-swift | %FileCheck %s
+// REQUIRES: executable_test
+// REQUIRES: objc_interop
+
+// rdar://problem/28022201 exposed an ABI mismatch bug between the C++ code
+// in the runtime and standard library hook functions written in Swift, which
+// led to dynamic cast operations on sets and dictionaries generating corrupt
+// type metadata. Exercising this bug requires that the first instantiation of
+// a specific dictionary type in the process be through a dynamic cast. We
+// then bridge to ObjC, so that the resulting NSDictionary subclass is forced
+// to recover the underlying Dictionary's generic environment from the
+// corrupted class metadata instead of getting it passed in from the compiler.
+
+import Foundation
+
+let a: [String: Int] = ["foo": 1]
+let b: Any = a
+let c = b as! [String: Any]
+
+let d = (c as AnyObject) as! NSDictionary
+
+_ = d.object(forKey: "foo" as NSString)
+
+// CHECK: ok
+print("ok")
diff --git a/test/Interpreter/dynamic_cast_set_conditional_type_metadata.swift b/test/Interpreter/dynamic_cast_set_conditional_type_metadata.swift
new file mode 100644
index 0000000..20bc51c
--- /dev/null
+++ b/test/Interpreter/dynamic_cast_set_conditional_type_metadata.swift
@@ -0,0 +1,25 @@
+// RUN: %target-run-simple-swift | %FileCheck %s
+// REQUIRES: executable_test
+// REQUIRES: objc_interop
+
+// rdar://problem/28022201 exposed an ABI mismatch bug between the C++ code
+// in the runtime and standard library hook functions written in Swift, which
+// led to dynamic cast operations on sets and dictionaries generating corrupt
+// type metadata. Exercising this bug requires that the first instantiation of
+// a specific dictionary type in the process be through a dynamic cast. We
+// then bridge to ObjC, so that the resulting NSDictionary subclass is forced
+// to recover the underlying Dictionary's generic environment from the
+// corrupted class metadata instead of getting it passed in from the compiler.
+
+import Foundation
+
+let a: Set<String> = ["foo"]
+let b: Any = a
+let c = b as? Set<AnyHashable>
+
+let d = (c as AnyObject) as! NSSet
+
+_ = d.member("foo")
+
+// CHECK: ok
+print("ok")
diff --git a/test/Interpreter/dynamic_cast_set_unconditional_type_metadata.swift b/test/Interpreter/dynamic_cast_set_unconditional_type_metadata.swift
new file mode 100644
index 0000000..b98515d
--- /dev/null
+++ b/test/Interpreter/dynamic_cast_set_unconditional_type_metadata.swift
@@ -0,0 +1,25 @@
+// RUN: %target-run-simple-swift | %FileCheck %s
+// REQUIRES: executable_test
+// REQUIRES: objc_interop
+
+// rdar://problem/28022201 exposed an ABI mismatch bug between the C++ code
+// in the runtime and standard library hook functions written in Swift, which
+// led to dynamic cast operations on sets and dictionaries generating corrupt
+// type metadata. Exercising this bug requires that the first instantiation of
+// a specific dictionary type in the process be through a dynamic cast. We
+// then bridge to ObjC, so that the resulting NSDictionary subclass is forced
+// to recover the underlying Dictionary's generic environment from the
+// corrupted class metadata instead of getting it passed in from the compiler.
+
+import Foundation
+
+let a: Set<String> = ["foo"]
+let b: Any = a
+let c = b as! Set<AnyHashable>
+
+let d = (c as AnyObject) as! NSSet
+
+_ = d.member("foo")
+
+// CHECK: ok
+print("ok")
diff --git a/test/Interpreter/property_behavior.swift b/test/Interpreter/property_behavior.swift
deleted file mode 100644
index 6b498d7..0000000
--- a/test/Interpreter/property_behavior.swift
+++ /dev/null
@@ -1,124 +0,0 @@
-// RUN: rm -rf %t
-// RUN: mkdir -p %t
-// RUN: %target-build-swift -Xfrontend -enable-experimental-property-behaviors %s -o %t/a.out
-// RUN: %target-run %t/a.out
-// REQUIRES: executable_test
-
-import StdlibUnittest
-
-protocol delayedImmutable {
-  associatedtype Value
-  var storage: Value? { get set }
-}
-extension delayedImmutable {
-  var value: Value {
-    // The property can only be read after it's been initialized.
-    get {
-      guard let theValue = storage else {
-        fatalError("delayedImmutable property read before initialization")
-      }
-      return theValue
-    }
-    
-    // The property can only be written once to initialize it.
-    set {
-      guard storage == nil else {
-        fatalError("delayedImmutable property rewritten after initialization")
-      }
-      storage = newValue
-    }
-  }
-
-  static func initStorage() -> Value? {
-    return nil
-  }
-}
-
-protocol lazy {
-  associatedtype Value
-  var storage: Value? { get set }
-  func parameter() -> Value
-}
-extension lazy {
-  var value: Value {
-    mutating get {
-      if let existing = storage {
-        return existing
-      }
-      let value = parameter()
-      storage = value
-      return value
-    }
-    
-    set {
-      storage = newValue
-    }
-  }
-
-  static func initStorage() -> Value? {
-    return nil
-  }
-}
-
-var lazyEvaluated = false
-func evaluateLazy() -> Int {
-  lazyEvaluated = true
-  return 1738
-}
-
-class Foo {
-  var x: Int __behavior delayedImmutable
-  var y: Int __behavior lazy { evaluateLazy() }
-}
-
-var DelayedImmutable = TestSuite("DelayedImmutable")
-
-DelayedImmutable.test("correct usage") {
-  let foo = Foo()
-  foo.x = 679
-  expectEqual(foo.x, 679)
-}
-
-DelayedImmutable.test("read before initialization") {
-  let foo = Foo()
-  expectCrashLater()
-  _ = foo.x
-}
-
-DelayedImmutable.test("write after initialization") {
-  let foo = Foo()
-  foo.x = 679
-  expectCrashLater()
-  foo.x = 680
-}
-
-var Lazy = TestSuite("Lazy")
-
-Lazy.test("usage") {
-  let foo = Foo()
-
-  expectFalse(lazyEvaluated)
-  expectEqual(foo.y, 1738)
-  expectTrue(lazyEvaluated)
-
-  lazyEvaluated = false
-  expectEqual(foo.y, 1738)
-  expectFalse(lazyEvaluated)
-
-  foo.y = 36
-  expectEqual(foo.y, 36)
-  expectFalse(lazyEvaluated)
-
-  let foo2 = Foo()
-  expectFalse(lazyEvaluated)
-  foo2.y = 36
-  expectEqual(foo2.y, 36)
-  expectFalse(lazyEvaluated)
-
-  let foo3 = Foo()
-  expectFalse(lazyEvaluated)
-  expectEqual(foo3.y, 1738)
-  expectTrue(lazyEvaluated)
-}
-
-runAllTests()
diff --git a/test/LLVMPasses/contract.ll b/test/LLVMPasses/contract.ll
index b3220ba..b6d2364 100644
--- a/test/LLVMPasses/contract.ll
+++ b/test/LLVMPasses/contract.ll
@@ -7,25 +7,34 @@
 %swift.heapmetadata = type { i64 (%swift.refcounted*)*, i64 (%swift.refcounted*)* }
 %swift.bridge = type opaque
 
-declare %swift.refcounted* @rt_swift_allocObject(%swift.heapmetadata* , i64, i64) nounwind
+declare %swift.refcounted* @swift_rt_swift_allocObject(%swift.heapmetadata* , i64, i64) nounwind
 declare %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge*)
 declare void @swift_bridgeObjectRelease(%swift.bridge* )
-declare void @rt_swift_release(%swift.refcounted* nocapture)
-declare void @rt_swift_retain(%swift.refcounted* ) nounwind
+declare void @swift_rt_swift_release(%swift.refcounted* nocapture)
+declare void @swift_rt_swift_retain(%swift.refcounted* ) nounwind
 declare void @swift_unknownRelease(%swift.refcounted* nocapture)
 declare void @swift_unknownRetain(%swift.refcounted* ) nounwind
-declare void @swift_fixLifetime(%swift.refcounted*)
+declare void @__swift_fixLifetime(%swift.refcounted*)
 declare void @noread_user(%swift.refcounted*) readnone
 declare void @user(%swift.refcounted*)
 declare void @noread_user_bridged(%swift.bridge*) readnone
 declare void @user_bridged(%swift.bridge*)
+declare void @__swift_endBorrow(i8*, i8*)
 
 ; CHECK-LABEL: define{{( protected)?}} void @fixlifetime_removal(i8*) {
-; CHECK-NOT: call void swift_fixLifetime
+; CHECK-NOT: call void @__swift_fixLifetime
 define void @fixlifetime_removal(i8*) {
 entry:
   %1 = bitcast i8* %0 to %swift.refcounted*
-  call void @swift_fixLifetime(%swift.refcounted* %1)
+  call void @__swift_fixLifetime(%swift.refcounted* %1)
+  ret void
+}
+
+; CHECK-LABEL: define{{( protected)?}} void @endBorrow_removal(i8*, i8*) {
+; CHECK-NOT: call void @__swift_endBorrow
+define void @endBorrow_removal(i8*, i8*) {
+entry:
+  call void @__swift_endBorrow(i8* %0, i8* %1)
   ret void
 }
 
@@ -33,37 +42,37 @@
 ; CHECK: entry:
 ; CHECK-NEXT: br i1 undef
 ; CHECK: bb1:
-; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb2:
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractRetainN(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
@@ -71,31 +80,31 @@
 ; CHECK: entry:
 ; CHECK-NEXT: br i1 undef
 ; CHECK: bb1:
-; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb2:
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractRetainNWithRCIdentity(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
-  tail call void @rt_swift_retain(%swift.refcounted* %0)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %0)
   br label %bb3
 
 bb2:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
@@ -104,36 +113,36 @@
 ; CHECK-NEXT: br i1 undef
 ; CHECK: bb1:
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_release_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb2:
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractReleaseN(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
@@ -142,30 +151,30 @@
 ; CHECK-NEXT: br i1 undef
 ; CHECK: bb1:
 ; CHECK-NEXT: %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
-; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_release_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb2:
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractReleaseNWithRCIdentity(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
-  tail call void @rt_swift_release(%swift.refcounted* %0)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %0)
   br label %bb3
 
 bb2:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
@@ -174,112 +183,112 @@
 ; read the reference count of the object.
 
 ; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainNWithUnknown(%swift.refcounted* %A) {
-; CHECK-NOT: call %swift.refcounted* @rt_swift_retain_n
+; CHECK-NOT: call %swift.refcounted* @swift_rt_swift_retain_n
 define %swift.refcounted* @swift_contractRetainNWithUnknown(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
 ; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseNWithUnknown(%swift.refcounted* %A) {
-; CHECK-NOT: call void @rt_swift_release_n
+; CHECK-NOT: call void @swift_rt_swift_release_n
 define %swift.refcounted* @swift_contractReleaseNWithUnknown(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
 ; But do make sure that we can form retainN, releaseN in between such uses
 ; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
 ; CHECK: bb1:
-; CHECK: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 3)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain_n(%swift.refcounted* %A, i32 3)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 
 ; CHECK: bb2:
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
 ; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
 ; CHECK: bb1:
-; CHECK-NEXT: @rt_swift_release(
+; CHECK-NEXT: @swift_rt_swift_release(
 ; CHECK-NEXT: @user
 ; CHECK-NEXT: @noread_user
-; CHECK-NEXT: @rt_swift_release_n
+; CHECK-NEXT: @swift_rt_swift_release_n
 ; CHECK-NEXT: @user
 ; CHECK-NEXT: br label %bb3
 define %swift.refcounted* @swift_contractReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
@@ -287,78 +296,78 @@
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb2:
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
 ; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
 ; CHECK: bb1:
-; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_release_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_retain_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
-; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
+; CHECK-NEXT: tail call void @swift_rt_swift_release_n(%swift.refcounted* %A, i32 2)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 ; CHECK: bb2:
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
-; CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: call void @user(%swift.refcounted* %A)
 ; CHECK-NEXT: br label %bb3
 
 ; CHECK: bb3:
-; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
+; CHECK-NEXT: tail call void @swift_rt_swift_release(%swift.refcounted* %A)
 ; CHECK-NEXT: ret %swift.refcounted* %A
 define %swift.refcounted* @swift_contractRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
 entry:
   br i1 undef, label %bb1, label %bb2
 
 bb1:
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
-  tail call void @rt_swift_retain(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_retain(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @noread_user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   
   br label %bb3
 
 bb2:
   call void @user(%swift.refcounted* %A)
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   call void @user(%swift.refcounted* %A)
   br label %bb3
 
 bb3:
-  tail call void @rt_swift_release(%swift.refcounted* %A)
+  tail call void @swift_rt_swift_release(%swift.refcounted* %A)
   ret %swift.refcounted* %A
 }
 
diff --git a/test/Parse/ConditionalCompilation/decl_parse_errors.swift b/test/Parse/ConditionalCompilation/decl_parse_errors.swift
index 241353d..c05af95 100644
--- a/test/Parse/ConditionalCompilation/decl_parse_errors.swift
+++ b/test/Parse/ConditionalCompilation/decl_parse_errors.swift
@@ -27,7 +27,7 @@
 var val3: Int = 0;
 #line
 
-class C { // expected-note 3 {{in declaration of 'C'}}
+class C { // expected-note 2 {{in declaration of 'C'}} expected-note {{to match this opening '{'}}
 
 #if os(iOS)
 	func foo() {}
@@ -35,6 +35,6 @@
 #else
 	func bar() {}
 	func baz() {}
-} // expected-error{{expected #else or #endif at end of conditional compilation block}} expected-error {{expected declaration}}
+} // expected-error{{expected declaration}} expected-error{{expected #else or #endif at end of conditional compilation block}}
 #endif
-// expected-error@+1{{expected declaration}}
+// expected-error@+1{{expected '}' in class}}
diff --git a/test/Parse/ConditionalCompilation/language_version_explicit.swift b/test/Parse/ConditionalCompilation/language_version_explicit.swift
index d831300..16c2428 100644
--- a/test/Parse/ConditionalCompilation/language_version_explicit.swift
+++ b/test/Parse/ConditionalCompilation/language_version_explicit.swift
@@ -1,6 +1,6 @@
-// RUN: %target-parse-verify-swift -swift-version 3
+// RUN: %target-parse-verify-swift -swift-version 4
 
-#if swift(>=3)
+#if swift(>=4)
   let w = 1
 #else
   // This shouldn't emit any diagnostics.
diff --git a/test/Parse/invalid.swift b/test/Parse/invalid.swift
index 54e8bb1..0f96b4a 100644
--- a/test/Parse/invalid.swift
+++ b/test/Parse/invalid.swift
@@ -15,20 +15,18 @@
 func test3(f : (inout _ x : Int) -> Void) {} // expected-error {{'inout' before a parameter name is not allowed, place it before the parameter type instead}}
 
 func test3() {
-  undeclared_func( // expected-error {{use of unresolved identifier 'undeclared_func'}} expected-note {{to match this opening '('}} expected-error {{expected ',' separator}} {{19-19=,}}
-} // expected-error {{expected expression in list of expressions}} expected-error {{expected ')' in expression list}}
+  undeclared_func( // expected-error {{use of unresolved identifier 'undeclared_func'}}
+} // expected-error {{expected expression in list of expressions}}
 
 func runAction() {} // expected-note {{did you mean 'runAction'?}}
 
 // rdar://16601779
 func foo() {
-  runAction(SKAction.sequence() // expected-error {{use of unresolved identifier 'SKAction'}}  expected-note {{to match this opening '('}} expected-error {{expected ',' separator}} {{32-32=,}}
+  runAction(SKAction.sequence() // expected-error {{use of unresolved identifier 'SKAction'}} expected-error {{expected ',' separator}} {{32-32=,}}
     
-    // expected-error @+2 {{expected ',' separator}} {{12-12=,}}
-    // expected-error @+1 {{expected ',' separator}} {{12-12=,}}
     skview!
     // expected-error @-1 {{use of unresolved identifier 'skview'}}
-} // expected-error {{expected expression in list of expressions}} expected-error {{expected ')' in expression list}}
+}
 
 super.init() // expected-error {{'super' cannot be used outside of class members}}
 
@@ -40,15 +38,12 @@
 // rdar://18926814
 func test4() {
   let abc = 123
-  _ = " >> \( abc } ) << "   // expected-note {{to match this opening '('}}  expected-error {{expected ')' in expression list}}  expected-error {{expected ',' separator}} {{18-18=,}} expected-error {{expected ',' separator}} {{18-18=,}}  expected-error {{expected expression in list of expressions}}  expected-error {{extra tokens after interpolated string expression}}
+  _ = " >> \( abc } ) << " // expected-error {{expected ',' separator}} {{18-18=,}}  expected-error {{expected expression in list of expressions}}  expected-error {{extra tokens after interpolated string expression}}
 
 }
 
 // rdar://problem/18507467
 func d(_ b: String -> <T>() -> T) {} // expected-error {{expected type for function result}}
-// expected-error @-1 {{expected ',' separator}} {{22-22=,}}
-// expected-error @-2 {{expected parameter name followed by ':'}}
-// expected-error @-3 {{expected ',' separator}}
 
 
 // <rdar://problem/22143680> QoI: terrible diagnostic when trying to form a generic protocol
diff --git a/test/Parse/matching_patterns.swift b/test/Parse/matching_patterns.swift
index 7559c46..e89f106 100644
--- a/test/Parse/matching_patterns.swift
+++ b/test/Parse/matching_patterns.swift
@@ -308,7 +308,7 @@
 
 // <rdar://problem/20365753> Bogus diagnostic "refutable pattern match can fail"
 let (responseObject: Int?) = op1
-// expected-error @-1 2 {{expected ',' separator}} {{25-25=,}} {{25-25=,}}
+// expected-error @-1 {{expected ',' separator}} {{25-25=,}}
 // expected-error @-2 {{expected pattern}}
 
 
diff --git a/test/Parse/object_literals.swift b/test/Parse/object_literals.swift
index 2c510bb..14a5139 100644
--- a/test/Parse/object_literals.swift
+++ b/test/Parse/object_literals.swift
@@ -3,4 +3,4 @@
 let _ = [##] // expected-error{{expected identifier after '#' in object literal expression}} expected-error{{object literal syntax no longer uses '[# ... #]'}} {{9-10=}} {{11-13=}}
 let _ = [#what#] // expected-error{{object literal syntax no longer uses '[# ... #]'}} {{9-10=}} {{15-17=}}
 let _ = [#what()#] // expected-error{{object literal syntax no longer uses '[# ... #]'}} {{9-10=}} {{17-19=}}
-let _ = [#colorLiteral( // expected-error{{expected ',' separator}} expected-error{{expected expression in list of expressions}}
\ No newline at end of file
+let _ = [#colorLiteral( // expected-error@+1 {{expected expression in list of expressions}}
diff --git a/test/Parse/operator_decl.swift b/test/Parse/operator_decl.swift
index 1269e0c..694941d 100644
--- a/test/Parse/operator_decl.swift
+++ b/test/Parse/operator_decl.swift
@@ -39,6 +39,11 @@
 ;
 prefix operator %%+
 
+prefix operator ??
+postfix operator ?? // expected-error {{expected operator name in operator declaration}}
+prefix operator !!
+postfix operator !! // expected-error {{expected operator name in operator declaration}}
+
 infix operator +++=
 infix operator *** : A
 infix operator --- : ;
diff --git a/test/Parse/recovery.swift b/test/Parse/recovery.swift
index 5d07acd..1bfd42a 100644
--- a/test/Parse/recovery.swift
+++ b/test/Parse/recovery.swift
@@ -481,19 +481,15 @@
 
 // <rdar://problem/18634543> Parser hangs at swift::Parser::parseType
 public enum TestA {
-  // expected-error @+2 {{expected ',' separator}}
   // expected-error @+1{{expected '{' in body of function declaration}}
   public static func convertFromExtenndition( // expected-error {{expected parameter name followed by ':'}}
-    // expected-error@+2 {{expected ',' separator}}
     // expected-error@+1{{expected parameter name followed by ':'}}
     s._core.count != 0, "Can't form a Character from an empty String")
 }
 
 public enum TestB {
-  // expected-error@+2 {{expected ',' separator}}
   // expected-error@+1{{expected '{' in body of function declaration}}
   public static func convertFromExtenndition( // expected-error {{expected parameter name followed by ':'}}
-    // expected-error@+2 {{expected ',' separator}}
     // expected-error@+1 {{expected parameter name followed by ':'}}
     s._core.count ?= 0, "Can't form a Character from an empty String")
 }
@@ -527,10 +523,9 @@
 // rdar://19605164
 // expected-error@+2{{use of undeclared type 'S'}}
 struct Foo19605164 {
-func a(s: S[{{g) -> Int {}  // expected-note {{to match this opening '('}}
-// expected-error@+3 {{expected parameter name followed by ':'}}
-// expected-error@+2 2 {{expected ',' separator}}
-// expected-error@+1 {{expected ')' in parameter}}
+func a(s: S[{{g) -> Int {}
+// expected-error@+2 {{expected parameter name followed by ':'}}
+// expected-error@+1 {{expected ',' separator}}
 }}}
 #endif
   
@@ -659,7 +654,7 @@
   let a = s.startIndex..<s.startIndex
   _ = a
   // The specific errors produced don't actually matter, but we need to reject this.
-  return "\(s[a)"  // expected-error 3 {{}}
+  return "\(s[a)"  // expected-error {{expected ']' in expression list}} expected-note {{to match this opening '['}}
 }
 
 
diff --git a/test/Parse/subscripting.swift b/test/Parse/subscripting.swift
index df9d353..066eb14 100644
--- a/test/Parse/subscripting.swift
+++ b/test/Parse/subscripting.swift
@@ -81,9 +81,9 @@
 
 // Parsing errors
 // FIXME: Recovery here is horrible
-struct A0 { // expected-note{{in declaration of 'A0'}}
+struct A0 {
   subscript // expected-error{{expected '(' for subscript parameters}}
-    i : Int // expected-error{{expected declaration}}
+    i : Int
      -> Int {
     get {
       return stored
@@ -94,9 +94,9 @@
   }
 }
 
-struct A1 { // expected-note{{in declaration of 'A1'}}
+struct A1 {
   subscript (i : Int) // expected-error{{expected '->' for subscript element type}}
-     Int {  // expected-error{{expected declaration}}
+     Int {
     get {
       return stored
     }
@@ -106,9 +106,9 @@
   }
 }
 
-struct A2 { // expected-note{{in declaration of 'A2'}}
+struct A2 {
   subscript (i : Int) -> // expected-error{{expected subscripting element type}}
-     {  // expected-error{{expected declaration}}
+     {
     get {
       return stored
     }
@@ -118,17 +118,17 @@
   }
 }
 
-struct A3 { // expected-note{{in declaration of 'A3'}}
+struct A3 {
   subscript(i : Int) // expected-error {{expected '->' for subscript element type}}
-  { // expected-error {{expected declaration}}
+  {
     get {
       return i
     }
   }
 }
 
-struct A4 { // expected-note{{in declaration of 'A4'}}
-  subscript(i : Int) { // expected-error {{expected '->' for subscript element type}} expected-error {{consecutive declarations on a line must be separated by ';'}} {{21-21=;}} expected-error {{expected declaration}}
+struct A4 {
+  subscript(i : Int) { // expected-error {{expected '->' for subscript element type}}
     get {
       return i
     }
@@ -139,8 +139,8 @@
   subscript(i : Int) -> Int // expected-error {{expected '{' in subscript to specify getter and setter implementation}}
 }
 
-struct A6 { // expected-note{{in declaration of 'A6'}}
-  subscript(i: Int)(j: Int) -> Int { // expected-error {{expected '->' for subscript element type}} expected-error {{consecutive declarations on a line must be separated by ';'}} {{20-20=;}} expected-error {{expected declaration}}
+struct A6 {
+  subscript(i: Int)(j: Int) -> Int { // expected-error {{expected '->' for subscript element type}}
     get {
       return i + j
     }
@@ -163,9 +163,9 @@
   }
 }
 
-struct A8 { // expected-note{{in declaration of 'A8'}}
+struct A8 {
   subscript(i : Int) -> Int // expected-error{{expected '{' in subscript to specify getter and setter implementation}}
-    get { // expected-error{{expected declaration}}
+    get {
       return stored
     }
     set {
diff --git a/test/Prototypes/property_behaviors/delayed.swift b/test/Prototypes/property_behaviors/delayed.swift
new file mode 100644
index 0000000..62d2834
--- /dev/null
+++ b/test/Prototypes/property_behaviors/delayed.swift
@@ -0,0 +1,65 @@
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: %target-build-swift -Xfrontend -enable-experimental-property-behaviors %s -o %t/a.out
+// RUN: %target-run %t/a.out
+// REQUIRES: executable_test
+
+import StdlibUnittest
+
+/// An immutable property with "delayed" initialization semantics. The property
+/// may be set at most once, after which it is not allowed to be mutated.
+/// The property must also be set before it is ever read.
+protocol delayedImmutable {
+  associatedtype Value
+  var storage: Value? { get set }
+}
+extension delayedImmutable {
+  var value: Value {
+    // The property can only be read after it's been initialized.
+    get {
+      guard let theValue = storage else {
+        fatalError("delayedImmutable property read before initialization")
+      }
+      return theValue
+    }
+    
+    // The property can only be written once to initialize it.
+    set {
+      guard storage == nil else {
+        fatalError("delayedImmutable property rewritten after initialization")
+      }
+      storage = newValue
+    }
+  }
+
+  static func initStorage() -> Value? {
+    return nil
+  }
+}
+
+class Foo {
+  var x: Int __behavior delayedImmutable
+}
+
+var DelayedImmutable = TestSuite("DelayedImmutable")
+
+DelayedImmutable.test("correct usage") {
+  let foo = Foo()
+  foo.x = 679
+  expectEqual(foo.x, 679)
+}
+
+DelayedImmutable.test("read before initialization") {
+  let foo = Foo()
+  expectCrashLater()
+  _ = foo.x
+}
+
+DelayedImmutable.test("write after initialization") {
+  let foo = Foo()
+  foo.x = 679
+  expectCrashLater()
+  foo.x = 680
+}
+
+runAllTests()
diff --git a/test/Prototypes/property_behaviors/lazy.swift b/test/Prototypes/property_behaviors/lazy.swift
new file mode 100644
index 0000000..aa2a17b
--- /dev/null
+++ b/test/Prototypes/property_behaviors/lazy.swift
@@ -0,0 +1,78 @@
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: %target-build-swift -Xfrontend -enable-experimental-property-behaviors %s -o %t/a.out
+// RUN: %target-run %t/a.out
+// REQUIRES: executable_test
+
+import StdlibUnittest
+
+/// A lazily-initialized, mutable, unsynchronized property. The property's
+/// parameter closure is evaluated the first time the property is read, if
+/// it has not been written to beforehand. No synchronization is provided
+/// for the lazy initialization.
+protocol lazy {
+  associatedtype Value
+  var storage: Value? { get set }
+  func parameter() -> Value
+}
+extension lazy {
+  var value: Value {
+    mutating get {
+      if let existing = storage {
+        return existing
+      }
+      let value = parameter()
+      storage = value
+      return value
+    }
+    
+    set {
+      storage = newValue
+    }
+  }
+
+  static func initStorage() -> Value? {
+    return nil
+  }
+}
+
+var lazyEvaluated = false
+func evaluateLazy() -> Int {
+  lazyEvaluated = true
+  return 1738
+}
+
+class Foo {
+  var y: Int __behavior lazy { evaluateLazy() }
+}
+
+var Lazy = TestSuite("Lazy")
+
+Lazy.test("usage") {
+  let foo = Foo()
+
+  expectFalse(lazyEvaluated)
+  expectEqual(foo.y, 1738)
+  expectTrue(lazyEvaluated)
+
+  lazyEvaluated = false
+  expectEqual(foo.y, 1738)
+  expectFalse(lazyEvaluated)
+
+  foo.y = 36
+  expectEqual(foo.y, 36)
+  expectFalse(lazyEvaluated)
+
+  let foo2 = Foo()
+  expectFalse(lazyEvaluated)
+  foo2.y = 36
+  expectEqual(foo2.y, 36)
+  expectFalse(lazyEvaluated)
+
+  let foo3 = Foo()
+  expectFalse(lazyEvaluated)
+  expectEqual(foo3.y, 1738)
+  expectTrue(lazyEvaluated)
+}
+
+runAllTests()
diff --git a/test/SIL/Parser/ownership_qualified_memopts.sil b/test/SIL/Parser/ownership_qualified_memopts.sil
new file mode 100644
index 0000000..8993163
--- /dev/null
+++ b/test/SIL/Parser/ownership_qualified_memopts.sil
@@ -0,0 +1,40 @@
+// We run this through sil-opt twice to test parsing -> printing -> parsing -> printing
+// RUN: %target-sil-opt %s | %target-sil-opt | %FileCheck %s
+
+import Builtin
+
+// CHECK-LABEL: sil @non_trivial : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.NativeObject, [[ARG2:%[0-9]+]] : $Builtin.NativeObject):
+// CHECK: load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: load [take] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: load [copy] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [init] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [assign] [[ARG1]] : $*Builtin.NativeObject
+sil @non_trivial : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject):
+  load %0 : $*Builtin.NativeObject
+  load [take] %0 : $*Builtin.NativeObject
+  load [copy] %0 : $*Builtin.NativeObject
+  store %1 to %0 : $*Builtin.NativeObject
+  store %1 to [init] %0 : $*Builtin.NativeObject
+  store %1 to [assign] %0 : $*Builtin.NativeObject
+  %2 = tuple()
+  return %2 : $()
+}
+
+// CHECK-LABEL: sil @trivial : $@convention(thin) (@in Builtin.Int32, Builtin.Int32) -> () {
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.Int32, [[ARG2:%[0-9]+]] : $Builtin.Int32):
+// CHECK: load [[ARG1]] : $*Builtin.Int32
+// CHECK: load [trivial] [[ARG1]] : $*Builtin.Int32
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.Int32
+// CHECK: store [[ARG2]] to [trivial] [[ARG1]] : $*Builtin.Int32
+sil @trivial : $@convention(thin) (@in Builtin.Int32, Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.Int32, %1 : $Builtin.Int32):
+  load %0 : $*Builtin.Int32
+  load [trivial] %0 : $*Builtin.Int32
+  store %1 to %0 : $*Builtin.Int32
+  store %1 to [trivial] %0 : $*Builtin.Int32
+  %2 = tuple()
+  return %2 : $()
+}
\ No newline at end of file
diff --git a/test/SIL/Serialization/ownership_qualified_memopts.sil b/test/SIL/Serialization/ownership_qualified_memopts.sil
new file mode 100644
index 0000000..e1e123a
--- /dev/null
+++ b/test/SIL/Serialization/ownership_qualified_memopts.sil
@@ -0,0 +1,47 @@
+// First parse this and then emit a *.sib. Then read in the *.sib, then recreate
+// RUN: rm -rfv %t
+// RUN: mkdir %t
+// RUN: %target-sil-opt %s -emit-sib -o %t/tmp.sib -module-name ownership_qualified_memopts
+// RUN: %target-sil-opt %t/tmp.sib -o %t/tmp.2.sib -module-name ownership_qualified_memopts
+// RUN: %target-sil-opt %t/tmp.2.sib -module-name ownership_qualified_memopts | %FileCheck %s
+
+sil_stage canonical
+
+import Builtin
+
+
+// CHECK-LABEL: sil @trivial : $@convention(thin) (@in Builtin.Int32, Builtin.Int32) -> () {
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.Int32, [[ARG2:%[0-9]+]] : $Builtin.Int32):
+// CHECK: load [[ARG1]] : $*Builtin.Int32
+// CHECK: load [trivial] [[ARG1]] : $*Builtin.Int32
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.Int32
+// CHECK: store [[ARG2]] to [trivial] [[ARG1]] : $*Builtin.Int32
+sil @trivial : $@convention(thin) (@in Builtin.Int32, Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.Int32, %1 : $Builtin.Int32):
+  load %0 : $*Builtin.Int32
+  load [trivial] %0 : $*Builtin.Int32
+  store %1 to %0 : $*Builtin.Int32
+  store %1 to [trivial] %0 : $*Builtin.Int32
+  %2 = tuple()
+  return %2 : $()
+}
+
+// CHECK-LABEL: sil @non_trivial : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.NativeObject, [[ARG2:%[0-9]+]] : $Builtin.NativeObject):
+// CHECK: load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: load [take] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: load [copy] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [init] [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [assign] [[ARG1]] : $*Builtin.NativeObject
+sil @non_trivial : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject):
+  load %0 : $*Builtin.NativeObject
+  load [take] %0 : $*Builtin.NativeObject
+  load [copy] %0 : $*Builtin.NativeObject
+  store %1 to %0 : $*Builtin.NativeObject
+  store %1 to [init] %0 : $*Builtin.NativeObject
+  store %1 to [assign] %0 : $*Builtin.NativeObject
+  %2 = tuple()
+  return %2 : $()
+}
diff --git a/test/SIL/verifier-value-metatype-lowering.sil b/test/SIL/verifier-value-metatype-lowering.sil
new file mode 100644
index 0000000..475f553
--- /dev/null
+++ b/test/SIL/verifier-value-metatype-lowering.sil
@@ -0,0 +1,22 @@
+// RUN: %target-sil-opt -module-name Swift %s
+// REQUIRES: asserts
+//
+// Make sure that we properly verify the lowering of optional value
+// metatypes. This shouldn't crash.
+//
+// rdar://28536812
+
+enum Optional<T> {
+case none
+case some(T)
+}
+
+sil @foo : $@convention(thin) () -> () {
+  %0 = enum $Optional<@thick Any.Type>, #Optional.none!enumelt
+  %1 = alloc_stack $Optional<@thick Any.Type>
+  store %0 to %1 : $*Optional<@thick Any.Type>
+  %2 = value_metatype $@thick Optional<Any.Type>.Type, %1 : $*Optional<@thick Any.Type>
+  dealloc_stack %1 : $*Optional<@thick Any.Type>
+  %3 = tuple()
+  return %3 : $()
+}
diff --git a/test/SILGen/address_only_types.swift b/test/SILGen/address_only_types.swift
index a8fddd6..d36d6f4 100644
--- a/test/SILGen/address_only_types.swift
+++ b/test/SILGen/address_only_types.swift
@@ -157,34 +157,24 @@
 // CHECK-LABEL: sil hidden @_TF18address_only_types33address_only_assignment_from_temp
 func address_only_assignment_from_temp(_ dest: inout Unloadable) {
   // CHECK: bb0([[DEST:%[0-9]+]] : $*Unloadable):
-  // CHECK: [[DEST_LOCAL:%.*]] = alloc_box $Unloadable
-  // CHECK: [[PB:%.*]] = project_box [[DEST_LOCAL]]
-  // CHECK: copy_addr [[DEST]] to [initialization] [[PB]]
   dest = some_address_only_function_1()
   // CHECK: [[TEMP:%[0-9]+]] = alloc_stack $Unloadable
-  // CHECK: copy_addr [take] [[TEMP]] to [[PB]] :
+  // CHECK: copy_addr [take] [[TEMP]] to %0 :
   // CHECK-NOT: destroy_addr [[TEMP]]
   // CHECK: dealloc_stack [[TEMP]]
-  // CHECK: copy_addr [[PB]] to [[DEST]]
-  // CHECK: release [[DEST_LOCAL]]
 }
 
 // CHECK-LABEL: sil hidden @_TF18address_only_types31address_only_assignment_from_lv
 func address_only_assignment_from_lv(_ dest: inout Unloadable, v: Unloadable) {
   var v = v
   // CHECK: bb0([[DEST:%[0-9]+]] : $*Unloadable, [[VARG:%[0-9]+]] : $*Unloadable):
-  // CHECK: [[DEST_LOCAL:%.*]] = alloc_box $Unloadable
-  // CHECK: [[PB:%.*]] = project_box [[DEST_LOCAL]]
-  // CHECK: copy_addr [[DEST]] to [initialization] [[PB]]
   // CHECK: [[VBOX:%.*]] = alloc_box $Unloadable
   // CHECK: [[PBOX:%[0-9]+]] = project_box [[VBOX]]
   // CHECK: copy_addr [[VARG]] to [initialization] [[PBOX]] : $*Unloadable
   dest = v
   // FIXME: emit into?
-  // CHECK: copy_addr [[PBOX]] to [[PB]] :
+  // CHECK: copy_addr [[PBOX]] to %0 :
   // CHECK: release [[VBOX]]
-  // CHECK: copy_addr [[PB]] to [[DEST]]
-  // CHECK: release [[DEST_LOCAL]]
 }
 
 var global_prop : Unloadable {
diff --git a/test/SILGen/addressors.swift b/test/SILGen/addressors.swift
index 3209976..e3b7d59 100644
--- a/test/SILGen/addressors.swift
+++ b/test/SILGen/addressors.swift
@@ -176,11 +176,9 @@
 // SILGEN: bb0([[VALUE:%.*]] : $Int32, [[I:%.*]] : $Int32, [[SELF:%.*]] : $*D):
 // SILGEN:   debug_value [[VALUE]] : $Int32
 // SILGEN:   debug_value [[I]] : $Int32
-// SILGEN:   [[BOX:%.*]] = alloc_box $D
-// SILGEN:   [[PB:%.*]] = project_box [[BOX]]
-// SILGEN:   copy_addr [[SELF]] to [initialization] [[PB]] : $*D
+// SILGEN:   debug_value_addr [[SELF]]
 // SILGEN:   [[T0:%.*]] = function_ref @_TFV10addressors1Dau9subscriptFVs5Int32S1_{{.*}}
-// SILGEN:   [[PTR:%.*]] = apply [[T0]]([[I]], [[PB]])
+// SILGEN:   [[PTR:%.*]] = apply [[T0]]([[I]], [[SELF]])
 // SILGEN:   [[T0:%.*]] = struct_extract [[PTR]] : $UnsafeMutablePointer<Int32>,
 // SILGEN:   [[ADDR:%.*]] = pointer_to_address [[T0]] : $Builtin.RawPointer to [strict] $*Int32
 // SILGEN:   assign [[VALUE]] to [[ADDR]] : $*Int32
diff --git a/test/SILGen/builtins.swift b/test/SILGen/builtins.swift
index c60deef..59b0c02 100644
--- a/test/SILGen/builtins.swift
+++ b/test/SILGen/builtins.swift
@@ -605,13 +605,8 @@
 // NativeObject
 // CHECK-LABEL: sil hidden @_TF8builtins8isUnique
 // CHECK: bb0(%0 : $*Optional<Builtin.NativeObject>):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Optional<Builtin.NativeObject>
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK-NEXT: copy_addr %0 to [initialization] [[PB]] : $*Optional<Builtin.NativeObject>
-// CHECK: [[BUILTIN:%.*]] = is_unique [[PB]] : $*Optional<Builtin.NativeObject>
-// CHECK: copy_addr [[PB]] to %0 : $*Optional<Builtin.NativeObject>
-// CHECK-NEXT: strong_release [[BOX]] : $@box Optional<Builtin.NativeObject>
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique %0 : $*Optional<Builtin.NativeObject>
+// CHECK: return
 func isUnique(_ ref: inout Builtin.NativeObject?) -> Bool {
   return _getBool(Builtin.isUnique(&ref))
 }
@@ -619,13 +614,8 @@
 // NativeObject nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins8isUnique
 // CHECK: bb0(%0 : $*Builtin.NativeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.NativeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.NativeObject
-// CHECK: [[BUILTIN:%.*]] = is_unique [[PB]] : $*Builtin.NativeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.NativeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.NativeObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique %0 : $*Builtin.NativeObject
+// CHECK: return
 func isUnique(_ ref: inout Builtin.NativeObject) -> Bool {
   return _getBool(Builtin.isUnique(&ref))
 }
@@ -633,13 +623,8 @@
 // NativeObject pinned
 // CHECK-LABEL: sil hidden @_TF8builtins16isUniqueOrPinned
 // CHECK: bb0(%0 : $*Optional<Builtin.NativeObject>):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Optional<Builtin.NativeObject>
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Optional<Builtin.NativeObject>
-// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned [[PB]] : $*Optional<Builtin.NativeObject>
-// CHECK: copy_addr [[PB]] to %0 : $*Optional<Builtin.NativeObject>
-// CHECK-NEXT: strong_release [[BOX]] : $@box Optional<Builtin.NativeObject>
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned %0 : $*Optional<Builtin.NativeObject>
+// CHECK: return
 func isUniqueOrPinned(_ ref: inout Builtin.NativeObject?) -> Bool {
   return _getBool(Builtin.isUniqueOrPinned(&ref))
 }
@@ -647,13 +632,8 @@
 // NativeObject pinned nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins16isUniqueOrPinned
 // CHECK: bb0(%0 : $*Builtin.NativeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.NativeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.NativeObject
-// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned [[PB]] : $*Builtin.NativeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.NativeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.NativeObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned %0 : $*Builtin.NativeObject
+// CHECK: return
 func isUniqueOrPinned(_ ref: inout Builtin.NativeObject) -> Bool {
   return _getBool(Builtin.isUniqueOrPinned(&ref))
 }
@@ -661,13 +641,8 @@
 // UnknownObject (ObjC)
 // CHECK-LABEL: sil hidden @_TF8builtins8isUnique
 // CHECK: bb0(%0 : $*Optional<Builtin.UnknownObject>):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Optional<Builtin.UnknownObject>
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Optional<Builtin.UnknownObject>
-// CHECK: [[BUILTIN:%.*]] = is_unique [[PB]] : $*Optional<Builtin.UnknownObject>
-// CHECK: copy_addr [[PB]] to %0 : $*Optional<Builtin.UnknownObject>
-// CHECK-NEXT: strong_release [[BOX]] : $@box Optional<Builtin.UnknownObject>
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique %0 : $*Optional<Builtin.UnknownObject>
+// CHECK: return
 func isUnique(_ ref: inout Builtin.UnknownObject?) -> Bool {
   return _getBool(Builtin.isUnique(&ref))
 }
@@ -675,13 +650,8 @@
 // UnknownObject (ObjC) nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins8isUnique
 // CHECK: bb0(%0 : $*Builtin.UnknownObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.UnknownObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.UnknownObject
-// CHECK: [[BUILTIN:%.*]] = is_unique [[PB]] : $*Builtin.UnknownObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.UnknownObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.UnknownObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique %0 : $*Builtin.UnknownObject
+// CHECK: return
 func isUnique(_ ref: inout Builtin.UnknownObject) -> Bool {
   return _getBool(Builtin.isUnique(&ref))
 }
@@ -689,13 +659,8 @@
 // UnknownObject (ObjC) pinned nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins16isUniqueOrPinned
 // CHECK: bb0(%0 : $*Builtin.UnknownObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.UnknownObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.UnknownObject
-// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned [[PB]] : $*Builtin.UnknownObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.UnknownObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.UnknownObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned %0 : $*Builtin.UnknownObject
+// CHECK: return
 func isUniqueOrPinned(_ ref: inout Builtin.UnknownObject) -> Bool {
   return _getBool(Builtin.isUniqueOrPinned(&ref))
 }
@@ -703,13 +668,8 @@
 // BridgeObject nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins8isUnique
 // CHECK: bb0(%0 : $*Builtin.BridgeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.BridgeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.BridgeObject
-// CHECK: [[BUILTIN:%.*]] = is_unique [[PB]] : $*Builtin.BridgeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.BridgeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.BridgeObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique %0 : $*Builtin.BridgeObject
+// CHECK: return
 func isUnique(_ ref: inout Builtin.BridgeObject) -> Bool {
   return _getBool(Builtin.isUnique(&ref))
 }
@@ -717,13 +677,8 @@
 // BridgeObject pinned nonNull
 // CHECK-LABEL: sil hidden @_TF8builtins16isUniqueOrPinned
 // CHECK: bb0(%0 : $*Builtin.BridgeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.BridgeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.BridgeObject
-// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned [[PB]] : $*Builtin.BridgeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.BridgeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.BridgeObject
-// CHECK-NEXT: return
+// CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned %0 : $*Builtin.BridgeObject
+// CHECK: return
 func isUniqueOrPinned(_ ref: inout Builtin.BridgeObject) -> Bool {
   return _getBool(Builtin.isUniqueOrPinned(&ref))
 }
@@ -731,14 +686,8 @@
 // BridgeObject nonNull native
 // CHECK-LABEL: sil hidden @_TF8builtins15isUnique_native
 // CHECK: bb0(%0 : $*Builtin.BridgeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.BridgeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.BridgeObject
-// CHECK: [[CAST:%.*]] = unchecked_addr_cast [[PB]] : $*Builtin.BridgeObject to $*Builtin.NativeObject
-// CHECK: [[BUILTIN:%.*]] = is_unique [[CAST]] : $*Builtin.NativeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.BridgeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.BridgeObject
-// CHECK-NEXT: return
+// CHECK: [[CAST:%.*]] = unchecked_addr_cast %0 : $*Builtin.BridgeObject to $*Builtin.NativeObject
+// CHECK: return
 func isUnique_native(_ ref: inout Builtin.BridgeObject) -> Bool {
   return _getBool(Builtin.isUnique_native(&ref))
 }
@@ -746,14 +695,9 @@
 // BridgeObject pinned nonNull native
 // CHECK-LABEL: sil hidden @_TF8builtins23isUniqueOrPinned_native
 // CHECK: bb0(%0 : $*Builtin.BridgeObject):
-// CHECK-NEXT: [[BOX:%.*]] = alloc_box $Builtin.BridgeObject
-// CHECK-NEXT: [[PB:%.*]] = project_box [[BOX]]
-// CHECK: copy_addr %0 to [initialization] [[PB]] : $*Builtin.BridgeObject
-// CHECK: [[CAST:%.*]] = unchecked_addr_cast [[PB]] : $*Builtin.BridgeObject to $*Builtin.NativeObject
+// CHECK: [[CAST:%.*]] = unchecked_addr_cast %0 : $*Builtin.BridgeObject to $*Builtin.NativeObject
 // CHECK: [[BUILTIN:%.*]] = is_unique_or_pinned [[CAST]] : $*Builtin.NativeObject
-// CHECK: copy_addr [[PB]] to %0 : $*Builtin.BridgeObject
-// CHECK-NEXT: strong_release [[BOX]] : $@box Builtin.BridgeObject
-// CHECK-NEXT: return
+// CHECK: return
 func isUniqueOrPinned_native(_ ref: inout Builtin.BridgeObject) -> Bool {
   return _getBool(Builtin.isUniqueOrPinned_native(&ref))
 }
diff --git a/test/SILGen/capture_inout.swift b/test/SILGen/capture_inout.swift
index 0e07e9a..636a718 100644
--- a/test/SILGen/capture_inout.swift
+++ b/test/SILGen/capture_inout.swift
@@ -2,16 +2,27 @@
 
 typealias Int = Builtin.Int64
 
-// CHECK: sil hidden @_TF13capture_inout3foo
+// CHECK: sil hidden @_TF13capture_inout8localFooFT1xRBi64__T_
 // CHECK: bb0([[X_INOUT:%.*]] : $*Builtin.Int64):
-// CHECK:   [[X_LOCAL:%.*]] = alloc_box $Builtin.Int64
-// CHECK:   [[FUNC:%.*]] = function_ref [[CLOSURE:@.*]] : $@convention(thin) (@owned @box Builtin.Int64) -> Builtin.Int64
-// CHECK:   apply [[FUNC]]([[X_LOCAL]])
+// CHECK-NOT: alloc_box
+// CHECK:   [[FUNC:%.*]] = function_ref [[CLOSURE:@.*]] : $@convention(thin) (@inout_aliasable Builtin.Int64) -> Builtin.Int64
+// CHECK:   apply [[FUNC]]([[X_INOUT]])
 // CHECK: }
-// CHECK: sil shared [[CLOSURE]] : $@convention(thin) (@owned @box Builtin.Int64) -> Builtin.Int64
-func foo(x: inout Int) {
+// CHECK: sil shared [[CLOSURE]] : $@convention(thin) (@inout_aliasable Builtin.Int64) -> Builtin.Int64
+func localFoo(x: inout Int) {
   func bar() -> Int {
     return x
   }
   bar()
 }
+
+// CHECK: sil hidden @_TF13capture_inout7anonFooFT1xRBi64__T_
+// CHECK: bb0([[X_INOUT:%.*]] : $*Builtin.Int64):
+// CHECK-NOT: alloc_box
+// CHECK:   [[FUNC:%.*]] = function_ref [[CLOSURE:@.*]] : $@convention(thin) (@inout_aliasable Builtin.Int64) -> Builtin.Int64
+// CHECK:   apply [[FUNC]]([[X_INOUT]])
+// CHECK: }
+// CHECK: sil shared [[CLOSURE]] : $@convention(thin) (@inout_aliasable Builtin.Int64) -> Builtin.Int64
+func anonFoo(x: inout Int) {
+  { return x }()
+}
diff --git a/test/SILGen/closures.swift b/test/SILGen/closures.swift
index 7480be5..c36afc9 100644
--- a/test/SILGen/closures.swift
+++ b/test/SILGen/closures.swift
@@ -343,11 +343,8 @@
 
 // CHECK-LABEL: sil hidden @_TFV8closures24StructWithMutatingMethod14mutatingMethod
 // CHECK: bb0(%0 : $*StructWithMutatingMethod):
-// CHECK-NEXT: %1 = alloc_box $StructWithMutatingMethod, var, name "self", argno 1
-// CHECK-NEXT: %2 = project_box %1
-// CHECK-NEXT: copy_addr %0 to [initialization] %2 : $*StructWithMutatingMethod
 // CHECK: [[CLOSURE:%[0-9]+]] = function_ref @_TFFV8closures24StructWithMutatingMethod14mutatingMethod{{.*}} : $@convention(thin) (@inout_aliasable StructWithMutatingMethod) -> Int
-// CHECK: partial_apply [[CLOSURE]](%2) : $@convention(thin) (@inout_aliasable StructWithMutatingMethod) -> Int
+// CHECK: partial_apply [[CLOSURE]](%0) : $@convention(thin) (@inout_aliasable StructWithMutatingMethod) -> Int
 
 // Check that the closure body only takes the pointer.
 // CHECK-LABEL: sil shared @_TFFV8closures24StructWithMutatingMethod14mutatingMethod{{.*}} : $@convention(thin) (@inout_aliasable StructWithMutatingMethod) -> Int {
diff --git a/test/SILGen/constrained_extensions.swift b/test/SILGen/constrained_extensions.swift
index 0fb0779..a6845f9 100644
--- a/test/SILGen/constrained_extensions.swift
+++ b/test/SILGen/constrained_extensions.swift
@@ -3,6 +3,11 @@
 // RUN: %target-swift-frontend -emit-ir -O %s
 
 extension Array where Element == Int {
+  // CHECK-LABEL: sil @_TFe22constrained_extensionsRxzSirSaCfT1xT__GSax_ : $@convention(method) (@thin Array<Int>.Type) -> @owned Array<Int>
+  public init(x: ()) {
+    self.init()
+  }
+
   // CHECK-LABEL: sil @_TFe22constrained_extensionsRxzSirSag16instancePropertySi : $@convention(method) (@guaranteed Array<Int>) -> Int
   // CHECK-LABEL: sil @_TFe22constrained_extensionsRxzSirSas16instancePropertySi : $@convention(method) (Int, @inout Array<Int>) -> ()
   // CHECK-LABEL: sil [transparent] [fragile] @_TFe22constrained_extensionsRxzSirSam16instancePropertySi : $@convention(method) (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout Array<Int>) -> (Builtin.RawPointer, Optional<Builtin.RawPointer>)
@@ -28,7 +33,7 @@
 
   // CHECK-LABEL: sil @_TZFe22constrained_extensionsRxzSirSag14staticPropertySi : $@convention(method) (@thin Array<Int>.Type) -> Int
   public static var staticProperty: Element {
-    return 0
+    return Array(x: ()).instanceProperty
   }
 
   // CHECK-LABEL: sil @_TZFe22constrained_extensionsRxzSirSa12staticMethodfT_x : $@convention(method) (@thin Array<Int>.Type) -> Int
@@ -58,10 +63,15 @@
 }
 
 extension Dictionary where Key == Int {
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionaryg16instancePropertyq_ : $@convention(method) <Int, Value where Int == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionarys16instancePropertyq_ : $@convention(method) <Int, Value where Int == Int> (@in Value, @inout Dictionary<Int, Value>) -> ()
-  // CHECK-LABEL: sil [transparent] [fragile] @_TFe22constrained_extensions0_RxzSirVs10Dictionarym16instancePropertyq_ : $@convention(method) <Int, Value where Int == Int> (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout Dictionary<Int, Value>) -> (Builtin.RawPointer, Optional<Builtin.RawPointer>)
-  // CHECK-LABEL: sil [transparent] [fragile] @_TFFe22constrained_extensions0_RxzSirVs10Dictionarym16instancePropertyq_U_T_ : $@convention(thin) <Int, Value where Int == Int> (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout Dictionary<Int, Value>, @thick Dictionary<Int, Value>.Type) -> ()
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10DictionaryCfT1xT__GS0_xq__ : $@convention(method) <Key, Value where Key == Int> (@thin Dictionary<Int, Value>.Type) -> @owned Dictionary<Int, Value> {
+  public init(x: ()) {
+    self.init()
+  }
+
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionaryg16instancePropertyq_ : $@convention(method) <Key, Value where Key == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionarys16instancePropertyq_ : $@convention(method) <Key, Value where Key == Int> (@in Value, @inout Dictionary<Int, Value>) -> ()
+  // CHECK-LABEL: sil [transparent] [fragile] @_TFe22constrained_extensions0_RxzSirVs10Dictionarym16instancePropertyq_ : $@convention(method) <Key, Value where Key == Int> (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout Dictionary<Int, Value>) -> (Builtin.RawPointer, Optional<Builtin.RawPointer>)
+  // CHECK-LABEL: sil [transparent] [fragile] @_TFFe22constrained_extensions0_RxzSirVs10Dictionarym16instancePropertyq_U_T_ : $@convention(thin) <Key, Value where Key == Int> (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout Dictionary<Int, Value>, @thick Dictionary<Int, Value>.Type) -> ()
   public var instanceProperty: Value {
     get {
       return self[0]!
@@ -71,44 +81,49 @@
     }
   }
 
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary14instanceMethodfT_q_ : $@convention(method) <Int, Value where Int == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary14instanceMethodfT_q_ : $@convention(method) <Key, Value where Key == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
   public func instanceMethod() -> Value {
     return instanceProperty
   }
 
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary14instanceMethodfT1vq__q_ : $@convention(method) <Int, Value where Int == Int> (@in Value, @guaranteed Dictionary<Int, Value>) -> @out Value
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary14instanceMethodfT1vq__q_ : $@convention(method) <Key, Value where Key == Int> (@in Value, @guaranteed Dictionary<Int, Value>) -> @out Value
   public func instanceMethod(v: Value) -> Value {
     return v
   }
 
-  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodfT_x : $@convention(method) <Int, Value where Int == Int> (@thin Dictionary<Int, Value>.Type) -> Int
+  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodfT_x : $@convention(method) <Key, Value where Key == Int> (@thin Dictionary<Int, Value>.Type) -> Int
   public static func staticMethod() -> Key {
     return staticProperty
   }
 
-  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionaryg14staticPropertySi : $@convention(method) <Int, Value where Int == Int> (@thin Dictionary<Int, Value>.Type) -> Int
+  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionaryg14staticPropertySi : $@convention(method) <Key, Value where Key == Int> (@thin Dictionary<Int, Value>.Type) -> Int
   public static var staticProperty: Key {
     return 0
   }
 
-  // CHECK-LABEL: sil @_TIZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodFT1kGSqx_1vGSqq___q_A_ : $@convention(thin) <Int, Value where Int == Int> () -> Optional<Int>
-  // CHECK-LABEL: sil @_TIZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodFT1kGSqx_1vGSqq___q_A0_ : $@convention(thin) <Int, Value where Int == Int> () -> @out Optional<Value>
-  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodfT1kGSqx_1vGSqq___q_ : $@convention(method) <Int, Value where Int == Int> (Optional<Int>, @in Optional<Value>, @thin Dictionary<Int, Value>.Type) -> @out Value
+  // CHECK-LABEL: sil @_TIZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodFT1kGSqx_1vGSqq___q_A_ : $@convention(thin) <Key, Value where Key == Int> () -> Optional<Int>
+  // CHECK-LABEL: sil @_TIZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodFT1kGSqx_1vGSqq___q_A0_ : $@convention(thin) <Key, Value where Key == Int> () -> @out Optional<Value>
+  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary12staticMethodfT1kGSqx_1vGSqq___q_ : $@convention(method) <Key, Value where Key == Int> (Optional<Int>, @in Optional<Value>, @thin Dictionary<Int, Value>.Type) -> @out Value
   public static func staticMethod(k: Key? = nil, v: Value? = nil) -> Value {
     return v!
   }
 
-  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary17callsStaticMethodfT_q_ : $@convention(method) <Int, Value where Int == Int> (@thin Dictionary<Int, Value>.Type) -> @out Value
+  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary17callsStaticMethodfT_q_ : $@convention(method) <Key, Value where Key == Int> (@thin Dictionary<Int, Value>.Type) -> @out Value
   public static func callsStaticMethod() -> Value {
     return staticMethod()
   }
 
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionaryg9subscriptFT_q_ : $@convention(method) <Int, Value where Int == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
+  // CHECK-LABEL: sil @_TZFe22constrained_extensions0_RxzSirVs10Dictionary16callsConstructorfT_q_ : $@convention(method) <Key, Value where Key == Int> (@thin Dictionary<Int, Value>.Type) -> @out Value
+  public static func callsConstructor() -> Value {
+    return Dictionary(x: ()).instanceMethod()
+  }
+
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionaryg9subscriptFT_q_ : $@convention(method) <Key, Value where Key == Int> (@guaranteed Dictionary<Int, Value>) -> @out Value
   public subscript(i: ()) -> Value {
     return self[0]!
   }
 
-  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary21inoutAccessOfPropertyfT_T_ : $@convention(method) <Int, Value where Int == Int> (@inout Dictionary<Int, Value>) -> ()
+  // CHECK-LABEL: sil @_TFe22constrained_extensions0_RxzSirVs10Dictionary21inoutAccessOfPropertyfT_T_ : $@convention(method) <Key, Value where Key == Int> (@inout Dictionary<Int, Value>) -> ()
   public mutating func inoutAccessOfProperty() {
     func increment(x: inout Value) { }
 
diff --git a/test/SILGen/copy_lvalue_peepholes.swift b/test/SILGen/copy_lvalue_peepholes.swift
index 57c89c6..0e07dbe 100644
--- a/test/SILGen/copy_lvalue_peepholes.swift
+++ b/test/SILGen/copy_lvalue_peepholes.swift
@@ -19,11 +19,9 @@
 }
 
 // CHECK-LABEL: sil hidden @_TF21copy_lvalue_peepholes22assign_var_from_lvalue
-// CHECK:   [[X:%.*]] = alloc_box $Builtin.Int64
-// CHECK:   [[PBX:%.*]] = project_box [[X]]
 // CHECK:   [[Y:%.*]] = alloc_box $Builtin.Int64
 // CHECK:   [[PBY:%.*]] = project_box [[Y]]
-// CHECK:   copy_addr [[PBY]] to [[PBX]]
+// CHECK:   copy_addr [[PBY]] to %0
 func assign_var_from_lvalue(x: inout Int, y: Int) {
   var y = y
   x = y
@@ -58,9 +56,7 @@
 }
 
 // CHECK-LABEL: sil hidden @_TF21copy_lvalue_peepholes24assign_var_from_computed
-// CHECK:   [[X:%.*]] = alloc_box
-// CHECK:   [[PBX:%.*]] = project_box [[X]]
-// CHECK:   assign {{%.*}} to [[PBX]]
+// CHECK:   assign {{%.*}} to %0
 func assign_var_from_computed(x: inout Int) {
   x = computed
 }
diff --git a/test/SILGen/decls.swift b/test/SILGen/decls.swift
index df4bdb6..29c8ffa 100644
--- a/test/SILGen/decls.swift
+++ b/test/SILGen/decls.swift
@@ -107,9 +107,6 @@
 // CHECK: bb0(%0 : $*Int, %1 : $Int):
 // CHECK: [[X_LOCAL:%[0-9]+]] = alloc_box $Int
 // CHECK: [[PBX:%.*]] = project_box [[X_LOCAL]]
-// CHECK: [[YADDR:%[0-9]+]] = alloc_box $Int
-// CHECK: [[PBY:%[0-9]+]] = project_box [[YADDR]]
-// CHECK: copy_addr [[PBY]] to [[PBX]]
 func inout_argument(x: inout Int, y: Int) {
   var y = y
   x = y
diff --git a/test/SILGen/errors.swift b/test/SILGen/errors.swift
index b1a8318..82c9918 100644
--- a/test/SILGen/errors.swift
+++ b/test/SILGen/errors.swift
@@ -588,8 +588,6 @@
 // CHECK-NEXT: apply [[SETTER]]([[T0]], [[INDEX]], [[B]])
 // CHECK-NEXT: dealloc_stack [[TEMP]]
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: tuple ()
 // CHECK-NEXT: return
 
@@ -606,8 +604,6 @@
 // CHECK-NEXT: dealloc_stack [[TEMP]]
 // CHECK-NEXT: release_value [[INDEX]] : $String
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: throw [[ERROR]]
 
 struct OwnedBridge {
@@ -635,15 +631,11 @@
 // CHECK:    [[BB_NORMAL]]
 // CHECK-NEXT: strong_release [[OWNER]] : $Builtin.UnknownObject
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: tuple ()
 // CHECK-NEXT: return
 // CHECK:    [[BB_ERROR]]([[ERROR:%.*]] : $Error):
 // CHECK-NEXT: strong_release [[OWNER]] : $Builtin.UnknownObject
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: throw [[ERROR]]
 
 struct PinnedBridge {
@@ -671,8 +663,6 @@
 // CHECK:    [[BB_NORMAL]]
 // CHECK-NEXT: strong_unpin [[OWNER]] : $Optional<Builtin.NativeObject>
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: tuple ()
 // CHECK-NEXT: return
 // CHECK:    [[BB_ERROR]]([[ERROR:%.*]] : $Error):
@@ -680,8 +670,6 @@
 // CHECK-NEXT: strong_unpin [[OWNER]] : $Optional<Builtin.NativeObject>
 // CHECK-NEXT: release_value [[OWNER]]
 // CHECK-NEXT: release_value [[INDEX]] : $String
-// CHECK-NEXT: copy_addr
-// CHECK-NEXT: strong_release
 // CHECK-NEXT: throw [[ERROR]]
 
 // ! peepholes its argument with getSemanticsProvidingExpr().
diff --git a/test/SILGen/generic_closures.swift b/test/SILGen/generic_closures.swift
index 8cf325b..d80fe22 100644
--- a/test/SILGen/generic_closures.swift
+++ b/test/SILGen/generic_closures.swift
@@ -131,7 +131,6 @@
 
 // CHECK-LABEL: sil hidden @_TF16generic_closures16local_properties
 func local_properties<T>(_ t: inout T) {
-  // CHECK: [[TBOX:%[0-9]+]] = alloc_box $T
   var prop: T {
     get {
       return t
@@ -141,11 +140,11 @@
     }
   }
 
-  // CHECK: [[GETTER_REF:%[0-9]+]] = function_ref [[GETTER_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@owned @box τ_0_0) -> @out τ_0_0
+  // CHECK: [[GETTER_REF:%[0-9]+]] = function_ref [[GETTER_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@inout_aliasable τ_0_0) -> @out τ_0_0
   // CHECK: apply [[GETTER_REF]]
   t = prop
 
-  // CHECK: [[SETTER_REF:%[0-9]+]] = function_ref [[SETTER_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@in τ_0_0, @owned @box τ_0_0) -> ()
+  // CHECK: [[SETTER_REF:%[0-9]+]] = function_ref [[SETTER_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@in τ_0_0, @inout_aliasable τ_0_0) -> ()
   // CHECK: apply [[SETTER_REF]]
   prop = t
 
@@ -158,7 +157,7 @@
     }
   }
 
-  // CHECK: [[GETTER2_REF:%[0-9]+]] = function_ref [[GETTER2_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@owned @box τ_0_0) -> @out τ_0_0
+  // CHECK: [[GETTER2_REF:%[0-9]+]] = function_ref [[GETTER2_CLOSURE:@_TFF16generic_closures16local_properties.*]] : $@convention(thin) <τ_0_0> (@inout_aliasable τ_0_0) -> @out τ_0_0
   // CHECK: apply [[GETTER2_REF]]
   t = prop2
 
diff --git a/test/SILGen/lifetime.swift b/test/SILGen/lifetime.swift
index 14a9f9b..9f89d53 100644
--- a/test/SILGen/lifetime.swift
+++ b/test/SILGen/lifetime.swift
@@ -136,19 +136,6 @@
     // CHECK: return
 }
 
-// CHECK-LABEL: sil hidden @_TF8lifetime17reftype_inout_arg
-func reftype_inout_arg(_ a: inout Ref) {
-    // CHECK: bb0([[A:%[0-9]+]] : $*Ref):
-    // -- initialize local box for inout
-    // CHECK: [[A_LOCAL:%.*]] = alloc_box $Ref
-    // CHECK: [[PB:%.*]] = project_box [[A_LOCAL]]
-    // CHECK: copy_addr [[A]] to [initialization] [[PB]]
-    // -- write back to inout
-    // CHECK: copy_addr [[PB]] to [[A]]
-    // CHECK: strong_release [[A_LOCAL]]
-    // CHECK: return
-}
-
 // CHECK-LABEL: sil hidden @_TF8lifetime26reftype_call_ignore_returnFT_T_
 func reftype_call_ignore_return() {
     reftype_func()
@@ -205,13 +192,9 @@
 func reftype_reassign(_ a: inout Ref, b: Ref) {
     var b = b
     // CHECK: bb0([[AADDR:%[0-9]+]] : $*Ref, [[B1:%[0-9]+]] : $Ref):
-    // CHECK: [[A_LOCAL:%[0-9]+]] = alloc_box $Ref
-    // CHECK: [[PBA:%.*]] = project_box [[A_LOCAL]]
-    // CHECK: copy_addr [[AADDR]] to [initialization] [[PBA]]
     // CHECK: [[BADDR:%[0-9]+]] = alloc_box $Ref
     // CHECK: [[PBB:%.*]] = project_box [[BADDR]]
     a = b
-    // CHECK: copy_addr [[PBB]] to [[PBA]]
     // CHECK: release
 
     // CHECK: return
diff --git a/test/SILGen/optional_lvalue.swift b/test/SILGen/optional_lvalue.swift
index 38cb56c..dbc99ec 100644
--- a/test/SILGen/optional_lvalue.swift
+++ b/test/SILGen/optional_lvalue.swift
@@ -1,22 +1,18 @@
 // RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
 
 // CHECK-LABEL: sil hidden @_TF15optional_lvalue22assign_optional_lvalueFTRGSqSi_Si_T_
-// CHECK:         [[SHADOW:%.*]] = alloc_box $Optional<Int>
-// CHECK:         [[PB:%.*]] = project_box [[SHADOW]]
 // CHECK:         [[PRECOND:%.*]] = function_ref @_TFs30_diagnoseUnexpectedNilOptional
 // CHECK:         apply [[PRECOND]](
-// CHECK:         [[PAYLOAD:%.*]] = unchecked_take_enum_data_addr [[PB]] : $*Optional<Int>, #Optional.some!enumelt.1
+// CHECK:         [[PAYLOAD:%.*]] = unchecked_take_enum_data_addr %0 : $*Optional<Int>, #Optional.some!enumelt.1
 // CHECK:         assign {{%.*}} to [[PAYLOAD]]
 func assign_optional_lvalue(_ x: inout Int?, _ y: Int) {
   x! = y
 }
 
 // CHECK-LABEL: sil hidden @_TF15optional_lvalue17assign_iuo_lvalueFTRGSQSi_Si_T_
-// CHECK:         [[SHADOW:%.*]] = alloc_box $Optional<Int>
-// CHECK:         [[PB:%.*]] = project_box [[SHADOW]]
 // CHECK:         [[PRECOND:%.*]] = function_ref @_TFs30_diagnoseUnexpectedNilOptional
 // CHECK:         apply [[PRECOND]](
-// CHECK:         [[PAYLOAD:%.*]] = unchecked_take_enum_data_addr [[PB]] : $*Optional<Int>, #Optional.some!enumelt.1
+// CHECK:         [[PAYLOAD:%.*]] = unchecked_take_enum_data_addr %0 : $*Optional<Int>, #Optional.some!enumelt.1
 // CHECK:         assign {{%.*}} to [[PAYLOAD]]
 func assign_iuo_lvalue(_ x: inout Int!, _ y: Int) {
   x! = y
@@ -32,9 +28,7 @@
 }
 
 // CHECK-LABEL: sil hidden @_TF15optional_lvalue26assign_iuo_lvalue_implicitFTRGSQVS_1S_Si_T_
-// CHECK:         [[SHADOW:%.*]] = alloc_box
-// CHECK:         [[PB:%.*]] = project_box [[SHADOW]]
-// CHECK:         [[SOME:%.*]] = unchecked_take_enum_data_addr [[PB]]
+// CHECK:         [[SOME:%.*]] = unchecked_take_enum_data_addr %0
 // CHECK:         [[X:%.*]] = struct_element_addr [[SOME]]
 func assign_iuo_lvalue_implicit(_ s: inout S!, _ y: Int) {
   s.x = y
diff --git a/test/SILGen/properties.swift b/test/SILGen/properties.swift
index 2734401..c3607fd 100644
--- a/test/SILGen/properties.swift
+++ b/test/SILGen/properties.swift
@@ -32,30 +32,22 @@
 // CHECK-LABEL: sil hidden  @_TF10properties16tuple_assignment
 func tuple_assignment(_ a: inout Int, b: inout Int) {
   // CHECK: bb0([[A_ADDR:%[0-9]+]] : $*Int, [[B_ADDR:%[0-9]+]] : $*Int):
-  // CHECK: [[A_LOCAL:%.*]] = alloc_box $Int
-  // CHECK: [[PBA:%.*]] = project_box [[A_LOCAL]]
-  // CHECK: [[B_LOCAL:%.*]] = alloc_box $Int
-  // CHECK: [[PBB:%.*]] = project_box [[B_LOCAL]]
-  // CHECK: [[B:%[0-9]+]] = load [[PBB]]
-  // CHECK: [[A:%[0-9]+]] = load [[PBA]]
-  // CHECK: assign [[B]] to [[PBA]]
-  // CHECK: assign [[A]] to [[PBB]]
+  // CHECK: [[B:%[0-9]+]] = load [[B_ADDR]]
+  // CHECK: [[A:%[0-9]+]] = load [[A_ADDR]]
+  // CHECK: assign [[B]] to [[A_ADDR]]
+  // CHECK: assign [[A]] to [[B_ADDR]]
   (a, b) = (b, a)
 }
 
 // CHECK-LABEL: sil hidden  @_TF10properties18tuple_assignment_2
 func tuple_assignment_2(_ a: inout Int, b: inout Int, xy: (Int, Int)) {
   // CHECK: bb0([[A_ADDR:%[0-9]+]] : $*Int, [[B_ADDR:%[0-9]+]] : $*Int, [[X:%[0-9]+]] : $Int, [[Y:%[0-9]+]] : $Int):
-  // CHECK: [[A_LOCAL:%.*]] = alloc_box $Int
-  // CHECK: [[PBA:%.*]] = project_box [[A_LOCAL]]
-  // CHECK: [[B_LOCAL:%.*]] = alloc_box $Int
-  // CHECK: [[PBB:%.*]] = project_box [[B_LOCAL]]
   (a, b) = xy
   // CHECK: [[XY2:%[0-9]+]] = tuple ([[X]] : $Int, [[Y]] : $Int)
   // CHECK: [[X:%[0-9]+]] = tuple_extract [[XY2]] : {{.*}}, 0
   // CHECK: [[Y:%[0-9]+]] = tuple_extract [[XY2]] : {{.*}}, 1
-  // CHECK: assign [[X]] to [[PBA]]
-  // CHECK: assign [[Y]] to [[PBB]]
+  // CHECK: assign [[X]] to [[A_ADDR]]
+  // CHECK: assign [[Y]] to [[B_ADDR]]
 }
 
 class Ref {
@@ -167,10 +159,8 @@
 func logical_struct_set(_ value: inout Val, z: Int) {
   // CHECK: bb0([[VAL:%[0-9]+]] : $*Val, [[Z:%[0-9]+]] : $Int):
   value.z = z
-  // CHECK: [[VAL_LOCAL:%[0-9]+]] = alloc_box $Val
-  // CHECK: [[PB:%.*]] = project_box [[VAL_LOCAL]]
   // CHECK: [[Z_SET_METHOD:%[0-9]+]] = function_ref @_TFV10properties3Vals1z
-  // CHECK: apply [[Z_SET_METHOD]]([[Z]], [[PB]])
+  // CHECK: apply [[Z_SET_METHOD]]([[Z]], [[VAL]])
   // CHECK: return
 }
 
@@ -178,9 +168,7 @@
 func logical_struct_in_tuple_set(_ value: inout (Int, Val), z: Int) {
   // CHECK: bb0([[VAL:%[0-9]+]] : $*(Int, Val), [[Z:%[0-9]+]] : $Int):
   value.1.z = z
-  // CHECK: [[VAL_LOCAL:%[0-9]+]] = alloc_box $(Int, Val)
-  // CHECK: [[PB:%.*]] = project_box [[VAL_LOCAL]]
-  // CHECK: [[VAL_1:%[0-9]+]] = tuple_element_addr [[PB]] : {{.*}}, 1
+  // CHECK: [[VAL_1:%[0-9]+]] = tuple_element_addr [[VAL]] : {{.*}}, 1
   // CHECK: [[Z_SET_METHOD:%[0-9]+]] = function_ref @_TFV10properties3Vals1z
   // CHECK: apply [[Z_SET_METHOD]]([[Z]], [[VAL_1]])
   // CHECK: return
@@ -190,10 +178,8 @@
 func logical_struct_in_reftype_set(_ value: inout Val, z1: Int) {
   // CHECK: bb0([[VAL:%[0-9]+]] : $*Val, [[Z1:%[0-9]+]] : $Int):
   value.ref.val_prop.z_tuple.1 = z1
-  // CHECK: [[VAL_LOCAL:%[0-9]+]] = alloc_box $Val
-  // CHECK: [[PB:%.*]] = project_box [[VAL_LOCAL]]
   // -- val.ref
-  // CHECK: [[VAL_REF_ADDR:%[0-9]+]] = struct_element_addr [[PB]] : $*Val, #Val.ref
+  // CHECK: [[VAL_REF_ADDR:%[0-9]+]] = struct_element_addr [[VAL]] : $*Val, #Val.ref
   // CHECK: [[VAL_REF:%[0-9]+]] = load [[VAL_REF_ADDR]]
   // -- getters and setters
   // -- val.ref.val_prop
@@ -253,10 +239,8 @@
 func tuple_in_logical_struct_set(_ value: inout Val, z1: Int) {
   // CHECK: bb0([[VAL:%[0-9]+]] : $*Val, [[Z1:%[0-9]+]] : $Int):
   value.z_tuple.1 = z1
-  // CHECK: [[VAL_LOCAL:%[0-9]+]] = alloc_box $Val
-  // CHECK: [[PB:%.*]] = project_box [[VAL_LOCAL]]
   // CHECK: [[Z_TUPLE_MATERIALIZED:%[0-9]+]] = alloc_stack $(Int, Int)
-  // CHECK: [[VAL1:%[0-9]+]] = load [[PB]]
+  // CHECK: [[VAL1:%[0-9]+]] = load [[VAL]]
   // CHECK: retain_value [[VAL1]]
   // CHECK: [[Z_GET_METHOD:%[0-9]+]] = function_ref @_TFV10properties3Valg7z_tupleT
   // CHECK: [[A0:%.*]] = tuple_element_addr [[Z_TUPLE_MATERIALIZED]] : {{.*}}, 0
@@ -270,7 +254,7 @@
   // CHECK: assign [[Z1]] to [[Z_TUPLE_1]]
   // CHECK: [[Z_TUPLE_MODIFIED:%[0-9]+]] = load [[Z_TUPLE_MATERIALIZED]]
   // CHECK: [[Z_SET_METHOD:%[0-9]+]] = function_ref @_TFV10properties3Vals7z_tupleT
-  // CHECK: apply [[Z_SET_METHOD]]({{%[0-9]+, %[0-9]+}}, [[PB]])
+  // CHECK: apply [[Z_SET_METHOD]]({{%[0-9]+, %[0-9]+}}, [[VAL]])
   // CHECK: dealloc_stack [[Z_TUPLE_MATERIALIZED]]
   // CHECK: return
 }
@@ -476,15 +460,13 @@
       // CHECK-NEXT: sil hidden @_TFV10properties18DidSetWillSetTestsw1a
       // CHECK: bb0(%0 : $Int, %1 : $*DidSetWillSetTests):
       // CHECK-NEXT: debug_value %0
-      // CHECK-NEXT: [[SELFBOX:%.*]] = alloc_box $DidSetWillSetTests
-      // CHECK-NEXT: [[PB:%.*]] = project_box [[SELFBOX]]
-      // CHECK-NEXT: copy_addr %1 to [initialization] [[PB]] : $*DidSetWillSetTests
+      // CHECK-NEXT: debug_value_addr %1 : $*DidSetWillSetTests
 
       takeInt(a)
 
       // CHECK-NEXT: // function_ref properties.takeInt
       // CHECK-NEXT: [[TAKEINTFN:%.*]] = function_ref @_TF10properties7takeInt
-      // CHECK-NEXT: [[FIELDPTR:%.*]] = struct_element_addr [[PB]] : $*DidSetWillSetTests, #DidSetWillSetTests.a
+      // CHECK-NEXT: [[FIELDPTR:%.*]] = struct_element_addr %1 : $*DidSetWillSetTests, #DidSetWillSetTests.a
       // CHECK-NEXT: [[A:%.*]] = load [[FIELDPTR]] : $*Int
       // CHECK-NEXT: apply [[TAKEINTFN]]([[A]]) : $@convention(thin) (Int) -> ()
 
@@ -493,7 +475,6 @@
       // CHECK-NEXT: // function_ref properties.takeInt (Swift.Int) -> ()
       // CHECK-NEXT: [[TAKEINTFN:%.*]] = function_ref @_TF10properties7takeInt
       // CHECK-NEXT: apply [[TAKEINTFN]](%0) : $@convention(thin) (Int) -> ()
-      // CHECK-NEXT: copy_addr [[PB]] to %1 : $*DidSetWillSetTests
     }
 
     didSet {
@@ -501,15 +482,13 @@
       // CHECK-NEXT: sil hidden @_TFV10properties18DidSetWillSetTestsW1a
       // CHECK: bb0(%0 : $Int, %1 : $*DidSetWillSetTests):
       // CHECK-NEXT: debug
-      // CHECK-NEXT: [[SELFBOX:%.*]] = alloc_box $DidSetWillSetTests
-      // CHECK-NEXT: [[PB:%.*]] = project_box [[SELFBOX]]
-      // CHECK-NEXT: copy_addr %1 to [initialization] [[PB]] : $*DidSetWillSetTests
+      // CHECK-NEXT: debug_value_addr %1 : $*DidSetWillSetTests
 
       takeInt(a)
 
       // CHECK-NEXT: // function_ref properties.takeInt (Swift.Int) -> ()
       // CHECK-NEXT: [[TAKEINTFN:%.*]] = function_ref @_TF10properties7takeInt
-      // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr [[PB]] : $*DidSetWillSetTests, #DidSetWillSetTests.a
+      // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr %1 : $*DidSetWillSetTests, #DidSetWillSetTests.a
       // CHECK-NEXT: [[A:%.*]] = load [[AADDR]] : $*Int
       // CHECK-NEXT: apply [[TAKEINTFN]]([[A]]) : $@convention(thin) (Int) -> ()
 
@@ -519,9 +498,8 @@
       // CHECK-NEXT: [[ZEROFN:%.*]] = function_ref @_TF10propertiesau4zero
       // CHECK-NEXT: [[ZERORAW:%.*]] = apply [[ZEROFN]]() : $@convention(thin) () -> Builtin.RawPointer
       // CHECK-NEXT: [[ZEROADDR:%.*]] = pointer_to_address [[ZERORAW]] : $Builtin.RawPointer to [strict] $*Int
-      // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr [[PB]] : $*DidSetWillSetTests, #DidSetWillSetTests.a
+      // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr %1 : $*DidSetWillSetTests, #DidSetWillSetTests.a
       // CHECK-NEXT: copy_addr [[ZEROADDR]] to [[AADDR]] : $*Int
-      // CHECK-NEXT: copy_addr [[PB]] to %1 : $*DidSetWillSetTests
     }
   }
 
@@ -530,40 +508,34 @@
     a = x
     a = x
   }
-  
-   
+
   // These are the synthesized getter and setter for the willset/didset variable.
 
   // CHECK-LABEL: // {{.*}}.DidSetWillSetTests.a.getter
-  // CHECK-NEXT: sil hidden [transparent] @_TFV10properties18DidSetWillSetTestsg1a
+  // CHECK-NEXT: sil hidden [transparent] @_TFV10properties18DidSetWillSetTestsg1aSi
   // CHECK: bb0(%0 : $DidSetWillSetTests):
   // CHECK-NEXT:   debug_value %0
   // CHECK-NEXT:   %2 = struct_extract %0 : $DidSetWillSetTests, #DidSetWillSetTests.a
   // CHECK-NEXT:   return %2 : $Int{{.*}}                      // id: %3
-  
-  // CHECK-LABEL: // {{.*}}.DidSetWillSetTests.a.setter
-  // CHECK-NEXT: sil hidden @_TFV10properties18DidSetWillSetTestss1a
-  // CHECK: bb0(%0 : $Int, %1 : $*DidSetWillSetTests):
-  // CHECK-NEXT:   debug_value %0
-  // CHECK-NEXT: [[SELFBOX:%.*]] = alloc_box $DidSetWillSetTests
-  // CHECK-NEXT: [[PB:%.*]] = project_box [[SELFBOX]]
-  // CHECK-NEXT: copy_addr %1 to [initialization] [[PB]] : $*DidSetWillSetTests
 
-  // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr [[PB]] : $*DidSetWillSetTests, #DidSetWillSetTests.a
+  // CHECK-LABEL: // {{.*}}.DidSetWillSetTests.a.setter
+  // CHECK-NEXT: sil hidden @_TFV10properties18DidSetWillSetTestss1aSi
+  // CHECK: bb0(%0 : $Int, %1 : $*DidSetWillSetTests):
+  // CHECK-NEXT: debug_value %0
+  // CHECK-NEXT: debug_value_addr %1
+
+  // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr %1 : $*DidSetWillSetTests, #DidSetWillSetTests.a
   // CHECK-NEXT: [[OLDVAL:%.*]] = load [[AADDR]] : $*Int
   // CHECK-NEXT: debug_value [[OLDVAL]] : $Int, let, name "tmp"
 
   // CHECK-NEXT: // function_ref {{.*}}.DidSetWillSetTests.a.willset : Swift.Int
   // CHECK-NEXT: [[WILLSETFN:%.*]] = function_ref @_TFV10properties18DidSetWillSetTestsw1a
-  // CHECK-NEXT:  apply [[WILLSETFN]](%0, [[PB]]) : $@convention(method) (Int, @inout DidSetWillSetTests) -> ()
-  // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr [[PB]] : $*DidSetWillSetTests, #DidSetWillSetTests.a
+  // CHECK-NEXT:  apply [[WILLSETFN]](%0, %1) : $@convention(method) (Int, @inout DidSetWillSetTests) -> ()
+  // CHECK-NEXT: [[AADDR:%.*]] = struct_element_addr %1 : $*DidSetWillSetTests, #DidSetWillSetTests.a
   // CHECK-NEXT: assign %0 to [[AADDR]] : $*Int
   // CHECK-NEXT: // function_ref {{.*}}.DidSetWillSetTests.a.didset : Swift.Int
   // CHECK-NEXT: [[DIDSETFN:%.*]] = function_ref @_TFV10properties18DidSetWillSetTestsW1a{{.*}} : $@convention(method) (Int, @inout DidSetWillSetTests) -> ()
-  // CHECK-NEXT: apply [[DIDSETFN]]([[OLDVAL]], [[PB]]) : $@convention(method) (Int, @inout DidSetWillSetTests) -> ()
-
-  // CHECK-NEXT: copy_addr [[PB]] to %1 : $*DidSetWillSetTests
-
+  // CHECK-NEXT: apply [[DIDSETFN]]([[OLDVAL]], %1) : $@convention(method) (Int, @inout DidSetWillSetTests) -> ()
 
   // CHECK-LABEL: sil hidden @_TFV10properties18DidSetWillSetTestsC
   // CHECK: bb0(%0 : $Int, %1 : $@thin DidSetWillSetTests.Type):
diff --git a/test/SILGen/property_abstraction.swift b/test/SILGen/property_abstraction.swift
index 265cf06..99343cf 100644
--- a/test/SILGen/property_abstraction.swift
+++ b/test/SILGen/property_abstraction.swift
@@ -122,11 +122,9 @@
 }
 // CHECK: sil hidden @_TF20property_abstraction10setBuilder{{.*}} : $@convention(thin) <F where F : Factory, F.Product == MyClass> (@inout F) -> ()
 // CHECK: bb0(%0 : $*F):
-// CHECK:   [[FACTORY:%.*]] = alloc_box $F
-// CHECK:   [[PB:%.*]] = project_box [[FACTORY]]
 // CHECK:   [[F0:%.*]] = function_ref @_TFF20property_abstraction10setBuilder{{.*}} : $@convention(thin) () -> @owned MyClass
 // CHECK:   [[F1:%.*]] = thin_to_thick_function [[F0]]
 // CHECK:   [[SETTER:%.*]] = witness_method $F, #Factory.builder!setter.1
 // CHECK:   [[REABSTRACTOR:%.*]] = function_ref @_TTR
 // CHECK:   [[F2:%.*]] = partial_apply [[REABSTRACTOR]]([[F1]])
-// CHECK:   apply [[SETTER]]<F, MyClass>([[F2]], [[PB]])
+// CHECK:   apply [[SETTER]]<F, MyClass>([[F2]], %0)
diff --git a/test/SILGen/protocols.swift b/test/SILGen/protocols.swift
index 1f7fb61..2824ab8 100644
--- a/test/SILGen/protocols.swift
+++ b/test/SILGen/protocols.swift
@@ -82,16 +82,12 @@
 }
 // CHECK-LABEL: sil hidden @{{.*}}use_subscript_archetype_lvalue_get
 // CHECK: bb0(%0 : $*T, %1 : $Int):
-// CHECK: [[INOUTBOX:%[0-9]+]] = alloc_box $T, var, name "generic"
-// CHECK: [[PB:%.*]] = project_box [[INOUTBOX]]
 // CHECK: [[GUARANTEEDSTACK:%[0-9]+]] = alloc_stack $T
-// CHECK: copy_addr [[PB]] to [initialization]
+// CHECK: copy_addr %0 to [initialization] [[GUARANTEEDSTACK]] : $*T
 // CHECK: [[METH:%[0-9]+]] = witness_method $T, #SubscriptableGetSet.subscript!getter.1
 // CHECK-NEXT: [[APPLYRESULT:%[0-9]+]] = apply [[METH]]<T>(%1, [[GUARANTEEDSTACK]])
 // CHECK-NEXT: destroy_addr [[GUARANTEEDSTACK]] : $*T
 // CHECK-NEXT: dealloc_stack [[GUARANTEEDSTACK]] : $*T
-// CHECK-NEXT: copy_addr [[PB]] to %0 : $*T
-// CHECK-NEXT: strong_release [[INOUTBOX]] : $@box T
 // CHECK: return [[APPLYRESULT]]
 
 
@@ -100,11 +96,8 @@
 }
 // CHECK-LABEL: sil hidden @{{.*}}use_subscript_archetype_lvalue_set
 // CHECK: bb0(%0 : $*T, %1 : $Int):
-// CHECK: [[INOUTBOX:%[0-9]+]] = alloc_box $T
-// CHECK: [[PB:%.*]] = project_box [[INOUTBOX]]
 // CHECK: [[METH:%[0-9]+]] = witness_method $T, #SubscriptableGetSet.subscript!setter.1
-// CHECK-NEXT: apply [[METH]]<T>(%1, %1, [[PB]])
-// CHECK: strong_release [[INOUTBOX]]
+// CHECK-NEXT: apply [[METH]]<T>(%1, %1, %0)
 
 
 //===----------------------------------------------------------------------===//
@@ -195,11 +188,8 @@
 }
 // CHECK-LABEL: sil hidden @{{.*}}use_property_archetype_lvalue_set
 // CHECK: bb0(%0 : $*T, %1 : $Int):
-// CHECK: [[INOUTBOX:%[0-9]+]] = alloc_box $T
-// CHECK: [[PB:%.*]] = project_box [[INOUTBOX]]
 // CHECK: [[METH:%[0-9]+]] = witness_method $T, #PropertyWithGetterSetter.b!setter.1
-// CHECK-NEXT: apply [[METH]]<T>(%1, [[PB]])
-// CHECK: strong_release [[INOUTBOX]]
+// CHECK-NEXT: apply [[METH]]<T>(%1, %0)
 
 //===----------------------------------------------------------------------===//
 // Calling Initializers
@@ -383,12 +373,9 @@
     let b = t.p.b
 }
 // CHECK-LABEL: sil hidden @_TF9protocols27testExistentialPropertyRead
-// CHECK:      [[T:%.*]] = alloc_box $T
-// CHECK:      [[PB:%.*]] = project_box [[T]]
-// CHECK:      copy_addr %0 to [initialization] [[PB]] : $*T
 // CHECK:      [[P_TEMP:%.*]] = alloc_stack $PropertyWithGetterSetter
 // CHECK:      [[T_TEMP:%.*]] = alloc_stack $T
-// CHECK:      copy_addr [[PB]] to [initialization] [[T_TEMP]] : $*T
+// CHECK:      copy_addr %0 to [initialization] [[T_TEMP]] : $*T
 // CHECK:      [[P_GETTER:%.*]] = witness_method $T, #ExistentialProperty.p!getter.1 :
 // CHECK-NEXT: apply [[P_GETTER]]<T>([[P_TEMP]], [[T_TEMP]])
 // CHECK-NEXT: destroy_addr [[T_TEMP]]
@@ -410,15 +397,13 @@
   modify(&x.b)
 }
 // CHECK-LABEL: sil hidden @_TF9protocols14modifyPropertyuRxS_24PropertyWithGetterSetterrFRxT_
-// CHECK:      [[SELF_BOX:%.*]] = alloc_box $T
-// CHECK:      [[SELF:%.*]] = project_box %1 : $@box T
 // CHECK:      [[MODIFY_FN:%.*]] = function_ref @_TF9protocols6modifyFRSiT_
 // CHECK:      [[WITNESS_FN:%.*]] = witness_method $T, #PropertyWithGetterSetter.b!materializeForSet.1
 // CHECK:      [[RESULT:%.*]] = apply [[WITNESS_FN]]<T>
 // CHECK:      [[TEMPORARY:%.*]] = tuple_extract [[RESULT]]
 // CHECK:      [[CALLBACK:%.*]] = tuple_extract [[RESULT]]
 // CHECK:      [[TEMPORARY_ADDR_TMP:%.*]] = pointer_to_address [[TEMPORARY]] : $Builtin.RawPointer to [strict] $*Int
-// CHECK:      [[TEMPORARY_ADDR:%.*]] = mark_dependence [[TEMPORARY_ADDR_TMP]] : $*Int on [[SELF]] : $*T
+// CHECK:      [[TEMPORARY_ADDR:%.*]] = mark_dependence [[TEMPORARY_ADDR_TMP]] : $*Int on %0 : $*T
 // CHECK:      apply [[MODIFY_FN]]([[TEMPORARY_ADDR]])
 // CHECK:      switch_enum [[CALLBACK]] : $Optional<Builtin.RawPointer>, case #Optional.some!enumelt.1: bb1, case #Optional.none!enumelt: bb2
 // CHECK:    bb1([[CALLBACK_ADDR:%.*]] : $Builtin.RawPointer):
diff --git a/test/SILGen/types.swift b/test/SILGen/types.swift
index a5ecba7..4917863 100644
--- a/test/SILGen/types.swift
+++ b/test/SILGen/types.swift
@@ -27,11 +27,9 @@
     var x = x
     // CHECK: bb0([[X:%[0-9]+]] : $Int, [[THIS:%[0-9]+]] : $*S):
     member = x
-    // CHECK: [[THIS_LOCAL_ADDR:%[0-9]+]] = alloc_box $S
-    // CHECK: [[THIS_LOCAL:%[0-9]+]] = project_box [[THIS_LOCAL_ADDR]]
     // CHECK: [[XADDR:%[0-9]+]] = alloc_box $Int
     // CHECK: [[X:%[0-9]+]] = project_box [[XADDR]]
-    // CHECK: [[MEMBER:%[0-9]+]] = struct_element_addr [[THIS_LOCAL]] : $*S, #S.member
+    // CHECK: [[MEMBER:%[0-9]+]] = struct_element_addr [[THIS]] : $*S, #S.member
     // CHECK: copy_addr [[X]] to [[MEMBER]]
   }
 
diff --git a/test/SILOptimizer/allocbox_to_stack_with_false.swift b/test/SILOptimizer/allocbox_to_stack_with_false.swift
deleted file mode 100644
index 1f85f27..0000000
--- a/test/SILOptimizer/allocbox_to_stack_with_false.swift
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %target-swift-frontend -emit-sil %s -verify | %FileCheck %s
-
-// Make sure that materializations of computed properties such as 'false' and
-// 'true' don't leave needless stack allocations. <rdar://problem/15272642>
-
-// CHECK-LABEL: sil hidden @_TF28allocbox_to_stack_with_false1gFT_T_ : $@convention(thin) () -> () {
-// CHECK-NOT: alloc_stack
-// CHECK-NOT: dealloc_stack
-// CHECK: }
-func g() {
-  if false {}
-}
diff --git a/test/SILOptimizer/inout_deshadow.sil b/test/SILOptimizer/inout_deshadow.sil
deleted file mode 100644
index 8f87ff7..0000000
--- a/test/SILOptimizer/inout_deshadow.sil
+++ /dev/null
@@ -1,144 +0,0 @@
-// RUN: %target-sil-opt -enable-sil-verify-all %s -inout-deshadow | %FileCheck %s
-
-sil_stage canonical
-
-import Builtin
-import Swift
-
-protocol P {
-  func foo()
-}
-
-sil @takeInt : $@convention(method) (@inout Int64) -> ()
-
-sil @TrivialTest : $@convention(thin) (@inout Int64) -> () {
-bb0(%0 : $*Int64):
-  %1 = alloc_stack $Int64, var, name "a"               // users: %6, %2, %4, %5
-  copy_addr %0 to [initialization] %1 : $*Int64
-  %3 = function_ref @takeInt : $@convention(method) (@inout Int64) -> () // user: %4
-  %4 = apply %3(%1) : $@convention(method) (@inout Int64) -> ()
-  copy_addr %1 to %0 : $*Int64
-  dealloc_stack %1 : $*Int64
-  %7 = tuple ()                                   // user: %8
-  return %7 : $()
-}
-
-
-// CHECK-LABEL: sil @AddressOnlyTest
-sil @AddressOnlyTest : $@convention(thin) (@inout P) -> () {
-bb0(%0 : $*P):           // CHECK: bb0(%0 : $*P):
-  %1 = alloc_stack $P
-  copy_addr %0 to [initialization] %1 : $*P
-
-  // CHECK-NEXT: debug_value_addr %0
-  // CHECK-NEXT: open_existential_addr %0 : $*P
-  %3 = open_existential_addr %1 : $*P to $*@opened("01234567-89ab-cdef-0123-000000000000") P
-  %4 = witness_method $@opened("01234567-89ab-cdef-0123-000000000000") P, #P.foo!1, %3 : $*@opened("01234567-89ab-cdef-0123-000000000000") P : $@convention(witness_method) @callee_owned <T: P> (@inout T) -> ()
-  
-  // CHECK: apply
-  %5 = apply %4<@opened("01234567-89ab-cdef-0123-000000000000") P>(%3) : $@convention(witness_method) @callee_owned <T: P> (@inout T) -> ()
-  
-  copy_addr [take] %1 to %0 : $*P
-  dealloc_stack %1 : $*P
-
-  // CHECK-NEXT: tuple ()
-  %9 = tuple ()
-  // CHECK-NEXT: return
-  return %9 : $()
-}
-
-class C {
-}
-
-struct NontrivialStruct {
-  var a: Int
-  var b: C
-  func foo()
-}
-
-
-sil @takeNontrivial : $@convention(method) (@inout NontrivialStruct) -> ()
-
-// CHECK-LABEL: sil @NontrivialTest
-sil @NontrivialTest : $@convention(thin) (@inout NontrivialStruct) -> () {
-bb0(%0 : $*NontrivialStruct):
-// CHECK: bb0(%0 : $*NontrivialStruct):
-
-  %1 = alloc_stack $NontrivialStruct
-  copy_addr %0 to [initialization] %1 : $*NontrivialStruct
-
-  // CHECK-NEXT: debug_value_addr %0
-  // CHECK-NEXT: // function_ref takeNontrivial
-  // CHECK-NEXT: function_ref @takeNontrivial
-  %3 = function_ref @takeNontrivial : $@convention(method) (@inout NontrivialStruct) -> () // user: %4
-
-  // CHECK-NEXT: apply
-  %4 = apply %3(%1) : $@convention(method) (@inout NontrivialStruct) -> ()
-  copy_addr [take] %1 to %0 : $*NontrivialStruct
-  dealloc_stack %1 : $*NontrivialStruct
-
-  // CHECK-NEXT: tuple
-  %9 = tuple ()
-  // CHECK-NEXT: return
-  return %9 : $()
-}
-
-// Inout deshadowing should *not* deshadow inouts that are copied to temporaries for use by
-// @in arguments. <rdar://problem/16105449>
-
-sil @in_argument : $@convention(thin) (@in Any) -> ()
-
-// CHECK-LABEL: sil @inout_argument_passed_to_in_argument
-sil @inout_argument_passed_to_in_argument : $@convention(thin) (@inout Any) -> () {
-// CHECK:       bb0([[INOUT:%.*]] : $*Any):
-entry(%0 : $*Any):
-  %f = function_ref @in_argument : $@convention(thin) (@in Any) -> ()
-  %x = alloc_stack $Any
-  // CHECK:       copy_addr [[INOUT]] to [initialization]
-  copy_addr %0 to [initialization] %x : $*Any
-  %z = apply %f(%x) : $@convention(thin) (@in Any) -> ()
-  dealloc_stack %x : $*Any
-  return %z : $()
-}
-
-sil @makeError : $@convention(thin) () -> @owned Error
-
-struct MyStruct<T> {
-  @sil_stored var placeholder: T
-  @sil_stored var value: Bool
-  mutating func throwing(value: Bool) throws
-  init(placeholder: T, value: Bool)
-}
-
-// Verify that we deshadow in functions that throw.
-// CHECK-LABEL: throwing
-sil hidden @throwing : $@convention(method) <T> (Bool, @inout MyStruct<T>) -> @error Error {
-// CHECK: bb0
-bb0(%0 : $Bool, %1 : $*MyStruct<T>):
-  %2 = alloc_stack $MyStruct<T>
-  debug_value %0 : $Bool
-// CHECK-NOT: copy_addr
-  copy_addr %1 to [initialization] %2 : $*MyStruct<T>
-  %5 = struct_extract %0 : $Bool, #Bool._value
-  cond_br %5, bb1, bb2
-
-// CHECK: bb1
-bb1:
-  %7 = function_ref @makeError : $@convention(thin) () -> @owned Error
-  %8 = apply %7() : $@convention(thin) () -> @owned Error
-  %9 = builtin "willThrow"(%8 : $Error) : $()
-// CHECK-NOT: copy_addr
-  copy_addr [take] %2 to %1 : $*MyStruct<T>
-  dealloc_stack %2 : $*MyStruct<T>
-  throw %8 : $Error
-
-// CHECK: bb2
-bb2:
-  %12 = struct_element_addr %2 : $*MyStruct<T>, #MyStruct.value
-  store %0 to %12 : $*Bool
-// CHECK-NOT: copy_addr
-  copy_addr [take] %2 to %1 : $*MyStruct<T>
-  %15 = tuple ()
-  dealloc_stack %2 : $*MyStruct<T>
-  return %15 : $()
-}
diff --git a/test/SILOptimizer/ownership_model_eliminator.sil b/test/SILOptimizer/ownership_model_eliminator.sil
new file mode 100644
index 0000000..d8e5c80
--- /dev/null
+++ b/test/SILOptimizer/ownership_model_eliminator.sil
@@ -0,0 +1,58 @@
+// RUN: %target-sil-opt -ownership-model-eliminator %s | %FileCheck %s
+
+sil_stage canonical
+
+import Builtin
+
+sil @use_native_object : $@convention(thin) (@owned Builtin.NativeObject) -> ()
+sil @use_int32 : $@convention(thin) (Builtin.Int32) -> ()
+
+// CHECK-LABEL: sil @load : $@convention(thin) (@in Builtin.NativeObject, @in Builtin.Int32) -> () {
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.NativeObject, [[ARG2:%[0-9]+]] : $*Builtin.Int32):
+// CHECK: [[LOAD1:%[0-9]+]] = load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: apply {{%[0-9]+}}([[LOAD1]])
+// CHECK: [[LOAD2:%[0-9]+]] = load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: apply {{%[0-9]+}}([[LOAD2]])
+// CHECK: [[LOAD3:%[0-9]+]] = load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: retain_value [[LOAD3]]
+// CHECK: apply {{%[0-9]+}}([[LOAD3]])
+// CHECK: [[LOAD4:%[0-9]+]] = load [[ARG2]] : $*Builtin.Int32
+// CHECK: apply {{%[0-9]+}}([[LOAD4]])
+sil @load : $@convention(thin) (@in Builtin.NativeObject, @in Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $*Builtin.Int32):
+  %use_native_object_func = function_ref @use_native_object : $@convention(thin) (@owned Builtin.NativeObject) -> ()
+  %use_int32_func = function_ref @use_int32 : $@convention(thin) (Builtin.Int32) -> ()
+
+  %2 = load %0 : $*Builtin.NativeObject
+  apply %use_native_object_func(%2) : $@convention(thin) (@owned Builtin.NativeObject) -> ()
+
+  %3 = load [take] %0 : $*Builtin.NativeObject
+  apply %use_native_object_func(%3) : $@convention(thin) (@owned Builtin.NativeObject) -> ()
+
+  %4 = load [copy] %0 : $*Builtin.NativeObject
+  apply %use_native_object_func(%4) : $@convention(thin) (@owned Builtin.NativeObject) -> ()
+
+  %5 = load [trivial] %1 : $*Builtin.Int32
+  apply %use_int32_func(%5) : $@convention(thin) (Builtin.Int32) -> ()
+
+  %9999 = tuple()
+  return %9999 : $()
+}
+
+// CHECK-LABEL: sil @store : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject, @in Builtin.Int32, Builtin.Int32) -> ()
+// CHECK: bb0([[ARG1:%[0-9]+]] : $*Builtin.NativeObject, [[ARG2:%[0-9]+]] : $Builtin.NativeObject, [[ARG3:%[0-9]+]] : $*Builtin.Int32, [[ARG4:%[0-9]+]] : $Builtin.Int32):
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.NativeObject
+// CHECK: [[OLDVAL:%[0-9]+]] = load [[ARG1]] : $*Builtin.NativeObject
+// CHECK: store [[ARG2]] to [[ARG1]] : $*Builtin.NativeObject
+// CHECK: release_value [[OLDVAL]]
+// CHECK: store [[ARG4]] to [[ARG3]] : $*Builtin.Int32
+sil @store : $@convention(thin) (@in Builtin.NativeObject, Builtin.NativeObject, @in Builtin.Int32, Builtin.Int32) -> () {
+bb0(%0 : $*Builtin.NativeObject, %1 : $Builtin.NativeObject, %2 : $*Builtin.Int32, %3 : $Builtin.Int32):
+  store %1 to %0 : $*Builtin.NativeObject
+  store %1 to [init] %0 : $*Builtin.NativeObject
+  store %1 to [assign] %0 : $*Builtin.NativeObject
+  store %3 to [trivial] %2 : $*Builtin.Int32
+  %9999 = tuple()
+  return %9999 : $()
+}
diff --git a/test/SILOptimizer/sil_combine.sil b/test/SILOptimizer/sil_combine.sil
index 92458e5..86f62e8 100644
--- a/test/SILOptimizer/sil_combine.sil
+++ b/test/SILOptimizer/sil_combine.sil
@@ -3002,3 +3002,69 @@
   return %26 : $()
 }
 
+protocol PPP : class {
+  func foo()
+}
+
+class BBB: PPP {
+  @inline(never)
+  func foo()
+}
+
+final class XXX : BBB {
+  @inline(never)
+  override func foo()
+}
+
+// Check that sil-combine does not crash on this example and does not generate a wrong
+// upcast.
+// CHECK-LABEL: sil @silcombine_dont_generate_wrong_upcasts_during_devirt
+// CHECK-NOT: upcast
+// CHECK: witness_method $XXX, #PPP.foo!1 : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+// CHECK-NOT: upcast
+// CHECK: return
+sil @silcombine_dont_generate_wrong_upcasts_during_devirt: $@convention(thin) (@owned BBB) -> () {
+bb0(%0 : $BBB):
+  strong_retain %0 : $BBB
+  %3 = init_existential_ref %0 : $BBB : $BBB, $PPP
+  %5 = open_existential_ref %3 : $PPP to $@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP
+  %6 = witness_method $XXX, #PPP.foo!1, %5 : $@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  %7 = apply %6<@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP>(%5) : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  %8 = apply %6<@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP>(%5) : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  strong_release %3 : $PPP
+  %9 = tuple ()
+  strong_release %0 : $BBB
+  %11 = tuple ()
+  return %11 : $()
+}
+
+// Check that both applies can be devirtualized by means of propagating the concrete
+// type of the existential into witness_method and apply instructions.
+// CHECK-LABEL: sil @silcombine_devirt_both_applies_of_witness_method
+// CHECK-NOT: open_existential_ref
+// CHECK-NOT: witness_method
+// CHECK: [[FR1:%.*]] = function_ref @_TTWC4nix23XXXS_3PPPS_FS1_3foofT_T_
+// CHECK: apply [[FR1]](%0)
+// CHECK: [[FR2:%.*]] = function_ref @_TTWC4nix23XXXS_3PPPS_FS1_3foofT_T_
+// CHECK: apply [[FR2]](%0)
+// CHECK: return
+sil @silcombine_devirt_both_applies_of_witness_method : $@convention(thin) (@owned XXX) -> () {
+bb0(%0 : $XXX):
+  strong_retain %0 : $XXX
+  %3 = init_existential_ref %0 : $XXX : $XXX, $PPP
+  %5 = open_existential_ref %3 : $PPP to $@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP
+  %6 = witness_method $@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP, #PPP.foo!1, %5 : $@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  %7 = apply %6<@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP>(%5) : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  %8 = apply %6<@opened("0AC9A62E-926E-11E6-8BF5-685B35C48C83") PPP>(%5) : $@convention(witness_method) <τ_0_0 where τ_0_0 : PPP> (@guaranteed τ_0_0) -> ()
+  strong_release %3 : $PPP
+  %9 = tuple ()
+  strong_release %0 : $XXX
+  %11 = tuple ()
+  return %11 : $()
+}
+
+sil @_TTWC4nix23XXXS_3PPPS_FS1_3foofT_T_ : $@convention(witness_method) (@guaranteed XXX) -> ()
+
+sil_witness_table XXX: PPP module nix2 {
+  method #PPP.foo!1: @_TTWC4nix23XXXS_3PPPS_FS1_3foofT_T_	// protocol witness for PPP.foo() -> () in conformance XXX
+}
diff --git a/test/Sema/diag_unintended_optional_behavior.swift b/test/Sema/diag_unintended_optional_behavior.swift
index c18e1da..fa41983 100644
--- a/test/Sema/diag_unintended_optional_behavior.swift
+++ b/test/Sema/diag_unintended_optional_behavior.swift
@@ -59,17 +59,41 @@
   // expected-note@-3 {{explicitly cast to Any with 'as Any' to silence this warning}}
 }
 
+func takesCollectionOfAny(_ a: [Any], _ d: [String : Any]) {
+}
+
+func warnCollectionOfAny(_ a: [Int?], _ d: [String : Int?]) {
+  // https://bugs.swift.org/browse/SR-2928 - Collection casts from collections of optionals to collections of Any need custom handling
+  takesCollectionOfAny(a, d) // expected-warning {{expression implicitly coerced from 'Int?' to Any}}
+  // expected-note@-1 {{provide a default value to avoid this warning}}{{25-25= ?? <#default value#>}}
+  // expected-note@-2 {{force-unwrap the value to avoid this warning}}{{25-25=!}}
+  // expected-note@-3 {{explicitly cast to Any with 'as Any' to silence this warning}}{{25-25= as Any}}
+  // expected-warning@-4 {{expression implicitly coerced from 'Int?' to Any}}
+  // expected-note@-5 {{provide a default value to avoid this warning}}{{28-28= ?? <#default value#>}}
+  // expected-note@-6 {{force-unwrap the value to avoid this warning}}{{28-28=!}}
+  // expected-note@-7 {{explicitly cast to Any with 'as Any' to silence this warning}}{{28-28= as Any}}
+
+  // https://bugs.swift.org/browse/SR-2928 - Collection casts from collections of optionals to collections of Any need custom handling
+  takesCollectionOfAny(a as [Any], d as [String : Any]) // expected-warning {{expression implicitly coerced from 'Int?' to Any}}
+  // expected-note@-1 {{provide a default value to avoid this warning}}{{25-25= ?? <#default value#>}}
+  // expected-note@-2 {{force-unwrap the value to avoid this warning}}{{25-25=!}}
+  // expected-note@-3 {{explicitly cast to Any with 'as Any' to silence this warning}}{{25-25= as Any}}
+  // expected-warning@-4 {{expression implicitly coerced from 'Int?' to Any}}
+  // expected-note@-5 {{provide a default value to avoid this warning}}{{37-37= ?? <#default value#>}}
+  // expected-note@-6 {{force-unwrap the value to avoid this warning}}{{37-37=!}}
+  // expected-note@-7 {{explicitly cast to Any with 'as Any' to silence this warning}}{{37-37= as Any}}
+}
+
 func warnOptionalInStringInterpolationSegment(_ o : Int?) {
   print("Always some, Always some, Always some: \(o)")
   // expected-warning@-1 {{string interpolation produces a debug description for an optional value; did you mean to make this explicit?}}
-  // expected-note@-2 {{use '.debugDescription' to silence this warning}} {{52-52=.debugDescription}}
-  // expected-note@-3 {{use 'as' to explicitly cast to 'Int?' to silence this warning}} {{52-52= as Int?}}
+  // expected-note@-2 {{use 'String(describing:)' to silence this warning}} {{51-51=String(describing: }} {{52-52=)}} 
+  // expected-note@-3 {{provide a default value to avoid this warning}} {{52-52= ?? <#default value#>}}
   print("Always some, Always some, Always some: \(o.map { $0 + 1 })")
   // expected-warning@-1 {{string interpolation produces a debug description for an optional value; did you mean to make this explicit?}}
-  // expected-note@-2 {{use '.debugDescription' to silence this warning}} {{67-67=.debugDescription}}
-  // expected-note@-3 {{use 'as' to explicitly cast to 'Int?' to silence this warning}} {{67-67= as Int?}}
+  // expected-note@-2 {{use 'String(describing:)' to silence this warning}} {{51-51=String(describing: }} {{67-67=)}} 
+  // expected-note@-3 {{provide a default value to avoid this warning}} {{67-67= ?? <#default value#>}}
 
   print("Always some, Always some, Always some: \(o as Int?)") // No warning
   print("Always some, Always some, Always some: \(o.debugDescription)") // No warning.
 }
-
diff --git a/test/Sema/immutability.swift b/test/Sema/immutability.swift
index 4a475e8..6e99205 100644
--- a/test/Sema/immutability.swift
+++ b/test/Sema/immutability.swift
@@ -452,11 +452,11 @@
 }
 
 func test_recovery_missing_name_2(let: Int) {} // expected-error {{'let' as a parameter attribute is not allowed}}{{35-38=}} 
-// expected-error @-1 2{{expected ',' separator}} {{38-38=,}} expected-error @-1 2 {{expected parameter name followed by ':'}}
+// expected-error @-1 {{expected parameter name followed by ':'}}
 
 // <rdar://problem/16792027> compiler infinite loops on a really really mutating function
-struct F { // expected-note 2 {{in declaration of 'F'}}
-  mutating mutating mutating f() { // expected-error 2 {{duplicate modifier}} expected-note 2 {{modifier already specified here}} expected-error {{consecutive declarations on a line must be separated by ';'}} {{29-29=;}} expected-error 2 {{expected declaration}}
+struct F { // expected-note 1 {{in declaration of 'F'}}
+  mutating mutating mutating f() { // expected-error 2 {{duplicate modifier}} expected-note 2 {{modifier already specified here}} expected-error {{expected declaration}}
   }
   
   mutating nonmutating func g() {  // expected-error {{method may not be declared both mutating and nonmutating}} {{12-24=}}
diff --git a/test/SourceKit/CodeFormat/indent-computed-property.swift b/test/SourceKit/CodeFormat/indent-computed-property.swift
index 27e3332..f7e4b30 100644
--- a/test/SourceKit/CodeFormat/indent-computed-property.swift
+++ b/test/SourceKit/CodeFormat/indent-computed-property.swift
@@ -32,6 +32,10 @@
   }
 }
 
+class C3 {
+  var value : Int
+  {}
+}
 // RUN: %sourcekitd-test -req=format -line=1 -length=1 %s >%t.response
 // RUN: %sourcekitd-test -req=format -line=2 -length=1 %s >>%t.response
 // RUN: %sourcekitd-test -req=format -line=3 -length=1 %s >>%t.response
@@ -47,6 +51,7 @@
 // RUN: %sourcekitd-test -req=format -line=16 -length=1 %s >>%t.response
 // RUN: %sourcekitd-test -req=format -line=21 -length=1 %s >>%t.response
 // RUN: %sourcekitd-test -req=format -line=30 -length=1 %s >>%t.response
+// RUN: %sourcekitd-test -req=format -line=37 -length=1 %s >>%t.response
 // RUN: %FileCheck --strict-whitespace %s <%t.response
 
 // CHECK: key.sourcetext: "class Foo {"
@@ -66,3 +71,4 @@
 // CHECK: key.sourcetext: "    didSet {"
                           "    didSet {"
 // CHECK: key.sourcetext: "        print()"
+// CHECK: key.sourcetext: "  {}"
diff --git a/test/SourceKit/CursorInfo/rdar_18677108-2.swift.response b/test/SourceKit/CursorInfo/rdar_18677108-2.swift.response
index 8cc9e79..8ddb749 100644
--- a/test/SourceKit/CursorInfo/rdar_18677108-2.swift.response
+++ b/test/SourceKit/CursorInfo/rdar_18677108-2.swift.response
@@ -1,41 +1,20 @@
 [
   {
-    key.line: 6,
-    key.column: 2,
-    key.filepath: rdar_18677108-2-a.swift,
-    key.severity: source.diagnostic.severity.error,
-    key.description: "expected ',' separator",
-    key.diagnostic_stage: source.diagnostic.stage.swift.parse,
-    key.fixits: [
-      {
-        key.offset: 184,
-        key.length: 0,
-        key.sourcetext: ","
-      }
-    ]
-  },
-  {
-    key.line: 6,
-    key.column: 2,
-    key.filepath: rdar_18677108-2-a.swift,
-    key.severity: source.diagnostic.severity.error,
-    key.description: "expected ',' separator",
-    key.diagnostic_stage: source.diagnostic.stage.swift.parse,
-    key.fixits: [
-      {
-        key.offset: 184,
-        key.length: 0,
-        key.sourcetext: ","
-      }
-    ]
-  },
-  {
     key.line: 7,
     key.column: 1,
     key.filepath: rdar_18677108-2-a.swift,
     key.severity: source.diagnostic.severity.error,
-    key.description: "expected expression in list of expressions",
-    key.diagnostic_stage: source.diagnostic.stage.swift.parse
+    key.description: "expected ')' in expression list",
+    key.diagnostic_stage: source.diagnostic.stage.swift.parse,
+    key.diagnostics: [
+      {
+        key.line: 5,
+        key.column: 46,
+        key.filepath: rdar_18677108-2-a.swift,
+        key.severity: source.diagnostic.severity.note,
+        key.description: "to match this opening '('"
+      }
+    ]
   },
   {
     key.line: 7,
@@ -59,15 +38,15 @@
     key.column: 1,
     key.filepath: rdar_18677108-2-a.swift,
     key.severity: source.diagnostic.severity.error,
-    key.description: "expected declaration",
+    key.description: "expected '}' in class",
     key.diagnostic_stage: source.diagnostic.stage.swift.parse,
     key.diagnostics: [
       {
-        key.line: 1,
-        key.column: 7,
+        key.line: 2,
+        key.column: 1,
         key.filepath: rdar_18677108-2-a.swift,
         key.severity: source.diagnostic.severity.note,
-        key.description: "in declaration of 'CameraController'"
+        key.description: "to match this opening '{'"
       }
     ]
   }
diff --git a/test/api-digester/Inputs/cake.swift b/test/api-digester/Inputs/cake.swift
new file mode 100644
index 0000000..b956e7b
--- /dev/null
+++ b/test/api-digester/Inputs/cake.swift
@@ -0,0 +1,4 @@
+public struct S1 {
+  public func foo1() {}
+  mutating public func foo2() {}
+}
\ No newline at end of file
diff --git a/test/api-digester/Inputs/cake1.swift b/test/api-digester/Inputs/cake1.swift
new file mode 100644
index 0000000..18e03f7
--- /dev/null
+++ b/test/api-digester/Inputs/cake1.swift
@@ -0,0 +1,4 @@
+public struct S1 {
+  mutating public func foo1() {}
+  mutating public func foo2() {}
+}
\ No newline at end of file
diff --git a/test/api-digester/Outputs/Cake.txt b/test/api-digester/Outputs/Cake.txt
new file mode 100644
index 0000000..19ba51d
--- /dev/null
+++ b/test/api-digester/Outputs/Cake.txt
@@ -0,0 +1,11 @@
+
+==================================================== Removed Decls ====================================================
+
+==================================================== Moved Decls ====================================================
+
+==================================================== Renamed Decls ====================================================
+
+==================================================== Type Changes ====================================================
+
+==================================================== Decl Attribute changes ====================================================
+FuncS1.foo1() is now mutating
diff --git a/test/api-digester/Outputs/cake.json b/test/api-digester/Outputs/cake.json
new file mode 100644
index 0000000..bff7b72
--- /dev/null
+++ b/test/api-digester/Outputs/cake.json
@@ -0,0 +1,67 @@
+{
+  "kind": "Root",
+  "name": "TopLevel",
+  "printedName": "TopLevel",
+  "children": [
+    {
+      "kind": "TypeDecl",
+      "name": "S1",
+      "printedName": "S1",
+      "declKind": "Struct",
+      "usr": "s:V4cake2S1",
+      "location": "",
+      "moduleName": "cake",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "foo1",
+          "printedName": "foo1()",
+          "declKind": "Func",
+          "usr": "s:FV4cake2S14foo1FT_T_",
+          "location": "",
+          "moduleName": "cake",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "foo2",
+          "printedName": "foo2()",
+          "declKind": "Func",
+          "usr": "s:FV4cake2S14foo2FT_T_",
+          "location": "",
+          "moduleName": "cake",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FV4cake2S1cFT_S0_",
+          "location": "",
+          "moduleName": "cake",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "S1",
+              "printedName": "S1"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test/api-digester/compare-dump.swift b/test/api-digester/compare-dump.swift
new file mode 100644
index 0000000..63b443d
--- /dev/null
+++ b/test/api-digester/compare-dump.swift
@@ -0,0 +1,9 @@
+// RUN: rm -rf %t.mod && mkdir -p %t.mod
+// RUN: rm -rf %t.sdk && mkdir -p %t.sdk
+// RUN: rm -rf %t.module-cache && mkdir -p %t.module-cache
+// RUN: %swift -emit-module -o %t.mod/cake.swiftmodule %S/Inputs/cake.swift -parse-as-library
+// RUN: %swift -emit-module -o %t.mod/cake1.swiftmodule %S/Inputs/cake1.swift -parse-as-library
+// RUN: %api-digester -dump-sdk -module cake -o %t.dump.json -module-cache-path %t.module-cache -sdk %t.sdk -swift-version 3.0 -I %t.mod
+// RUN: %api-digester -dump-sdk -module cake1 -o %t.dump1.json -module-cache-path %t.module-cache -sdk %t.sdk -swift-version 3.0 -I %t.mod
+// RUN: %api-digester -diagnose-sdk --input-paths %t.dump.json -input-paths %t.dump1.json > %t.result
+// RUN: diff -u %S/Outputs/Cake.txt %t.result
diff --git a/test/api-digester/dump-module.swift b/test/api-digester/dump-module.swift
new file mode 100644
index 0000000..9673dc5
--- /dev/null
+++ b/test/api-digester/dump-module.swift
@@ -0,0 +1,7 @@
+// RUN: rm -rf %t.mod && mkdir -p %t.mod
+// RUN: rm -rf %t.sdk && mkdir -p %t.sdk
+// RUN: rm -rf %t.module-cache && mkdir -p %t.module-cache
+// RUN: %swift -emit-module -o %t.mod/cake.swiftmodule %S/Inputs/cake.swift -parse-as-library
+// RUN: %api-digester -dump-sdk -module cake -o %t.dump.json -module-cache-path %t.module-cache -sdk %t.sdk -swift-version 3.0 -I %t.mod
+// RUN: diff -u %t.dump.json %S/Outputs/cake.json
+// RUN: %api-digester -diagnose-sdk --input-paths %t.dump.json -input-paths %S/Outputs/cake.json
diff --git a/test/api-digester/lit.local.cfg b/test/api-digester/lit.local.cfg
new file mode 100644
index 0000000..bae02b6
--- /dev/null
+++ b/test/api-digester/lit.local.cfg
@@ -0,0 +1,6 @@
+if 'OS=macosx' not in config.available_features:
+    config.unsupported = True
+
+else:
+    config.swift_api_digester = config.inferSwiftBinary('swift-api-digester')
+    config.substitutions.append(('%api-digester', config.swift_api_digester))
diff --git a/test/api-digester/source-stability.swift b/test/api-digester/source-stability.swift
new file mode 100644
index 0000000..02ee315
--- /dev/null
+++ b/test/api-digester/source-stability.swift
@@ -0,0 +1,8 @@
+// REQUIRES: OS=macosx
+// RUN: rm -rf %S/tmp && mkdir %S/tmp && mkdir %S/tmp/module-cache && mkdir %S/tmp/dummy.sdk
+// RUN: %api-digester -dump-sdk -module Swift -o %S/tmp/current-stdlib.json -module-cache-path %S/tmp/module-cache -sdk %S/tmp/dummy.sdk -swift-version 3.0
+// RUN: %api-digester -diagnose-sdk -input-paths %S/stdlib-stable.json -input-paths %S/tmp/current-stdlib.json >> %S/tmp/changes.txt
+// RUN: %clang -E -P -x c %S/source-stability.swift.expected -o - | sed '/^\s*$/d' > %S/tmp/source-stability.swift.expected
+// RUN: %clang -E -P -x c %S/tmp/changes.txt -o - | sed '/^\s*$/d' > %S/tmp/changes.txt.tmp
+// RUN: diff -u %S/tmp/source-stability.swift.expected %S/tmp/changes.txt.tmp
+// RUN: rm -rf %S/tmp
diff --git a/test/api-digester/source-stability.swift.expected b/test/api-digester/source-stability.swift.expected
new file mode 100644
index 0000000..90b4cc8
--- /dev/null
+++ b/test/api-digester/source-stability.swift.expected
@@ -0,0 +1,22 @@
+
+==================================================== Removed Decls ====================================================
+Protocol BidirectionalIndexable has been removed (deprecated)
+Protocol ExpressibleByStringInterpolation has been removed (deprecated)
+Protocol Indexable has been removed (deprecated)
+Protocol IndexableBase has been removed (deprecated)
+Protocol MutableIndexable has been removed (deprecated)
+Protocol RandomAccessIndexable has been removed (deprecated)
+Protocol RangeReplaceableIndexable has been removed (deprecated)
+
+==================================================== Moved Decls ====================================================
+// rdar://28456614 Swift 3 breaking change: static function 'abs' removed from Double/Float/Float80/CGFloat
+Func Double.abs(_:) has been moved to Func abs(_:)
+Func Float.abs(_:) has been moved to Func abs(_:)
+Func Float80.abs(_:) has been moved to Func abs(_:)
+
+==================================================== Renamed Decls ====================================================
+
+==================================================== Type Changes ====================================================
+Func UnsafePointer.withMemoryRebound(to:capacity:_:) has 3rd parameter type change from (UnsafeMutablePointer<T>) throws -> Result to (UnsafePointer<T>) throws -> Result
+
+==================================================== Decl Attribute changes ====================================================
\ No newline at end of file
diff --git a/test/api-digester/stdlib-stable.json b/test/api-digester/stdlib-stable.json
new file mode 100644
index 0000000..ac8f1a5
--- /dev/null
+++ b/test/api-digester/stdlib-stable.json
@@ -0,0 +1,101624 @@
+{
+  "kind": "Root",
+  "name": "TopLevel",
+  "printedName": "TopLevel",
+  "children": [
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafePointer",
+      "printedName": "UnsafePointer",
+      "declKind": "Struct",
+      "usr": "s:SP",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Distance",
+          "printedName": "Distance",
+          "declKind": "TypeAlias",
+          "usr": "s:SP8Distance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFVs13OpaquePointerGSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFGSqVs13OpaquePointer_GSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFT10bitPatternSi_GSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFT10bitPatternSu_GSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFGSPx_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFGSqGSPx__GSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFGSpx_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSPcFGSqGSpx__GSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pointee",
+          "printedName": "pointee",
+          "declKind": "Var",
+          "usr": "s:vSP7pointeex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Pointee"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg7pointeex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withMemoryRebound",
+          "printedName": "withMemoryRebound(to:capacity:_:)",
+          "declKind": "Func",
+          "usr": "s:FSP17withMemoryReboundu0_rFzT2toMqd__8capacitySiFzGSpqd___qd_0__qd_0_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<T>) throws -> Result",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Result"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<T>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<T>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "T"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSP9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "successor",
+          "printedName": "successor()",
+          "declKind": "Func",
+          "usr": "s:FSP9successorFT_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "predecessor",
+          "printedName": "predecessor()",
+          "declKind": "Func",
+          "usr": "s:FSP11predecessorFT_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSP8distanceFT2toGSPx__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSP8advancedFT2bySi_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:SP6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSP16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSP12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "summary",
+          "printedName": "summary",
+          "declKind": "Var",
+          "usr": "s:vSP7summarySS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg7summarySS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSP25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSPg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "BidirectionalCollection",
+      "printedName": "BidirectionalCollection",
+      "declKind": "Protocol",
+      "usr": "s:Ps23BidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FPs23BidirectionalCollection5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FPs23BidirectionalCollection9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vPs23BidirectionalCollection4lastGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs23BidirectionalCollectiong4lastGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Self.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vesRxs23BidirectionalCollectionwx7IndiceszGVs27DefaultBidirectionalIndicesx_wx5IndexzWxS0_11SubSequence8Iterator7Element_WxS0_7Indices_zGS1_x_WxS0_13IndexDistance_zSiWxS0_S2__zWxS0_S3_S4_S5__WxS0_S3__zGS1_x_WxS0_8_Element_zWxS0_S3_S4_S5__WxS0_S4__zGVs16IndexingIteratorGS1_x__WxS0_S6_S2__zWxS0_S3_S4_S5__WxS0_S6_S3__zGS1_x_WxS0_S6_S8__zWxS0_S3_S4_S5__WxS0_S6_S4__zGS9_GS1_x__WxS0_S7_18IntegerLiteralType_zSiWxS0_S7_6Stride_zSiWxS0_S7_19_DisabledRangeIndex_zSiWxS0_S3_S2__zWxS0_S3_S4_S5__WxS0_S3_S3__zGS1_x_WxS0_S3_S8__zWxS0_S3_S4_S5__WxS0_S3_S4__zGS9_GS1_x__WxS0_S4_S5__zWxS0_S3_S4_S5__WxS0_S6_S4_S5__zWxS0_S3_S4_S5__WxS0_S7_S11_S10__zSirS_7indicesGS1_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs23BidirectionalCollectionwx7IndiceszGVs27DefaultBidirectionalIndicesx_wx5IndexzWxS0_11SubSequence8Iterator7Element_WxS0_7Indices_zGS1_x_WxS0_13IndexDistance_zSiWxS0_S2__zWxS0_S3_S4_S5__WxS0_S3__zGS1_x_WxS0_8_Element_zWxS0_S3_S4_S5__WxS0_S4__zGVs16IndexingIteratorGS1_x__WxS0_S6_S2__zWxS0_S3_S4_S5__WxS0_S6_S3__zGS1_x_WxS0_S6_S8__zWxS0_S3_S4_S5__WxS0_S6_S4__zGS9_GS1_x__WxS0_S7_18IntegerLiteralType_zSiWxS0_S7_6Stride_zSiWxS0_S7_19_DisabledRangeIndex_zSiWxS0_S3_S2__zWxS0_S3_S4_S5__WxS0_S3_S3__zGS1_x_WxS0_S3_S8__zWxS0_S3_S4_S5__WxS0_S3_S4__zGS9_GS1_x__WxS0_S4_S5__zWxS0_S3_S4_S5__WxS0_S6_S4_S5__zWxS0_S3_S4_S5__WxS0_S7_S11_S10__zSirS_g7indicesGS1_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popLast",
+          "printedName": "popLast()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxzwx11SubSequencerS_7popLastFT_GSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxzwx11SubSequencerS_10removeLastFT_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxzwx11SubSequencerS_10removeLastFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs23BidirectionalCollection8dropLastFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs23BidirectionalCollection6suffixFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vEsPs23BidirectionalCollection4lastGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs23BidirectionalCollectiong4lastGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Self.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionWx8Iterator7Element_S_rS_6joinedFT_GVs30FlattenBidirectionalCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollection",
+              "printedName": "FlattenBidirectionalCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vEsPs23BidirectionalCollection4lazyGVs27LazyBidirectionalCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyBidirectionalCollection",
+              "printedName": "LazyBidirectionalCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs23BidirectionalCollectiong4lazyGVs27LazyBidirectionalCollectionx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vesRxs23BidirectionalCollectionxs22LazyCollectionProtocolrS_4lazyx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolrS_g4lazyx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reversed",
+          "printedName": "reversed()",
+          "declKind": "Func",
+          "usr": "s:FEsPs23BidirectionalCollection8reversedFT_GVs18ReversedCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedCollection",
+              "printedName": "ReversedCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_Integer",
+      "printedName": "_Integer",
+      "declKind": "Protocol",
+      "usr": "s:Ps8_Integer",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Dictionary",
+      "printedName": "Dictionary",
+      "declKind": "Struct",
+      "usr": "s:Vs10Dictionary",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(key: Key, value: Value)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs10DictionarycFT_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Dictionary",
+              "printedName": "Dictionary<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(minimumCapacity:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs10DictionarycFT15minimumCapacitySi_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Dictionary",
+              "printedName": "Dictionary<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary10startIndexGVs15DictionaryIndexxq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg10startIndexGVs15DictionaryIndexxq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryIndex",
+                  "printedName": "DictionaryIndex<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary8endIndexGVs15DictionaryIndexxq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg8endIndexGVs15DictionaryIndexxq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryIndex",
+                  "printedName": "DictionaryIndex<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary5indexFT5afterGVs15DictionaryIndexxq___GS0_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(forKey:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary5indexFT6forKeyx_GSqGVs15DictionaryIndexxq___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "DictionaryIndex<Key, Value>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryIndex",
+                  "printedName": "DictionaryIndex<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Key",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "updateValue",
+          "printedName": "updateValue(_:forKey:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary11updateValueFTq_6forKeyx_GSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Value?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Value"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Key",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary6removeFT2atGVs15DictionaryIndexxq___T3keyx5valueq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "(key: Key, value: Value)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeValue",
+          "printedName": "removeValue(forKey:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary11removeValueFT6forKeyx_GSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Value?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Key",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary12makeIteratorFT_GVs18DictionaryIteratorxq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIterator",
+              "printedName": "DictionaryIterator<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(dictionaryLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs10DictionarycFt17dictionaryLiteralGSaTxq____GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Dictionary",
+              "printedName": "Dictionary<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[(Key, Value)]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Key, Value)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "keys",
+          "printedName": "keys",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary4keysGVs17LazyMapCollectionGS_xq__x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapCollection",
+              "printedName": "LazyMapCollection<Dictionary<Key, Value>, Key>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg4keysGVs17LazyMapCollectionGS_xq__x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Dictionary<Key, Value>, Key>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Dictionary",
+                      "printedName": "Dictionary<Key, Value>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Key",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Hashable",
+                              "printedName": "Hashable"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Value"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "values",
+          "printedName": "values",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary6valuesGVs17LazyMapCollectionGS_xq__q__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapCollection",
+              "printedName": "LazyMapCollection<Dictionary<Key, Value>, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg6valuesGVs17LazyMapCollectionGS_xq__q__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Dictionary<Key, Value>, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Dictionary",
+                      "printedName": "Dictionary<Key, Value>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Key",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Hashable",
+                              "printedName": "Hashable"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Value"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<Dictionary<Key, Value>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIterator",
+              "printedName": "DictionaryIterator<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Dictionary<Key, Value>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Key",
+          "printedName": "Key",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary3Key",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Key",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Value",
+          "printedName": "Value",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10Dictionary5Value",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Value"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs10Dictionary12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10Dictionaryg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Dictionary",
+                  "printedName": "Dictionary<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popFirst",
+          "printedName": "popFirst()",
+          "declKind": "Func",
+          "usr": "s:FVs10Dictionary8popFirstFT_GSqT3keyx5valueq___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(key: Key, value: Value)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(key: Key, value: Value)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "updateValue",
+          "printedName": "updateValue(_:forKey:)",
+          "declKind": "Func",
+          "usr": "s:Fes0_Rxs8Hashablexs20_AnyHashableProtocolrVs10Dictionary11updateValueuRd__S_rFTq_6forKeyqd___GSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Value?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Value"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "ConcreteKey",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeValue",
+          "printedName": "removeValue(forKey:)",
+          "declKind": "Func",
+          "usr": "s:Fes0_Rxs8Hashablexs20_AnyHashableProtocolrVs10Dictionary11removeValueuRd__S_rFT6forKeyqd___GSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Value?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "ConcreteKey",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenCollection",
+      "printedName": "FlattenCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs17FlattenCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17FlattenCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollectionIndex",
+              "printedName": "FlattenCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17FlattenCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs17FlattenCollectioncFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollection",
+              "printedName": "FlattenCollection<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs17FlattenCollection12makeIteratorFT_GVs15FlattenIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17FlattenCollection10startIndexGVs22FlattenCollectionIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollectionIndex",
+              "printedName": "FlattenCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17FlattenCollectiong10startIndexGVs22FlattenCollectionIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollectionIndex",
+                  "printedName": "FlattenCollectionIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17FlattenCollection8endIndexGVs22FlattenCollectionIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollectionIndex",
+              "printedName": "FlattenCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17FlattenCollectiong8endIndexGVs22FlattenCollectionIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollectionIndex",
+                  "printedName": "FlattenCollectionIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs17FlattenCollection5indexFT5afterGVs22FlattenCollectionIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollectionIndex",
+              "printedName": "FlattenCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollectionIndex",
+              "printedName": "FlattenCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs17FlattenCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17FlattenCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs17FlattenCollection7forEachFzFzWx8Iterator7ElementS0_S1__T_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Base.Iterator.Element.Iterator.Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Base.Iterator.Element.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17FlattenCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<FlattenCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17FlattenCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17FlattenCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<FlattenCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SetAlgebra",
+      "printedName": "SetAlgebra",
+      "declKind": "Protocol",
+      "usr": "s:Ps10SetAlgebra",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FPs10SetAlgebracFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra8containsFwx7ElementSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "union",
+          "printedName": "union(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra5unionFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "intersection",
+          "printedName": "intersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra12intersectionFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "symmetricDifference",
+          "printedName": "symmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra19symmetricDifferenceFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra6insertFwx7ElementT8insertedSb17memberAfterInsertwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(inserted: Bool, memberAfterInsert: Self.Element)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra6removeFwx7ElementGSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "update",
+          "printedName": "update(with:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra6updateFT4withwx7Element_GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formUnion",
+          "printedName": "formUnion(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra9formUnionFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIntersection",
+          "printedName": "formIntersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra16formIntersectionFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSymmetricDifference",
+          "printedName": "formSymmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra23formSymmetricDifferenceFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra11subtractingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSubset",
+          "printedName": "isSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra8isSubsetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isDisjoint",
+          "printedName": "isDisjoint(with:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra10isDisjointFT4withx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSuperset",
+          "printedName": "isSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra10isSupersetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vPs10SetAlgebra7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs10SetAlgebrag7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SetAlgebra",
+                      "printedName": "SetAlgebra"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs10SetAlgebra8subtractFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FEsPs10SetAlgebracuRd__s8Sequencewx7ElementzWd__8Iterator7Element_rFqd__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FEsPs10SetAlgebracFt12arrayLiteralGSawx7Element__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra8subtractFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSubset",
+          "printedName": "isSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra8isSubsetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSuperset",
+          "printedName": "isSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra10isSupersetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isDisjoint",
+          "printedName": "isDisjoint(with:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra10isDisjointFT4withx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra11subtractingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vEsPs10SetAlgebra7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10SetAlgebrag7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SetAlgebra",
+                      "printedName": "SetAlgebra"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSuperset",
+          "printedName": "isStrictSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra16isStrictSupersetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSubset",
+          "printedName": "isStrictSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10SetAlgebra14isStrictSubsetFT2ofx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetAlgebra",
+                  "printedName": "SetAlgebra"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UInt32",
+      "printedName": "UInt32",
+      "declKind": "Struct",
+      "usr": "s:Vs6UInt32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt329bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3212littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3211byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt323maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt32g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt32",
+                      "printedName": "UInt32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt323minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt32g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt32",
+                      "printedName": "UInt32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt3218IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt326Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt329hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3211descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt3215addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt3220subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt3220multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt3218divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt3221remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt329toUIntMaxFT_Vs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt328toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFT10bitPatternVs5Int32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt328allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt32g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt32",
+                      "printedName": "UInt32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signBitIndex",
+          "printedName": "signBitIndex",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3212signBitIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g12signBitIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "countTrailingZeros",
+          "printedName": "countTrailingZeros",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3218countTrailingZerosSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g18countTrailingZerosSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3212customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt3225customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt32g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt32cFScS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Equatable",
+      "printedName": "Equatable",
+      "declKind": "Protocol",
+      "usr": "s:Ps9Equatable",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RangeReplaceableRandomAccessSlice",
+      "printedName": "RangeReplaceableRandomAccessSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs33RangeReplaceableRandomAccessSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33RangeReplaceableRandomAccessSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33RangeReplaceableRandomAccessSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs33RangeReplaceableRandomAccessSlice10startIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33RangeReplaceableRandomAccessSliceg10startIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableRandomAccessSlice",
+                  "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs33RangeReplaceableRandomAccessSlice8endIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33RangeReplaceableRandomAccessSliceg8endIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableRandomAccessSlice",
+                  "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33RangeReplaceableRandomAccessSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableRandomAccessSlice",
+              "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice5indexFT5afterwxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice9formIndexFT5afterRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice5indexFT6beforewxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice9formIndexFT6beforeRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice8distanceFT4fromwxPs13IndexableBase5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableRandomAccessSlice",
+              "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlicecFT9repeatingwxPs13IndexableBase8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableRandomAccessSlice",
+              "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlicecuRd__s8SequencewxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableRandomAccessSlice",
+              "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice15replaceSubrangeuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFTGVs5RangewxPS1_5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice6insertFTwxPs13IndexableBase8_Element2atwxPS0_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice6insertuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwxPS1_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice6removeFT2atwxPs13IndexableBase5Index_wxPS0_8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlice14removeSubrangeFGVs5RangewxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33RangeReplaceableRandomAccessSlicecFT4basex6boundsGVs5RangewxPs13IndexableBase5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableRandomAccessSlice",
+              "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs33RangeReplaceableRandomAccessSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33RangeReplaceableRandomAccessSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableRandomAccessSlice",
+                  "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33RangeReplaceableRandomAccessSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<RangeReplaceableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableRandomAccessSlice",
+                  "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33RangeReplaceableRandomAccessSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<RangeReplaceableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableRandomAccessSlice",
+                  "printedName": "RangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyMapBidirectionalCollection",
+      "printedName": "LazyMapBidirectionalCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs30LazyMapBidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection5firstGSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong5firstGSqq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection4lastGSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong4lastGSqq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs30LazyMapBidirectionalCollection12makeIteratorFT_GVs15LazyMapIteratorwx8Iteratorq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs30LazyMapBidirectionalCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30LazyMapBidirectionalCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<LazyMapBidirectionalCollection<Base, Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapBidirectionalCollection",
+                  "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapBidirectionalCollection",
+              "printedName": "LazyMapBidirectionalCollection<Base, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30LazyMapBidirectionalCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DefaultIndices",
+      "printedName": "DefaultIndices",
+      "declKind": "Struct",
+      "usr": "s:Vs14DefaultIndices",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14DefaultIndices5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14DefaultIndices10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14DefaultIndicesg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14DefaultIndices8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14DefaultIndicesg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14DefaultIndices11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indexable",
+                      "printedName": "Indexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs14DefaultIndices5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs14DefaultIndices9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Elements.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14DefaultIndices7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indexable",
+                      "printedName": "Indexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs14DefaultIndices7indicesGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Elements"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14DefaultIndicesg7indicesGS_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14DefaultIndices13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14DefaultIndices8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<DefaultIndices<Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ReversedIndex",
+      "printedName": "ReversedIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs13ReversedIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13ReversedIndexcFwx5IndexGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs13ReversedIndex4basewx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13ReversedIndexg4basewx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedIndex",
+                  "printedName": "ReversedIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ImplicitlyUnwrappedOptional",
+      "printedName": "ImplicitlyUnwrappedOptional",
+      "declKind": "Enum",
+      "usr": "s:SQ",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "none",
+          "printedName": "none",
+          "declKind": "EnumElement",
+          "usr": "s:FSQ4noneurFMGSQx_GSQx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "GenericFunction",
+              "printedName": "<Wrapped> (ImplicitlyUnwrappedOptional<Wrapped>.Type) -> ImplicitlyUnwrappedOptional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ImplicitlyUnwrappedOptional",
+                  "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "ImplicitlyUnwrappedOptional<Wrapped>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ImplicitlyUnwrappedOptional",
+                      "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "some",
+          "printedName": "some",
+          "declKind": "EnumElement",
+          "usr": "s:FSQ4someurFMGSQx_FxGSQx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "GenericFunction",
+              "printedName": "<Wrapped> (ImplicitlyUnwrappedOptional<Wrapped>.Type) -> (Wrapped) -> ImplicitlyUnwrappedOptional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Wrapped) -> ImplicitlyUnwrappedOptional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ImplicitlyUnwrappedOptional",
+                      "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "ImplicitlyUnwrappedOptional<Wrapped>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ImplicitlyUnwrappedOptional",
+                      "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSQcFxGSQx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ImplicitlyUnwrappedOptional",
+              "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Wrapped"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Wrapped"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nilLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSQcFT10nilLiteralT__GSQx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ImplicitlyUnwrappedOptional",
+              "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Wrapped"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSQ11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSQg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ImplicitlyUnwrappedOptional",
+                  "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSQ16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSQg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ImplicitlyUnwrappedOptional",
+                  "printedName": "ImplicitlyUnwrappedOptional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UInt64",
+      "printedName": "UInt64",
+      "declKind": "Struct",
+      "usr": "s:Vs6UInt64",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt649bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6412littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6411byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt643maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt64g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt64",
+                      "printedName": "UInt64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt643minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt64g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt64",
+                      "printedName": "UInt64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt6418IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt646Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt649hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6411descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt6415addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt6420subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt6420multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt6418divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt6421remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt649toUIntMaxFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt648toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFT10bitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt648allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt64g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt64",
+                      "printedName": "UInt64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signBitIndex",
+          "printedName": "signBitIndex",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6412signBitIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g12signBitIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "countTrailingZeros",
+          "printedName": "countTrailingZeros",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6418countTrailingZerosSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g18countTrailingZerosSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6412customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt6425customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt64g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt64cFScS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeMutablePointer",
+      "printedName": "UnsafeMutablePointer",
+      "declKind": "Struct",
+      "usr": "s:Sp",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Distance",
+          "printedName": "Distance",
+          "declKind": "TypeAlias",
+          "usr": "s:Sp8Distance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFVs13OpaquePointerGSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFGSqVs13OpaquePointer_GSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFT10bitPatternSi_GSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFT10bitPatternSu_GSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFGSpx_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFGSqGSpx__GSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(mutating:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFT8mutatingGSPx__GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(mutating:)",
+          "declKind": "Constructor",
+          "usr": "s:FSpcFT8mutatingGSqGSPx___GSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "allocate",
+          "printedName": "allocate(capacity:)",
+          "declKind": "Func",
+          "usr": "s:ZFSp8allocateFT8capacitySi_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "deallocate",
+          "printedName": "deallocate(capacity:)",
+          "declKind": "Func",
+          "usr": "s:FSp10deallocateFT8capacitySi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pointee",
+          "printedName": "pointee",
+          "declKind": "Var",
+          "usr": "s:vSp7pointeex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Pointee"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg7pointeex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSps7pointeex",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout UnsafeMutablePointer<Pointee>"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initialize",
+          "printedName": "initialize(to:count:)",
+          "declKind": "Func",
+          "usr": "s:FSp10initializeFT2tox5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Pointee"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "move",
+          "printedName": "move()",
+          "declKind": "Func",
+          "usr": "s:FSp4moveFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Pointee"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "assign",
+          "printedName": "assign(from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSp6assignFT4fromGSPx_5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "moveInitialize",
+          "printedName": "moveInitialize(from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSp14moveInitializeFT4fromGSpx_5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initialize",
+          "printedName": "initialize(from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSp10initializeFT4fromGSPx_5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initialize",
+          "printedName": "initialize(from:)",
+          "declKind": "Func",
+          "usr": "s:FSp10initializeuRd__s10CollectionxzWd__8Iterator7Element_rFT4fromqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "moveAssign",
+          "printedName": "moveAssign(from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSp10moveAssignFT4fromGSpx_5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "deinitialize",
+          "printedName": "deinitialize(count:)",
+          "declKind": "Func",
+          "usr": "s:FSp12deinitializeFT5countSi_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withMemoryRebound",
+          "printedName": "withMemoryRebound(to:capacity:_:)",
+          "declKind": "Func",
+          "usr": "s:FSp17withMemoryReboundu0_rFzT2toMqd__8capacitySiFzGSpqd___qd_0__qd_0_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<T>) throws -> Result",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Result"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<T>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<T>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "T"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSp9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "successor",
+          "printedName": "successor()",
+          "declKind": "Func",
+          "usr": "s:FSp9successorFT_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "predecessor",
+          "printedName": "predecessor()",
+          "declKind": "Func",
+          "usr": "s:FSp11predecessorFT_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSp8distanceFT2toGSpx__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSp8advancedFT2bySi_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Sp6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSp16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSp12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "summary",
+          "printedName": "summary",
+          "declKind": "Var",
+          "usr": "s:vSp7summarySS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg7summarySS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSp25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSpg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Integer",
+      "printedName": "Integer",
+      "declKind": "Protocol",
+      "usr": "s:Ps7Integer",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "StrideThroughIterator",
+      "printedName": "StrideThroughIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs21StrideThroughIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs21StrideThroughIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21StrideThroughIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SignedNumber",
+      "printedName": "SignedNumber",
+      "declKind": "Protocol",
+      "usr": "s:Ps12SignedNumber",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RangeReplaceableSlice",
+      "printedName": "RangeReplaceableSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs21RangeReplaceableSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21RangeReplaceableSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21RangeReplaceableSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs21RangeReplaceableSlice10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs21RangeReplaceableSliceg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableSlice",
+                  "printedName": "RangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs21RangeReplaceableSlice8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs21RangeReplaceableSliceg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableSlice",
+                  "printedName": "RangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21RangeReplaceableSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableSlice",
+              "printedName": "RangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs21RangeReplaceableSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableSlice",
+              "printedName": "RangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs21RangeReplaceableSlicecFT9repeatingwx8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableSlice",
+              "printedName": "RangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs21RangeReplaceableSlicecuRd__s8Sequencewx8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableSlice",
+              "printedName": "RangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice15replaceSubrangeuRd__s10Collectionwx8_ElementzWd__8Iterator7Element_rFTGVs5Rangewx5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice6insertFTwx8_Element2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice6insertuRd__s10Collectionwx8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice6removeFT2atwx5Index_wx8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs21RangeReplaceableSlice14removeSubrangeFGVs5Rangewx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs21RangeReplaceableSlicecFT4basex6boundsGVs5Rangewx5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableSlice",
+              "printedName": "RangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs21RangeReplaceableSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs21RangeReplaceableSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableSlice",
+                  "printedName": "RangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21RangeReplaceableSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<RangeReplaceableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableSlice",
+                  "printedName": "RangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs21RangeReplaceableSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<RangeReplaceableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableSlice",
+                  "printedName": "RangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CDouble",
+      "printedName": "CDouble",
+      "declKind": "TypeAlias",
+      "usr": "s:s7CDouble",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Double",
+          "printedName": "Double"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IteratorOverOne",
+      "printedName": "IteratorOverOne",
+      "declKind": "Struct",
+      "usr": "s:Vs15IteratorOverOne",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs15IteratorOverOne4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15IteratorOverOne7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15IteratorOverOne8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorOverOne",
+              "printedName": "IteratorOverOne<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15IteratorOverOne11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SignedInteger",
+      "printedName": "SignedInteger",
+      "declKind": "Protocol",
+      "usr": "s:Ps13SignedInteger",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FPs13SignedInteger8toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13SignedIntegercFVs5Int64x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13SignedInteger8distanceFT2tox_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13SignedInteger8advancedFT2bySi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Character",
+      "printedName": "Character",
+      "declKind": "Struct",
+      "usr": "s:Vs9Character",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeDecl",
+          "name": "Representation",
+          "printedName": "Representation",
+          "declKind": "Enum",
+          "usr": "s:OVs9Character14Representation",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "Var",
+              "name": "large",
+              "printedName": "large",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs9Character14Representation5largeFMS0_FGVs11_HeapBufferVs18_StringBufferIVarsVs6UInt16_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Character.Representation.Type) -> (_StringBuffer._Storage) -> Character.Representation",
+                  "children": [
+                    {
+                      "kind": "TypeFunc",
+                      "name": "Function",
+                      "printedName": "(_StringBuffer._Storage) -> Character.Representation",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Representation",
+                          "printedName": "Character.Representation"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Paren",
+                          "printedName": "(_StringBuffer._Storage)",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "_Storage",
+                              "printedName": "_StringBuffer._Storage"
+                            }
+                          ]
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Character.Representation.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Representation",
+                          "printedName": "Character.Representation"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "small",
+              "printedName": "small",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs9Character14Representation5smallFMS0_FBi63_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Character.Representation.Type) -> (Int63) -> Character.Representation",
+                  "children": [
+                    {
+                      "kind": "TypeFunc",
+                      "name": "Function",
+                      "printedName": "(Int63) -> Character.Representation",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Representation",
+                          "printedName": "Character.Representation"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Paren",
+                          "printedName": "(Int63)",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Int63",
+                              "printedName": "Int63"
+                            }
+                          ]
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Character.Representation.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Representation",
+                          "printedName": "Character.Representation"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs9CharactercFScS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalarLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs9CharactercFT20unicodeScalarLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(extendedGraphemeClusterLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs9CharactercFT30extendedGraphemeClusterLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs9CharactercFSSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs9Character9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UTF16View",
+          "printedName": "UTF16View",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs9Character9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16View",
+              "printedName": "String.UTF16View"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf16",
+          "printedName": "utf16",
+          "declKind": "Var",
+          "usr": "s:vVs9Character5utf16VSS9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16View",
+              "printedName": "Character.UTF16View"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg5utf16VSS9UTF16View",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "Character.UTF16View"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "ExtendedGraphemeClusterLiteralType",
+          "printedName": "ExtendedGraphemeClusterLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs9Character34ExtendedGraphemeClusterLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UnicodeScalarLiteralType",
+          "printedName": "UnicodeScalarLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs9Character24UnicodeScalarLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs9Character11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs9Character16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs9Character12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs9Character25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs9Characterg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs9Character5writeuRxs16TextOutputStreamrFT2toRx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Target"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "EmptyCollection",
+      "printedName": "EmptyCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs15EmptyCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15EmptyCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15EmptyCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15EmptyCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyCollection",
+              "printedName": "EmptyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs15EmptyCollectioncFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyCollection",
+              "printedName": "EmptyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15EmptyCollection10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15EmptyCollectiong10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "EmptyCollection.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "EmptyCollection",
+                  "printedName": "EmptyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15EmptyCollection8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15EmptyCollectiong8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "EmptyCollection.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "EmptyCollection",
+                  "printedName": "EmptyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection12makeIteratorFT_GVs13EmptyIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyIterator",
+              "printedName": "EmptyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs15EmptyCollection5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15EmptyCollectiong5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "EmptyCollection",
+                  "printedName": "EmptyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "EmptyCollection.IndexDistance"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "EmptyCollection.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "EmptyCollection.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "EmptyCollection.IndexDistance"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs15EmptyCollection8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "EmptyCollection.IndexDistance"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "EmptyCollection.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15EmptyCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15EmptyCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyIterator",
+              "printedName": "EmptyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "assertionFailure",
+      "printedName": "assertionFailure(_:file:line:)",
+      "declKind": "Func",
+      "usr": "s:Fs16assertionFailureFTKT_SS4fileVs12StaticString4lineSu_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> String",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "StaticString",
+          "printedName": "StaticString"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenSequence",
+      "printedName": "FlattenSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs15FlattenSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs15FlattenSequence12makeIteratorFT_GVs15FlattenIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15FlattenSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15FlattenSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Iterator.Element.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base.Iterator.Element.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "repeatElement",
+      "printedName": "repeatElement(_:count:)",
+      "declKind": "Func",
+      "usr": "s:Fs13repeatElementurFTx5countSi_GVs8Repeatedx_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Repeated",
+          "printedName": "Repeated<T>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "print",
+      "printedName": "print(_:separator:terminator:)",
+      "declKind": "Func",
+      "usr": "s:Fs5printFTGSaP__9separatorSS10terminatorSS_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[Any]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "print",
+      "printedName": "print(_:separator:terminator:to:)",
+      "declKind": "Func",
+      "usr": "s:Fs5printuRxs16TextOutputStreamrFTGSaP__9separatorSS10terminatorSS2toRx_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[Any]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout Target"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CustomReflectable",
+      "printedName": "CustomReflectable",
+      "declKind": "Protocol",
+      "usr": "s:Ps17CustomReflectable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vPs17CustomReflectable12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs17CustomReflectableg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CustomReflectable",
+                      "printedName": "CustomReflectable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MemoryLayout",
+      "printedName": "MemoryLayout",
+      "declKind": "Enum",
+      "usr": "s:Os12MemoryLayout",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "size",
+          "printedName": "size",
+          "declKind": "Var",
+          "usr": "s:ZvOs12MemoryLayout4sizeSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs12MemoryLayoutg4sizeSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "MemoryLayout<T>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MemoryLayout",
+                      "printedName": "MemoryLayout<T>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "T"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "stride",
+          "printedName": "stride",
+          "declKind": "Var",
+          "usr": "s:ZvOs12MemoryLayout6strideSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs12MemoryLayoutg6strideSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "MemoryLayout<T>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MemoryLayout",
+                      "printedName": "MemoryLayout<T>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "T"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "alignment",
+          "printedName": "alignment",
+          "declKind": "Var",
+          "usr": "s:ZvOs12MemoryLayout9alignmentSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs12MemoryLayoutg9alignmentSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "MemoryLayout<T>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MemoryLayout",
+                      "printedName": "MemoryLayout<T>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "T"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "size",
+          "printedName": "size(ofValue:)",
+          "declKind": "Func",
+          "usr": "s:ZFOs12MemoryLayout4sizeFT7ofValuex_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "stride",
+          "printedName": "stride(ofValue:)",
+          "declKind": "Func",
+          "usr": "s:ZFOs12MemoryLayout6strideFT7ofValuex_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "alignment",
+          "printedName": "alignment(ofValue:)",
+          "declKind": "Func",
+          "usr": "s:ZFOs12MemoryLayout9alignmentFT7ofValuex_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LosslessStringConvertible",
+      "printedName": "LosslessStringConvertible",
+      "declKind": "Protocol",
+      "usr": "s:Ps25LosslessStringConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs25LosslessStringConvertiblecFSSGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LosslessStringConvertible",
+                      "printedName": "LosslessStringConvertible"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "NilLiteralConvertible",
+      "printedName": "NilLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s21NilLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByNilLiteral",
+          "printedName": "ExpressibleByNilLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Hashable",
+      "printedName": "Hashable",
+      "declKind": "Protocol",
+      "usr": "s:Ps8Hashable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vPs8Hashable9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs8Hashableg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByBooleanLiteral",
+      "printedName": "ExpressibleByBooleanLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps27ExpressibleByBooleanLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(booleanLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs27ExpressibleByBooleanLiteralcFT14booleanLiteralwx18BooleanLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByBooleanLiteral",
+                  "printedName": "ExpressibleByBooleanLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.BooleanLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinBooleanLiteral",
+                  "printedName": "_ExpressibleByBuiltinBooleanLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByStringLiteral",
+      "printedName": "ExpressibleByStringLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps26ExpressibleByStringLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs26ExpressibleByStringLiteralcFT13stringLiteralwx17StringLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByStringLiteral",
+                  "printedName": "ExpressibleByStringLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.StringLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinStringLiteral",
+                  "printedName": "_ExpressibleByBuiltinStringLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CChar16",
+      "printedName": "CChar16",
+      "declKind": "TypeAlias",
+      "usr": "s:s7CChar16",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt16",
+          "printedName": "UInt16"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Indexable",
+      "printedName": "Indexable",
+      "declKind": "Protocol",
+      "usr": "s:Ps9Indexable",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs9Indexable5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs9Indexable5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs9Indexable9formIndexFTRwx5Index8offsetBywx13IndexDistance_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs9Indexable9formIndexFTRwx5Index8offsetBywx13IndexDistance9limitedBywxS0__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FPs9Indexable8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable9formIndexFTRwx5Index8offsetBywx13IndexDistance_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable9formIndexFTRwx5Index8offsetBywx13IndexDistance9limitedBywxS0__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9Indexable8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Float",
+      "printedName": "Float",
+      "declKind": "Struct",
+      "usr": "s:Sf",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFSSGSqSf_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSf11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSf16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Exponent",
+          "printedName": "Exponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf8Exponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawSignificand",
+          "printedName": "RawSignificand",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf14RawSignificand",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitCount",
+          "printedName": "exponentBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvSf16exponentBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg16exponentBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitCount",
+          "printedName": "significandBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvSf19significandBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg19significandBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bitPattern",
+          "printedName": "bitPattern",
+          "declKind": "Var",
+          "usr": "s:vSf10bitPatternVs6UInt32",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg10bitPatternVs6UInt32",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT10bitPatternVs6UInt32_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sign",
+          "printedName": "sign",
+          "declKind": "Var",
+          "usr": "s:vSf4signOs17FloatingPointSign",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg4signOs17FloatingPointSign",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitPattern",
+          "printedName": "exponentBitPattern",
+          "declKind": "Var",
+          "usr": "s:vSf18exponentBitPatternSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg18exponentBitPatternSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitPattern",
+          "printedName": "significandBitPattern",
+          "declKind": "Var",
+          "usr": "s:vSf21significandBitPatternVs6UInt32",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg21significandBitPatternVs6UInt32",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponentBitPattern:significandBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT4signOs17FloatingPointSign18exponentBitPatternSu21significandBitPatternVs6UInt32_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isCanonical",
+          "printedName": "isCanonical",
+          "declKind": "Var",
+          "usr": "s:vSf11isCanonicalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg11isCanonicalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "infinity",
+          "printedName": "infinity",
+          "declKind": "Var",
+          "usr": "s:ZvSf8infinitySf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg8infinitySf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nan",
+          "printedName": "nan",
+          "declKind": "Var",
+          "usr": "s:ZvSf3nanSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg3nanSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signalingNaN",
+          "printedName": "signalingNaN",
+          "declKind": "Var",
+          "usr": "s:ZvSf12signalingNaNSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg12signalingNaNSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "greatestFiniteMagnitude",
+          "printedName": "greatestFiniteMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSf23greatestFiniteMagnitudeSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg23greatestFiniteMagnitudeSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pi",
+          "printedName": "pi",
+          "declKind": "Var",
+          "usr": "s:ZvSf2piSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg2piSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulp",
+          "printedName": "ulp",
+          "declKind": "Var",
+          "usr": "s:vSf3ulpSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg3ulpSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNormalMagnitude",
+          "printedName": "leastNormalMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSf20leastNormalMagnitudeSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg20leastNormalMagnitudeSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNonzeroMagnitude",
+          "printedName": "leastNonzeroMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSf21leastNonzeroMagnitudeSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSfg21leastNonzeroMagnitudeSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float",
+                      "printedName": "Float"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponent",
+          "printedName": "exponent",
+          "declKind": "Var",
+          "usr": "s:vSf8exponentSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg8exponentSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significand",
+          "printedName": "significand",
+          "declKind": "Var",
+          "usr": "s:vSf11significandSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg11significandSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponent:significand:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT4signOs17FloatingPointSign8exponentSi11significandSf_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nan:signaling:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT3nanVs6UInt329signalingSb_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "RawSignificand",
+              "printedName": "Float.RawSignificand"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextUp",
+          "printedName": "nextUp",
+          "declKind": "Var",
+          "usr": "s:vSf6nextUpSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg6nextUpSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "round",
+          "printedName": "round(_:)",
+          "declKind": "Func",
+          "usr": "s:FSf5roundFOs25FloatingPointRoundingRuleT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negate",
+          "printedName": "negate()",
+          "declKind": "Func",
+          "usr": "s:FSf6negateFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "add",
+          "printedName": "add(_:)",
+          "declKind": "Func",
+          "usr": "s:FSf3addFSfT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FSf8subtractFSfT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiply",
+          "printedName": "multiply(by:)",
+          "declKind": "Func",
+          "usr": "s:FSf8multiplyFT2bySf_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divide",
+          "printedName": "divide(by:)",
+          "declKind": "Func",
+          "usr": "s:FSf6divideFT2bySf_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formRemainder",
+          "printedName": "formRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FSf13formRemainderFT10dividingBySf_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formTruncatingRemainder",
+          "printedName": "formTruncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FSf23formTruncatingRemainderFT10dividingBySf_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSquareRoot",
+          "printedName": "formSquareRoot()",
+          "declKind": "Func",
+          "usr": "s:FSf14formSquareRootFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addProduct",
+          "printedName": "addProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FSf10addProductFTSfSf_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isEqual",
+          "printedName": "isEqual(to:)",
+          "declKind": "Func",
+          "usr": "s:FSf7isEqualFT2toSf_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLess",
+          "printedName": "isLess(than:)",
+          "declKind": "Func",
+          "usr": "s:FSf6isLessFT4thanSf_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLessThanOrEqualTo",
+          "printedName": "isLessThanOrEqualTo(_:)",
+          "declKind": "Func",
+          "usr": "s:FSf19isLessThanOrEqualToFSfSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNormal",
+          "printedName": "isNormal",
+          "declKind": "Var",
+          "usr": "s:vSf8isNormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg8isNormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isFinite",
+          "printedName": "isFinite",
+          "declKind": "Var",
+          "usr": "s:vSf8isFiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg8isFiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isZero",
+          "printedName": "isZero",
+          "declKind": "Var",
+          "usr": "s:vSf6isZeroSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg6isZeroSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSubnormal",
+          "printedName": "isSubnormal",
+          "declKind": "Var",
+          "usr": "s:vSf11isSubnormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg11isSubnormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isInfinite",
+          "printedName": "isInfinite",
+          "declKind": "Var",
+          "usr": "s:vSf10isInfiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg10isInfiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNaN",
+          "printedName": "isNaN",
+          "declKind": "Var",
+          "usr": "s:vSf5isNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg5isNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSignalingNaN",
+          "printedName": "isSignalingNaN",
+          "declKind": "Var",
+          "usr": "s:vSf14isSignalingNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg14isSignalingNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "binade",
+          "printedName": "binade",
+          "declKind": "Var",
+          "usr": "s:vSf6binadeSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg6binadeSf",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandWidth",
+          "printedName": "significandWidth",
+          "declKind": "Var",
+          "usr": "s:vSf16significandWidthSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg16significandWidthSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(floatLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT12floatLiteralSf_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "FloatLiteralType",
+          "printedName": "FloatLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf16FloatLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawExponent",
+          "printedName": "RawExponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf11RawExponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT14integerLiteralVs5Int64_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf18IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSf9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "abs",
+          "printedName": "abs(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSf3absFSfSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs5UInt8Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs4Int8Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs6UInt16Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs5Int16Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs6UInt32Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs5Int32Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs6UInt64Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs5Int64Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFSuSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFSiSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFSfSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT7exactlySf_GSqSf_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFSdSf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT7exactlySd_GSqSf_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFVs7Float80Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSfcFT7exactlyVs7Float80_GSqSf_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSf8distanceFT2toSf_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSf8advancedFT2bySf_Sf",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Sf6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSf12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSf25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSfg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float",
+                  "printedName": "Float"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_SequenceWrapper",
+      "printedName": "_SequenceWrapper",
+      "declKind": "Protocol",
+      "usr": "s:Ps16_SequenceWrapper",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vesRxs8Sequencexs16_SequenceWrapperwxPS_8IteratorzWxPS0_4BaseS1__rS0_19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs8Sequencexs16_SequenceWrapperwxPS_8IteratorzWxPS0_4BaseS1__rS0_g19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_SequenceWrapper",
+                      "printedName": "_SequenceWrapper"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UInt",
+      "printedName": "UInt",
+      "declKind": "Struct",
+      "usr": "s:Su",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT9bigEndianSu_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT12littleEndianSu_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT14integerLiteralSu_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vSu9bigEndianSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug9bigEndianSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vSu12littleEndianSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug12littleEndianSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vSu11byteSwappedSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug11byteSwappedSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvSu3maxSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSug3maxSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt",
+                      "printedName": "UInt"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvSu3minSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSug3minSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt",
+                      "printedName": "UInt"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Su18IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Su6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT10bitPatternGSqVs13OpaquePointer__Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSu9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSu11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSu15addWithOverflowFTSuSu_TSu8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSu20subtractWithOverflowFTSuSu_TSu8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSu20multiplyWithOverflowFTSuSu_TSu8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSu18divideWithOverflowFTSuSu_TSu8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSu21remainderWithOverflowFTSuSu_TSu8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FSu9toUIntMaxFT_Vs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FSu8toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs5UInt8Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs5UInt8_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs4Int8Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs4Int8_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs6UInt16Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs6UInt16_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs5Int16Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs5Int16_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs6UInt32Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs6UInt32_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs5Int32Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs5Int32_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs6UInt64Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs6UInt64_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT20truncatingBitPatternVs6UInt64_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs5Int64Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlyVs5Int64_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT20truncatingBitPatternVs5Int64_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFSuSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlySu_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFSiSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT7exactlySi_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT10bitPatternSi_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvSu8allZerosSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSug8allZerosSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt",
+                      "printedName": "UInt"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFSfSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFSdSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFVs7Float80Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFTSS5radixSi_GSqSu_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSu12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSu25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSug25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT10bitPatternVs16ObjectIdentifier_Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ObjectIdentifier",
+              "printedName": "ObjectIdentifier"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucurFT10bitPatternGSqGSpx___Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucurFT10bitPatternGSqGSPx___Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT10bitPatternGSqSv__Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSucFT10bitPatternGSqSV__Su",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "FloatLiteralType",
+      "printedName": "FloatLiteralType",
+      "declKind": "TypeAlias",
+      "usr": "s:s16FloatLiteralType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Double",
+          "printedName": "Double"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyIndex",
+      "printedName": "AnyIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs8AnyIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs8AnyIndexcuRxs10ComparablerFxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "BaseIndex",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CChar32",
+      "printedName": "CChar32",
+      "declKind": "TypeAlias",
+      "usr": "s:s7CChar32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UnicodeScalar",
+          "printedName": "UnicodeScalar"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FloatingPointClassification",
+      "printedName": "FloatingPointClassification",
+      "declKind": "Enum",
+      "usr": "s:Os27FloatingPointClassification",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "signalingNaN",
+          "printedName": "signalingNaN",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification12signalingNaNFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "quietNaN",
+          "printedName": "quietNaN",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification8quietNaNFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "negativeInfinity",
+          "printedName": "negativeInfinity",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification16negativeInfinityFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "negativeNormal",
+          "printedName": "negativeNormal",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification14negativeNormalFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "negativeSubnormal",
+          "printedName": "negativeSubnormal",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification17negativeSubnormalFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "negativeZero",
+          "printedName": "negativeZero",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification12negativeZeroFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "positiveZero",
+          "printedName": "positiveZero",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification12positiveZeroFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "positiveSubnormal",
+          "printedName": "positiveSubnormal",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification17positiveSubnormalFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "positiveNormal",
+          "printedName": "positiveNormal",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification14positiveNormalFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "positiveInfinity",
+          "printedName": "positiveInfinity",
+          "declKind": "EnumElement",
+          "usr": "s:FOs27FloatingPointClassification16positiveInfinityFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointClassification.Type) -> FloatingPointClassification",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointClassification.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointClassification",
+                      "printedName": "FloatingPointClassification"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vOs27FloatingPointClassification9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FOs27FloatingPointClassificationg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SetIndexRepresentation",
+      "printedName": "SetIndexRepresentation",
+      "declKind": "Enum",
+      "usr": "s:Os22SetIndexRepresentation",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "Function",
+      "name": "withExtendedLifetime",
+      "printedName": "withExtendedLifetime(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs20withExtendedLifetimeu0_rFzTxFzT_q__q_",
+      "location": "",
+      "moduleName": "Swift",
+      "throwing": true,
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Result"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() throws -> Result",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "withExtendedLifetime",
+      "printedName": "withExtendedLifetime(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs20withExtendedLifetimeu0_rFzTxFzxq__q_",
+      "location": "",
+      "moduleName": "Swift",
+      "throwing": true,
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Result"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(T) throws -> Result",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(T)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyMapIterator",
+      "printedName": "LazyMapIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs15LazyMapIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs15LazyMapIterator4nextFT_GSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs15LazyMapIterator4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15LazyMapIteratorg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapIterator",
+                  "printedName": "LazyMapIterator<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "IteratorProtocol",
+                          "printedName": "IteratorProtocol"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Error",
+      "printedName": "Error",
+      "declKind": "Protocol",
+      "usr": "s:Ps5Error",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CBool",
+      "printedName": "CBool",
+      "declKind": "TypeAlias",
+      "usr": "s:s5CBool",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Comparable",
+      "printedName": "Comparable",
+      "declKind": "Protocol",
+      "usr": "s:Ps10Comparable",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "Function",
+      "name": "abs",
+      "printedName": "abs(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3absuRxs12SignedNumberrFxx",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SignedNumber",
+              "printedName": "SignedNumber"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SignedNumber",
+              "printedName": "SignedNumber"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "isKnownUniquelyReferenced",
+      "printedName": "isKnownUniquelyReferenced(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs25isKnownUniquelyReferenceduRxs9AnyObjectrFRxSb",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "isKnownUniquelyReferenced",
+      "printedName": "isKnownUniquelyReferenced(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs25isKnownUniquelyReferenceduRxs9AnyObjectrFRGSqx_Sb",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T?"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SetIteratorRepresentation",
+      "printedName": "SetIteratorRepresentation",
+      "declKind": "Enum",
+      "usr": "s:Os25SetIteratorRepresentation",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "UIntMax",
+      "printedName": "UIntMax",
+      "declKind": "TypeAlias",
+      "usr": "s:s7UIntMax",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt64",
+          "printedName": "UInt64"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RangeReplaceableIndexable",
+      "printedName": "RangeReplaceableIndexable",
+      "declKind": "Protocol",
+      "usr": "s:Ps25RangeReplaceableIndexable",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FPs25RangeReplaceableIndexablecFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs25RangeReplaceableIndexablecFT9repeatingwx8_Element5countSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs25RangeReplaceableIndexablecuRd__s8Sequencewx8_ElementzWd__8Iterator7Element_rFqd__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FPs25RangeReplaceableIndexable15replaceSubrangeuRd__s10Collectionwx8_ElementzWd__8Iterator7Element_rFTGVs5Rangewx5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FPs25RangeReplaceableIndexable6insertFTwx8_Element2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FPs25RangeReplaceableIndexable6insertuRd__s10Collectionwx8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FPs25RangeReplaceableIndexable6removeFT2atwx5Index_wx8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs25RangeReplaceableIndexable14removeSubrangeFGVs5Rangewx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenBidirectionalCollectionIndex",
+      "printedName": "FlattenBidirectionalCollectionIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs35FlattenBidirectionalCollectionIndex",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "Function",
+      "name": "stride",
+      "printedName": "stride(from:to:by:)",
+      "declKind": "Func",
+      "usr": "s:Fs6strideuRxs10StrideablerFT4fromx2tox2bywx6Stride_GVs8StrideTox_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "StrideTo",
+          "printedName": "StrideTo<T>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Strideable",
+              "printedName": "Strideable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Strideable",
+              "printedName": "Strideable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T.Stride",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SignedNumber",
+              "printedName": "SignedNumber"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "stride",
+      "printedName": "stride(from:through:by:)",
+      "declKind": "Func",
+      "usr": "s:Fs6strideuRxs10StrideablerFT4fromx7throughx2bywx6Stride_GVs13StrideThroughx_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "StrideThrough",
+          "printedName": "StrideThrough<T>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Strideable",
+              "printedName": "Strideable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Strideable",
+              "printedName": "Strideable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T.Stride",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SignedNumber",
+              "printedName": "SignedNumber"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableRandomAccessSlice",
+      "printedName": "MutableRandomAccessSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs24MutableRandomAccessSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs24MutableRandomAccessSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs24MutableRandomAccessSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs24MutableRandomAccessSlice10startIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs24MutableRandomAccessSliceg10startIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRandomAccessSlice",
+                  "printedName": "MutableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs24MutableRandomAccessSlice8endIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs24MutableRandomAccessSliceg8endIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRandomAccessSlice",
+                  "printedName": "MutableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs24MutableRandomAccessSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRandomAccessSlice",
+              "printedName": "MutableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice5indexFT5afterwxPs16MutableIndexable5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice9formIndexFT5afterRwxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice5indexFT6beforewxPs16MutableIndexable5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice9formIndexFT6beforeRwxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs24MutableRandomAccessSlice8distanceFT4fromwxPs16MutableIndexable5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs24MutableRandomAccessSlicecFT4basex6boundsGVs5RangewxPs16MutableIndexable5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRandomAccessSlice",
+              "printedName": "MutableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs24MutableRandomAccessSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs24MutableRandomAccessSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRandomAccessSlice",
+                  "printedName": "MutableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs24MutableRandomAccessSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRandomAccessSlice",
+                  "printedName": "MutableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs24MutableRandomAccessSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<MutableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRandomAccessSlice",
+                  "printedName": "MutableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_Incrementable",
+      "printedName": "_Incrementable",
+      "declKind": "Protocol",
+      "usr": "s:Ps14_Incrementable",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FloatingPointRoundingRule",
+      "printedName": "FloatingPointRoundingRule",
+      "declKind": "Enum",
+      "usr": "s:Os25FloatingPointRoundingRule",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "toNearestOrAwayFromZero",
+          "printedName": "toNearestOrAwayFromZero",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule23toNearestOrAwayFromZeroFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "toNearestOrEven",
+          "printedName": "toNearestOrEven",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule15toNearestOrEvenFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "up",
+          "printedName": "up",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule2upFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "down",
+          "printedName": "down",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule4downFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "towardZero",
+          "printedName": "towardZero",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule10towardZeroFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "awayFromZero",
+          "printedName": "awayFromZero",
+          "declKind": "EnumElement",
+          "usr": "s:FOs25FloatingPointRoundingRule12awayFromZeroFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointRoundingRule.Type) -> FloatingPointRoundingRule",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointRoundingRule.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointRoundingRule",
+                      "printedName": "FloatingPointRoundingRule"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vOs25FloatingPointRoundingRule9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FOs25FloatingPointRoundingRuleg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointRoundingRule",
+                  "printedName": "FloatingPointRoundingRule"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IteratorProtocol",
+      "printedName": "IteratorProtocol",
+      "declKind": "Protocol",
+      "usr": "s:Ps16IteratorProtocol",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FPs16IteratorProtocol4nextFT_GSqwx7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CUnsignedLong",
+      "printedName": "CUnsignedLong",
+      "declKind": "TypeAlias",
+      "usr": "s:s13CUnsignedLong",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "debugPrint",
+      "printedName": "debugPrint(_:separator:terminator:)",
+      "declKind": "Func",
+      "usr": "s:Fs10debugPrintFTGSaP__9separatorSS10terminatorSS_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[Any]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "debugPrint",
+      "printedName": "debugPrint(_:separator:terminator:to:)",
+      "declKind": "Func",
+      "usr": "s:Fs10debugPrintuRxs16TextOutputStreamrFTGSaP__9separatorSS10terminatorSS2toRx_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[Any]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout Target"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Double",
+      "printedName": "Double",
+      "declKind": "Struct",
+      "usr": "s:Sd",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFSSGSqSd_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Double?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSd11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSd16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Exponent",
+          "printedName": "Exponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd8Exponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawSignificand",
+          "printedName": "RawSignificand",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd14RawSignificand",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitCount",
+          "printedName": "exponentBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvSd16exponentBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg16exponentBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitCount",
+          "printedName": "significandBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvSd19significandBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg19significandBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bitPattern",
+          "printedName": "bitPattern",
+          "declKind": "Var",
+          "usr": "s:vSd10bitPatternVs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg10bitPatternVs6UInt64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT10bitPatternVs6UInt64_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sign",
+          "printedName": "sign",
+          "declKind": "Var",
+          "usr": "s:vSd4signOs17FloatingPointSign",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg4signOs17FloatingPointSign",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitPattern",
+          "printedName": "exponentBitPattern",
+          "declKind": "Var",
+          "usr": "s:vSd18exponentBitPatternSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg18exponentBitPatternSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitPattern",
+          "printedName": "significandBitPattern",
+          "declKind": "Var",
+          "usr": "s:vSd21significandBitPatternVs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg21significandBitPatternVs6UInt64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponentBitPattern:significandBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT4signOs17FloatingPointSign18exponentBitPatternSu21significandBitPatternVs6UInt64_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isCanonical",
+          "printedName": "isCanonical",
+          "declKind": "Var",
+          "usr": "s:vSd11isCanonicalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg11isCanonicalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "infinity",
+          "printedName": "infinity",
+          "declKind": "Var",
+          "usr": "s:ZvSd8infinitySd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg8infinitySd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nan",
+          "printedName": "nan",
+          "declKind": "Var",
+          "usr": "s:ZvSd3nanSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg3nanSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signalingNaN",
+          "printedName": "signalingNaN",
+          "declKind": "Var",
+          "usr": "s:ZvSd12signalingNaNSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg12signalingNaNSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "greatestFiniteMagnitude",
+          "printedName": "greatestFiniteMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSd23greatestFiniteMagnitudeSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg23greatestFiniteMagnitudeSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pi",
+          "printedName": "pi",
+          "declKind": "Var",
+          "usr": "s:ZvSd2piSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg2piSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulp",
+          "printedName": "ulp",
+          "declKind": "Var",
+          "usr": "s:vSd3ulpSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg3ulpSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNormalMagnitude",
+          "printedName": "leastNormalMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSd20leastNormalMagnitudeSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg20leastNormalMagnitudeSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNonzeroMagnitude",
+          "printedName": "leastNonzeroMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvSd21leastNonzeroMagnitudeSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSdg21leastNonzeroMagnitudeSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Double.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Double",
+                      "printedName": "Double"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponent",
+          "printedName": "exponent",
+          "declKind": "Var",
+          "usr": "s:vSd8exponentSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg8exponentSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significand",
+          "printedName": "significand",
+          "declKind": "Var",
+          "usr": "s:vSd11significandSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg11significandSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponent:significand:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT4signOs17FloatingPointSign8exponentSi11significandSd_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nan:signaling:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT3nanVs6UInt649signalingSb_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "RawSignificand",
+              "printedName": "Double.RawSignificand"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextUp",
+          "printedName": "nextUp",
+          "declKind": "Var",
+          "usr": "s:vSd6nextUpSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg6nextUpSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "round",
+          "printedName": "round(_:)",
+          "declKind": "Func",
+          "usr": "s:FSd5roundFOs25FloatingPointRoundingRuleT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negate",
+          "printedName": "negate()",
+          "declKind": "Func",
+          "usr": "s:FSd6negateFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "add",
+          "printedName": "add(_:)",
+          "declKind": "Func",
+          "usr": "s:FSd3addFSdT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FSd8subtractFSdT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiply",
+          "printedName": "multiply(by:)",
+          "declKind": "Func",
+          "usr": "s:FSd8multiplyFT2bySd_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divide",
+          "printedName": "divide(by:)",
+          "declKind": "Func",
+          "usr": "s:FSd6divideFT2bySd_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formRemainder",
+          "printedName": "formRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FSd13formRemainderFT10dividingBySd_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formTruncatingRemainder",
+          "printedName": "formTruncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FSd23formTruncatingRemainderFT10dividingBySd_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSquareRoot",
+          "printedName": "formSquareRoot()",
+          "declKind": "Func",
+          "usr": "s:FSd14formSquareRootFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addProduct",
+          "printedName": "addProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FSd10addProductFTSdSd_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isEqual",
+          "printedName": "isEqual(to:)",
+          "declKind": "Func",
+          "usr": "s:FSd7isEqualFT2toSd_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLess",
+          "printedName": "isLess(than:)",
+          "declKind": "Func",
+          "usr": "s:FSd6isLessFT4thanSd_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLessThanOrEqualTo",
+          "printedName": "isLessThanOrEqualTo(_:)",
+          "declKind": "Func",
+          "usr": "s:FSd19isLessThanOrEqualToFSdSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNormal",
+          "printedName": "isNormal",
+          "declKind": "Var",
+          "usr": "s:vSd8isNormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg8isNormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isFinite",
+          "printedName": "isFinite",
+          "declKind": "Var",
+          "usr": "s:vSd8isFiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg8isFiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isZero",
+          "printedName": "isZero",
+          "declKind": "Var",
+          "usr": "s:vSd6isZeroSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg6isZeroSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSubnormal",
+          "printedName": "isSubnormal",
+          "declKind": "Var",
+          "usr": "s:vSd11isSubnormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg11isSubnormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isInfinite",
+          "printedName": "isInfinite",
+          "declKind": "Var",
+          "usr": "s:vSd10isInfiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg10isInfiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNaN",
+          "printedName": "isNaN",
+          "declKind": "Var",
+          "usr": "s:vSd5isNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg5isNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSignalingNaN",
+          "printedName": "isSignalingNaN",
+          "declKind": "Var",
+          "usr": "s:vSd14isSignalingNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg14isSignalingNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "binade",
+          "printedName": "binade",
+          "declKind": "Var",
+          "usr": "s:vSd6binadeSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg6binadeSd",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandWidth",
+          "printedName": "significandWidth",
+          "declKind": "Var",
+          "usr": "s:vSd16significandWidthSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg16significandWidthSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(floatLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT12floatLiteralSd_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "FloatLiteralType",
+          "printedName": "FloatLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd16FloatLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawExponent",
+          "printedName": "RawExponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd11RawExponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT14integerLiteralVs5Int64_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd18IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSd9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "abs",
+          "printedName": "abs(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSd3absFSdSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs5UInt8Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs4Int8Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs6UInt16Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs5Int16Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs6UInt32Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs5Int32Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs6UInt64Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs5Int64Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFSuSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFSiSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFSfSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT7exactlySf_GSqSd_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Double?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFSdSd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT7exactlySd_GSqSd_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Double?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFVs7Float80Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSdcFT7exactlyVs7Float80_GSqSd_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Double?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSd8distanceFT2toSd_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSd8advancedFT2bySd_Sd",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Sd6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSd12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSd25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSdg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Double",
+                  "printedName": "Double"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyCollectionProtocol",
+      "printedName": "LazyCollectionProtocol",
+      "declKind": "Protocol",
+      "usr": "s:Ps22LazyCollectionProtocol",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22LazyCollectionProtocol6filterFFWx8Elements8Iterator7Element_SbGVs20LazyFilterCollectionwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterCollection",
+              "printedName": "LazyFilterCollection<Self.Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> Bool",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_rS0_6filterFFWxS1_8Iterator7Element_SbGVs33LazyFilterBidirectionalCollectionwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterBidirectionalCollection",
+              "printedName": "LazyFilterBidirectionalCollection<Self.Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> Bool",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22LazyCollectionProtocol7flatMapuRd__s10CollectionrFFWx8Elements8Iterator7Element_qd__GVs14LazyCollectionGVs17FlattenCollectionGVs17LazyMapCollectionwxS1_qd_____",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<FlattenCollection<LazyMapCollection<Self.Elements, SegmentOfResult>>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<LazyMapCollection<Self.Elements, SegmentOfResult>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapCollection",
+                      "printedName": "LazyMapCollection<Self.Elements, SegmentOfResult>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Collection",
+                              "printedName": "Collection"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "SegmentOfResult",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Collection",
+                              "printedName": "Collection"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> SegmentOfResult",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "SegmentOfResult",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22LazyCollectionProtocol7flatMapurFFWx8Elements8Iterator7Element_GSqqd___GVs17LazyMapCollectionGVs20LazyFilterCollectionGS3_wxS0_GSqqd_____qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapCollection",
+              "printedName": "LazyMapCollection<LazyFilterCollection<LazyMapCollection<Self.Elements, ElementOfResult?>>, ElementOfResult>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterCollection",
+                  "printedName": "LazyFilterCollection<LazyMapCollection<Self.Elements, ElementOfResult?>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapCollection",
+                      "printedName": "LazyMapCollection<Self.Elements, ElementOfResult?>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Collection",
+                              "printedName": "Collection"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Optional",
+                          "printedName": "ElementOfResult?",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Archetype",
+                              "printedName": "ElementOfResult"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ElementOfResult"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> ElementOfResult?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "ElementOfResult?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "ElementOfResult"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_rS0_7flatMapuRd__S_rFFWxS1_8Iterator7Element_qd__GVs14LazyCollectionGVs30FlattenBidirectionalCollectionGVs30LazyMapBidirectionalCollectionwxS1_qd_____",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<FlattenBidirectionalCollection<LazyMapBidirectionalCollection<Self.Elements, SegmentOfResult>>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<LazyMapBidirectionalCollection<Self.Elements, SegmentOfResult>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapBidirectionalCollection",
+                      "printedName": "LazyMapBidirectionalCollection<Self.Elements, SegmentOfResult>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "BidirectionalCollection",
+                              "printedName": "BidirectionalCollection"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "SegmentOfResult",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "BidirectionalCollection",
+                              "printedName": "BidirectionalCollection"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> SegmentOfResult",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "SegmentOfResult",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_rS0_7flatMapurFFWxS1_8Iterator7Element_GSqqd___GVs30LazyMapBidirectionalCollectionGVs33LazyFilterBidirectionalCollectionGS4_wxS1_GSqqd_____qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapBidirectionalCollection",
+              "printedName": "LazyMapBidirectionalCollection<LazyFilterBidirectionalCollection<LazyMapBidirectionalCollection<Self.Elements, ElementOfResult?>>, ElementOfResult>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterBidirectionalCollection",
+                  "printedName": "LazyFilterBidirectionalCollection<LazyMapBidirectionalCollection<Self.Elements, ElementOfResult?>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapBidirectionalCollection",
+                      "printedName": "LazyMapBidirectionalCollection<Self.Elements, ElementOfResult?>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "BidirectionalCollection",
+                              "printedName": "BidirectionalCollection"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Optional",
+                          "printedName": "ElementOfResult?",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Archetype",
+                              "printedName": "ElementOfResult"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ElementOfResult"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> ElementOfResult?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "ElementOfResult?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "ElementOfResult"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs22LazyCollectionProtocolWx8Iterator7Element_s10CollectionWxS0_S1__zWx8Elements8IteratorS1__rS_6joinedFT_GVs14LazyCollectionGVs17FlattenCollectionwxS3___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<FlattenCollection<Self.Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenCollection",
+                  "printedName": "FlattenCollection<Self.Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_WxPs10Collection8Iterator7Element_S_WxS3_S4__zWxS1_8IteratorS4__rS0_6joinedFT_GVs14LazyCollectionGVs30FlattenBidirectionalCollectionwxS1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<FlattenBidirectionalCollection<Self.Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Self.Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vesRxs22LazyCollectionProtocolxzwx8ElementsrS_8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs22LazyCollectionProtocolxzwx8ElementsrS_g8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22LazyCollectionProtocol3mapurFFWx8Elements8Iterator7Element_qd__GVs17LazyMapCollectionwxS0_qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapCollection",
+              "printedName": "LazyMapCollection<Self.Elements, U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> U",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_rS0_3mapurFFWxS1_8Iterator7Element_qd__GVs30LazyMapBidirectionalCollectionwxS1_qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapBidirectionalCollection",
+              "printedName": "LazyMapBidirectionalCollection<Self.Elements, U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> U",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs22LazyCollectionProtocolxs22RandomAccessCollectionwxPS_8ElementsS0_rS_3mapurFFWxS1_8Iterator7Element_qd__GVs29LazyMapRandomAccessCollectionwxS1_qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapRandomAccessCollection",
+              "printedName": "LazyMapRandomAccessCollection<Self.Elements, U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> U",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reversed",
+          "printedName": "reversed()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs22LazyCollectionProtocolwxPS0_8ElementsS_rS0_8reversedFT_GVs27LazyBidirectionalCollectionGVs18ReversedCollectionwxS1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyBidirectionalCollection",
+              "printedName": "LazyBidirectionalCollection<ReversedCollection<Self.Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Self.Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reversed",
+          "printedName": "reversed()",
+          "declKind": "Func",
+          "usr": "s:FesRxs22LazyCollectionProtocolxs22RandomAccessCollectionwxPS_8ElementsS0_rS_8reversedFT_GVs26LazyRandomAccessCollectionGVs30ReversedRandomAccessCollectionwxS1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyRandomAccessCollection",
+              "printedName": "LazyRandomAccessCollection<ReversedRandomAccessCollection<Self.Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Self.Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "swift_objc_class_unknownGetInstanceExtents",
+      "printedName": "swift_objc_class_unknownGetInstanceExtents(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs42swift_objc_class_unknownGetInstanceExtentsFPMPs9AnyObject_T8negativeSu8positiveSu_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Tuple",
+          "printedName": "(negative: UInt, positive: UInt)",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "AnyClass",
+          "printedName": "AnyClass"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CustomDebugStringConvertible",
+      "printedName": "CustomDebugStringConvertible",
+      "declKind": "Protocol",
+      "usr": "s:Ps28CustomDebugStringConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vPs28CustomDebugStringConvertible16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs28CustomDebugStringConvertibleg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CustomDebugStringConvertible",
+                      "printedName": "CustomDebugStringConvertible"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CLongLong",
+      "printedName": "CLongLong",
+      "declKind": "TypeAlias",
+      "usr": "s:s9CLongLong",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int64",
+          "printedName": "Int64"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RangeReplaceableCollection",
+      "printedName": "RangeReplaceableCollection",
+      "declKind": "Protocol",
+      "usr": "s:Ps26RangeReplaceableCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FPs26RangeReplaceableCollectioncFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableCollection",
+                  "printedName": "RangeReplaceableCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection15replaceSubrangeuRd__s10CollectionWx8Iterator7Element_zWd__S1_S2__rFTGVs5Rangewx5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection15reserveCapacityFwx13IndexDistanceT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs26RangeReplaceableCollectioncFT9repeatingWx8Iterator7Element_5countSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableCollection",
+                  "printedName": "RangeReplaceableCollection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs26RangeReplaceableCollectioncuRd__s8SequenceWx8Iterator7Element_zWd__8IteratorS2__rFqd__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableCollection",
+                  "printedName": "RangeReplaceableCollection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection6appendFWx8Iterator7Element_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection6appenduRd__s8SequenceWx8Iterator7Element_zWd__8IteratorS2__rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection6insertFTWx8Iterator7Element_2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection6insertuRd__s10CollectionWx8Iterator7Element_zWd__S1_S2__rFT10contentsOfqd__2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection6removeFT2atwx5Index_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst()",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection11removeFirstFT_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection11removeFirstFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FPs26RangeReplaceableCollection9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FEsPs26RangeReplaceableCollectioncFT9repeatingWx8Iterator7Element_5countSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableCollection",
+                  "printedName": "RangeReplaceableCollection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FEsPs26RangeReplaceableCollectioncuRd__s8SequenceWx8Iterator7Element_zWd__8IteratorS2__rFqd__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableCollection",
+                  "printedName": "RangeReplaceableCollection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection6appendFWx8Iterator7Element_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection6appenduRd__s8SequenceWx8Iterator7Element_zWd__8IteratorS2__rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection6insertFTWx8Iterator7Element_2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection6insertuRd__s10CollectionWx8Iterator7Element_zWd__S1_S2__rFT10contentsOfqd__2atwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection6removeFT2atwx5Index_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection14removeSubrangeFGVs5Rangewx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection11removeFirstFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst()",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection11removeFirstFT_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection15reserveCapacityFwx13IndexDistanceT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst()",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionxzwx11SubSequencerS_11removeFirstFT_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionxzwx11SubSequencerS_11removeFirstFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionwx5Indexs10StrideableWxS0_6Stride_s13SignedIntegerrS_15replaceSubrangeuRd__s10CollectionWx8Iterator7Element_zWd__S5_S6__rFTGVs14CountableRangewxS0__4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionwx5Indexs10StrideableWxS0_6Stride_s13SignedIntegerrS_14removeSubrangeFGVs14CountableRangewxS0__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection15replaceSubrangeuRd__s10CollectionWx8Iterator7Element_zWd__S1_S2__rFTGVs11ClosedRangewx5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs26RangeReplaceableCollection14removeSubrangeFGVs11ClosedRangewx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionwx5Indexs10StrideableWxS0_6Stride_s13SignedIntegerrS_15replaceSubrangeuRd__s10CollectionWx8Iterator7Element_zWd__S5_S6__rFTGVs20CountableClosedRangewxS0__4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs26RangeReplaceableCollectionwx5Indexs10StrideableWxS0_6Stride_s13SignedIntegerrS_14removeSubrangeFGVs20CountableClosedRangewxS0__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs26RangeReplaceableCollectionrS0_10removeLastFT_WxPs10Collection8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs26RangeReplaceableCollectionrS0_10removeLastFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs26RangeReplaceableCollectionxzwxPS_11SubSequencerS0_10removeLastFT_WxPs10Collection8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeLast",
+          "printedName": "removeLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs26RangeReplaceableCollectionxzwxPS_11SubSequencerS0_10removeLastFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CountableRange",
+      "printedName": "CountableRange",
+      "declKind": "Struct",
+      "usr": "s:Vs14CountableRange",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "lowerBound",
+          "printedName": "lowerBound",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange10lowerBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg10lowerBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "upperBound",
+          "printedName": "upperBound",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange10upperBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg10upperBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange10startIndexx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg10startIndexx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange8endIndexx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg8endIndexx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange5indexFT5afterx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange5indexFT6beforex_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange5indexFTx8offsetBywxPs11_Strideable6Stride_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange8distanceFT4fromx2tox_wxPs11_Strideable6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange7indicesGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg7indicesGS_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(uncheckedBounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14CountableRangecFT15uncheckedBoundsT5lowerx5upperx__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(lower: Bound, upper: Bound)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14CountableRange8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<CountableRange<Bound>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14CountableRangecFGVs5Rangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange8overlapsFGVs5Rangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14CountableRangecFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange8overlapsFGS_x_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14CountableRangecFGVs11ClosedRangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange8overlapsFGVs11ClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14CountableRangecFGVs20CountableClosedRangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange8overlapsFGVs20CountableClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "clamped",
+          "printedName": "clamped(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs14CountableRange7clampedFT2toGS_x__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs14CountableRange12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CountableRangeg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Int16",
+      "printedName": "Int16",
+      "declKind": "Struct",
+      "usr": "s:Vs5Int16",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int169bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int1612littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs5Int1611byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int163maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int16g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int16",
+                      "printedName": "Int16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int163minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int16g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int16",
+                      "printedName": "Int16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int166Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int1618IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs5Int169hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs5Int1611descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int1615addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int1620subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int1620multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int1618divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int1621remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs5Int168toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternVs6UInt32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternVs5Int32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFT10bitPatternVs6UInt16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int168allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int16g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int16",
+                      "printedName": "Int16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int16cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs5Int1612customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs5Int1625customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int16g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int16",
+                  "printedName": "Int16"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Sequence",
+      "printedName": "Sequence",
+      "declKind": "Protocol",
+      "usr": "s:Ps8Sequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence12makeIteratorFT_wx8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vPs8Sequence19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs8Sequenceg19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence3mapurFzFzWx8Iterator7Element_qd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence6filterFzFzWx8Iterator7Element_SbGSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence7forEachFzFzWx8Iterator7Element_T_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence9dropFirstFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence8dropLastFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence6prefixFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence6suffixFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzWx8Iterator7Element_Sb_GSawx11SubSequence_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.SubSequence]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.SubSequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "first",
+          "printedName": "first(where:)",
+          "declKind": "Func",
+          "usr": "s:FPs8Sequence5firstFzT5whereFzWx8Iterator7Element_Sb_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sorted",
+          "printedName": "sorted()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s10ComparablerS_6sortedFT_GSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sorted",
+          "printedName": "sorted(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence6sortedFT2byFTWx8Iterator7Element_WxS0_S1___Sb_GSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_S_rS_6joinedFT_GVs15FlattenSequencex_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenSequence",
+              "printedName": "FlattenSequence<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined(separator:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_S_rS_6joineduRd__S_Wd__S0_S1__zWxS0_S1_S0_S1__rFT9separatorqd___GVs14JoinedSequencex_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "JoinedSequence",
+              "printedName": "JoinedSequence<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Separator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vEsPs8Sequence4lazyGVs12LazySequencex_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazySequence",
+              "printedName": "LazySequence<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs8Sequenceg4lazyGVs12LazySequencex_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazySequence",
+                  "printedName": "LazySequence<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Sequence",
+                          "printedName": "Sequence"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequencexzwxPS_8IteratorrS_12makeIteratorFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence3mapurFzFzWx8Iterator7Element_qd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence6filterFzFzWx8Iterator7Element_SbGSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence6suffixFSiGVs11AnySequenceWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Self.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzWx8Iterator7Element_Sb_GSaGVs11AnySequenceWxS0_S1____",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnySequence<Self.Iterator.Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnySequence",
+                  "printedName": "AnySequence<Self.Iterator.Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vEsPs8Sequence19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs8Sequenceg19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence7forEachFzFzWx8Iterator7Element_T_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "first",
+          "printedName": "first(where:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence5firstFzT5whereFzWx8Iterator7Element_Sb_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(separator:maxSplits:omittingEmptySubsequences:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s9EquatablerS_5splitFT9separatorWxS0_S1__9maxSplitsSi25omittingEmptySubsequencesSb_GSaGVs11AnySequenceWxS0_S1____",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnySequence<Self.Iterator.Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnySequence",
+                  "printedName": "AnySequence<Self.Iterator.Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Equatable",
+                          "printedName": "Equatable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Equatable",
+                  "printedName": "Equatable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencewx11SubSequenceS_wxS0_zWxS0_S0__Wx8Iterator7Element_zWxS0_S1_S2__rS_9dropFirstFSiGVs11AnySequenceWxS1_S2___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Self.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencewx11SubSequenceS_wxS0_zWxS0_S0__Wx8Iterator7Element_zWxS0_S1_S2__rS_8dropLastFSiGVs11AnySequenceWxS1_S2___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Self.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencewx11SubSequenceS_wxS0_zWxS0_S0__Wx8Iterator7Element_zWxS0_S1_S2__rS_6prefixFSiGVs11AnySequenceWxS1_S2___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Self.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst()",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence9dropFirstFT_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast()",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence8dropLastFT_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "enumerated",
+          "printedName": "enumerated()",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence10enumeratedFT_GVs18EnumeratedSequencex_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EnumeratedSequence",
+              "printedName": "EnumeratedSequence<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "min",
+          "printedName": "min(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence3minFzT2byFzTWx8Iterator7Element_WxS0_S1___Sb_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "max",
+          "printedName": "max(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence3maxFzT2byFzTWx8Iterator7Element_WxS0_S1___Sb_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "min",
+          "printedName": "min()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s10ComparablerS_3minFT_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "max",
+          "printedName": "max()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s10ComparablerS_3maxFT_GSqWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "starts",
+          "printedName": "starts(with:by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence6startsuRd__S_Wx8Iterator7Element_zWd__S0_S1__rFzT4withqd__2byFzTWxS0_S1__WxS0_S1___Sb_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "PossiblePrefix",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "starts",
+          "printedName": "starts(with:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s9EquatablerS_6startsuRd__S_WxS0_S1__zWd__S0_S1__rFT4withqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "PossiblePrefix",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "elementsEqual",
+          "printedName": "elementsEqual(_:by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence13elementsEqualuRd__S_Wx8Iterator7Element_zWd__S0_S1__rFzTqd__2byFzTWxS0_S1__WxS0_S1___Sb_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "OtherSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "elementsEqual",
+          "printedName": "elementsEqual(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s9EquatablerS_13elementsEqualuRd__S_WxS0_S1__zWd__S0_S1__rFqd__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "OtherSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "lexicographicallyPrecedes",
+          "printedName": "lexicographicallyPrecedes(_:by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence25lexicographicallyPrecedesuRd__S_Wx8Iterator7Element_zWd__S0_S1__rFzTqd__2byFzTWxS0_S1__WxS0_S1___Sb_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "OtherSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "lexicographicallyPrecedes",
+          "printedName": "lexicographicallyPrecedes(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s10ComparablerS_25lexicographicallyPrecedesuRd__S_WxS0_S1__zWd__S0_S1__rFqd__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "OtherSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_s9EquatablerS_8containsFWxS0_S1__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Equatable",
+                  "printedName": "Equatable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(where:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence8containsFzT5whereFzWx8Iterator7Element_Sb_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reduce",
+          "printedName": "reduce(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence6reduceurFzTqd__FzTqd__Wx8Iterator7Element__qd___qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Result, Self.Iterator.Element) throws -> Result",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Result"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Result, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Result"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reversed",
+          "printedName": "reversed()",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence8reversedFT_GSaWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence7flatMapuRd__S_rFzFzWx8Iterator7Element_qd__GSaWd__S0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[SegmentOfResult.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "SegmentOfResult.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> SegmentOfResult",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "SegmentOfResult",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs8Sequence7flatMapurFzFzWx8Iterator7Element_GSqqd___GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[ElementOfResult]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ElementOfResult"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> ElementOfResult?",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "ElementOfResult?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "ElementOfResult"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencexs16_SequenceWrapperwxPS_8IteratorzWxPS0_4BaseS1__rS_12makeIteratorFT_WxS2_S1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencexs16_SequenceWrapperwxPS_8IteratorzWxPS0_4BaseS1__rS_3mapurFzFzWxS2_S1_7Element_qd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Sequencexs16_SequenceWrapperwxPS_8IteratorzWxPS0_4BaseS1__rS_6filterFzFzWxS2_S1_7Element_SbGSaWxS2_S1_S3___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined(separator:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8SequenceWx8Iterator7Element_zSSrS_6joinedFT9separatorSS_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnicodeDecodingResult",
+      "printedName": "UnicodeDecodingResult",
+      "declKind": "Enum",
+      "usr": "s:Os21UnicodeDecodingResult",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "scalarValue",
+          "printedName": "scalarValue",
+          "declKind": "EnumElement",
+          "usr": "s:FOs21UnicodeDecodingResult11scalarValueFMS_FScS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnicodeDecodingResult.Type) -> (UnicodeScalar) -> UnicodeDecodingResult",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(UnicodeScalar) -> UnicodeDecodingResult",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeDecodingResult",
+                      "printedName": "UnicodeDecodingResult"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(UnicodeScalar)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalar",
+                          "printedName": "UnicodeScalar"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UnicodeDecodingResult.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeDecodingResult",
+                      "printedName": "UnicodeDecodingResult"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "emptyInput",
+          "printedName": "emptyInput",
+          "declKind": "EnumElement",
+          "usr": "s:FOs21UnicodeDecodingResult10emptyInputFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnicodeDecodingResult.Type) -> UnicodeDecodingResult",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeDecodingResult",
+                  "printedName": "UnicodeDecodingResult"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UnicodeDecodingResult.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeDecodingResult",
+                      "printedName": "UnicodeDecodingResult"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "error",
+          "printedName": "error",
+          "declKind": "EnumElement",
+          "usr": "s:FOs21UnicodeDecodingResult5errorFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnicodeDecodingResult.Type) -> UnicodeDecodingResult",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeDecodingResult",
+                  "printedName": "UnicodeDecodingResult"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UnicodeDecodingResult.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeDecodingResult",
+                      "printedName": "UnicodeDecodingResult"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CustomPlaygroundQuickLookable",
+      "printedName": "CustomPlaygroundQuickLookable",
+      "declKind": "Protocol",
+      "usr": "s:Ps29CustomPlaygroundQuickLookable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vPs29CustomPlaygroundQuickLookable25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs29CustomPlaygroundQuickLookableg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CustomPlaygroundQuickLookable",
+                      "printedName": "CustomPlaygroundQuickLookable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CInt",
+      "printedName": "CInt",
+      "declKind": "TypeAlias",
+      "usr": "s:s4CInt",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int32",
+          "printedName": "Int32"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableRangeReplaceableBidirectionalSlice",
+      "printedName": "MutableRangeReplaceableBidirectionalSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs41MutableRangeReplaceableBidirectionalSlice10startIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs41MutableRangeReplaceableBidirectionalSliceg10startIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableBidirectionalSlice",
+                  "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs41MutableRangeReplaceableBidirectionalSlice8endIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs41MutableRangeReplaceableBidirectionalSliceg8endIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableBidirectionalSlice",
+                  "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableBidirectionalSlice",
+              "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice5indexFT5afterwxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice9formIndexFT5afterRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice5indexFT6beforewxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice9formIndexFT6beforeRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice8distanceFT4fromwxPs13IndexableBase5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableBidirectionalSlice",
+              "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlicecFT9repeatingwxPs13IndexableBase8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableBidirectionalSlice",
+              "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlicecuRd__s8SequencewxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableBidirectionalSlice",
+              "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice15replaceSubrangeuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFTGVs5RangewxPS1_5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice6insertFTwxPs13IndexableBase8_Element2atwxPS0_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice6insertuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwxPS1_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice6removeFT2atwxPs13IndexableBase5Index_wxPS0_8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlice14removeSubrangeFGVs5RangewxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs41MutableRangeReplaceableBidirectionalSlicecFT4basex6boundsGVs5RangewxPs13IndexableBase5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableBidirectionalSlice",
+              "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs41MutableRangeReplaceableBidirectionalSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs41MutableRangeReplaceableBidirectionalSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableBidirectionalSlice",
+                  "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableRangeReplaceableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableBidirectionalSlice",
+                  "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs41MutableRangeReplaceableBidirectionalSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<MutableRangeReplaceableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableBidirectionalSlice",
+                  "printedName": "MutableRangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyMapSequence",
+      "printedName": "LazyMapSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs15LazyMapSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapSequence8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapSequence",
+              "printedName": "LazyMapSequence<Base, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs15LazyMapSequence12makeIteratorFT_GVs15LazyMapIteratorwx8Iteratorq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs15LazyMapSequence19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15LazyMapSequenceg19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapSequence",
+                  "printedName": "LazyMapSequence<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Sequence",
+                          "printedName": "Sequence"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15LazyMapSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RandomAccessSlice",
+      "printedName": "RandomAccessSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs17RandomAccessSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17RandomAccessSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17RandomAccessSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17RandomAccessSlice10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17RandomAccessSliceg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17RandomAccessSlice8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17RandomAccessSliceg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17RandomAccessSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs17RandomAccessSlice8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs17RandomAccessSlicecFT4basex6boundsGVs5Rangewx5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs17RandomAccessSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17RandomAccessSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17RandomAccessSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<RandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17RandomAccessSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<RandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Optional",
+      "printedName": "Optional",
+      "declKind": "Enum",
+      "usr": "s:Sq",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "none",
+          "printedName": "none",
+          "declKind": "EnumElement",
+          "usr": "s:FSq4noneurFMGSqx_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "GenericFunction",
+              "printedName": "<Wrapped> (Optional<Wrapped>.Type) -> Optional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Optional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Optional<Wrapped>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "Optional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "some",
+          "printedName": "some",
+          "declKind": "EnumElement",
+          "usr": "s:FSq4someurFMGSqx_FxGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "GenericFunction",
+              "printedName": "<Wrapped> (Optional<Wrapped>.Type) -> (Wrapped) -> Optional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Wrapped) -> Optional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "Optional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Optional<Wrapped>.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "Optional<Wrapped>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Wrapped"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSqcFxGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Optional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Wrapped"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Wrapped"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FSq3mapurFzFzxqd__GSqqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "U?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Wrapped) throws -> U",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Wrapped)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FSq7flatMapurFzFzxGSqqd___GSqqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "U?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Wrapped) throws -> U?",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "U?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Wrapped)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nilLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSqcFT10nilLiteralT__GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Optional<Wrapped>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Wrapped"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "unsafelyUnwrapped",
+          "printedName": "unsafelyUnwrapped",
+          "declKind": "Var",
+          "usr": "s:vSq17unsafelyUnwrappedx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Wrapped"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSqg17unsafelyUnwrappedx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Wrapped"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Optional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "unwrappedOrError",
+          "printedName": "unwrappedOrError()",
+          "declKind": "Func",
+          "usr": "s:FSq16unwrappedOrErrorFzT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Wrapped"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSq16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSqg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Optional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSq12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSqg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Optional<Wrapped>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Wrapped"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Int32",
+      "printedName": "Int32",
+      "declKind": "Struct",
+      "usr": "s:Vs5Int32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int329bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int3212littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs5Int3211byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int323maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int32g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int32",
+                      "printedName": "Int32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int323minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int32g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int32",
+                      "printedName": "Int32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int3218IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int326Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs5Int329hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs5Int3211descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int3215addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int3220subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int3220multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int3218divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int3221remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int32, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs5Int328toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFT10bitPatternVs6UInt32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int328allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int32g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int32.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int32",
+                      "printedName": "Int32"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int32cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int32?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs5Int3212customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs5Int3225customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int32g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CShort",
+      "printedName": "CShort",
+      "declKind": "TypeAlias",
+      "usr": "s:s6CShort",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int16",
+          "printedName": "Int16"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyMapRandomAccessCollection",
+      "printedName": "LazyMapRandomAccessCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs29LazyMapRandomAccessCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection5firstGSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong5firstGSqq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection4lastGSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong4lastGSqq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs29LazyMapRandomAccessCollection12makeIteratorFT_GVs15LazyMapIteratorwx8Iteratorq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs29LazyMapRandomAccessCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs29LazyMapRandomAccessCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<LazyMapRandomAccessCollection<Base, Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapRandomAccessCollection",
+                  "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapRandomAccessCollection",
+              "printedName": "LazyMapRandomAccessCollection<Base, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs29LazyMapRandomAccessCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "AnyClass",
+      "printedName": "AnyClass",
+      "declKind": "TypeAlias",
+      "usr": "s:s8AnyClass",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExistentialMetatype",
+          "printedName": "AnyObject.Type",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Int8",
+      "printedName": "Int8",
+      "declKind": "Struct",
+      "usr": "s:Vs4Int8",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs4Int83maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs4Int8g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int8",
+                      "printedName": "Int8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs4Int83minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs4Int8g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int8",
+                      "printedName": "Int8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs4Int818IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs4Int86Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs4Int89hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs4Int8g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs4Int811descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs4Int8g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4Int815addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4Int820subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4Int820multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4Int818divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4Int821remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs4Int88toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs6UInt16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs5Int16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs6UInt32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs5Int32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFT10bitPatternVs5UInt8_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs4Int88allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs4Int8g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int8",
+                      "printedName": "Int8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs4Int8cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs4Int812customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs4Int8g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs4Int825customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs4Int8g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int8",
+                  "printedName": "Int8"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UTF8",
+      "printedName": "UTF8",
+      "declKind": "Struct",
+      "usr": "s:Vs4UTF8",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "CodeUnit",
+          "printedName": "CodeUnit",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs4UTF88CodeUnit",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs4UTF8cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF8",
+              "printedName": "UTF8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "decode",
+          "printedName": "decode(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs4UTF86decodeuRxs16IteratorProtocolwx7ElementzVs5UInt8rFRxOs21UnicodeDecodingResult",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeDecodingResult",
+              "printedName": "UnicodeDecodingResult"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout I"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "encode",
+          "printedName": "encode(_:into:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4UTF86encodeFTSc4intoFVs5UInt8T__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UTF8.CodeUnit) -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UTF8.CodeUnit)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CodeUnit",
+                      "printedName": "UTF8.CodeUnit"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isContinuation",
+          "printedName": "isContinuation(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs4UTF814isContinuationFVs5UInt8Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CodeUnit",
+              "printedName": "UTF8.CodeUnit"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ClosedRangeIndex",
+      "printedName": "ClosedRangeIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs16ClosedRangeIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs16ClosedRangeIndexcFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs16ClosedRangeIndexcFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DictionaryIndexRepresentation",
+      "printedName": "DictionaryIndexRepresentation",
+      "declKind": "Enum",
+      "usr": "s:Os29DictionaryIndexRepresentation",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UTF16",
+      "printedName": "UTF16",
+      "declKind": "Struct",
+      "usr": "s:Vs5UTF16",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "CodeUnit",
+          "printedName": "CodeUnit",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5UTF168CodeUnit",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UTF16cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16",
+              "printedName": "UTF16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "decode",
+          "printedName": "decode(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs5UTF166decodeuRxs16IteratorProtocolwx7ElementzVs6UInt16rFRxOs21UnicodeDecodingResult",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeDecodingResult",
+              "printedName": "UnicodeDecodingResult"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout I"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "encode",
+          "printedName": "encode(_:into:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF166encodeFTSc4intoFVs6UInt16T__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UTF16.CodeUnit) -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UTF16.CodeUnit)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CodeUnit",
+                      "printedName": "UTF16.CodeUnit"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "width",
+          "printedName": "width(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF165widthFScSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "leadSurrogate",
+          "printedName": "leadSurrogate(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF1613leadSurrogateFScVs6UInt16",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CodeUnit",
+              "printedName": "UTF16.CodeUnit"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "trailSurrogate",
+          "printedName": "trailSurrogate(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF1614trailSurrogateFScVs6UInt16",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CodeUnit",
+              "printedName": "UTF16.CodeUnit"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLeadSurrogate",
+          "printedName": "isLeadSurrogate(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF1615isLeadSurrogateFVs6UInt16Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CodeUnit",
+              "printedName": "UTF16.CodeUnit"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isTrailSurrogate",
+          "printedName": "isTrailSurrogate(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF1616isTrailSurrogateFVs6UInt16Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CodeUnit",
+              "printedName": "UTF16.CodeUnit"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "transcodedLength",
+          "printedName": "transcodedLength(of:decodedAs:repairingIllFormedSequences:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF1616transcodedLengthu0_Rxs16IteratorProtocol_s12UnicodeCodecwx7Elementzw_8CodeUnitrFT2ofx9decodedAsMq_27repairingIllFormedSequencesSb_GSqT5countSi7isASCIISb__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(count: Int, isASCII: Bool)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(count: Int, isASCII: Bool)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Bool",
+                      "printedName": "Bool"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Input",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "Encoding.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Encoding",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeCodec",
+                      "printedName": "UnicodeCodec"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByIntegerLiteral",
+      "printedName": "ExpressibleByIntegerLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps27ExpressibleByIntegerLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs27ExpressibleByIntegerLiteralcFT14integerLiteralwx18IntegerLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByIntegerLiteral",
+                  "printedName": "ExpressibleByIntegerLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IntegerLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinIntegerLiteral",
+                  "printedName": "_ExpressibleByBuiltinIntegerLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "StrideThrough",
+      "printedName": "StrideThrough",
+      "declKind": "Struct",
+      "usr": "s:Vs13StrideThrough",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs13StrideThrough12makeIteratorFT_GVs21StrideThroughIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StrideThroughIterator",
+              "printedName": "StrideThroughIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs13StrideThrough12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13StrideThroughg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StrideThrough",
+                  "printedName": "StrideThrough<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Strideable",
+                          "printedName": "Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13StrideThrough8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StrideThroughIterator",
+              "printedName": "StrideThroughIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13StrideThrough11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Int64",
+      "printedName": "Int64",
+      "declKind": "Struct",
+      "usr": "s:Vs5Int64",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int649bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs5Int6412littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs5Int6411byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int643maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int64g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int64",
+                      "printedName": "Int64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int643minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int64g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int64",
+                      "printedName": "Int64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int6418IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Int646Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs5Int649hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs5Int6411descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int6415addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int6420subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int6420multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int6418divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5Int6421remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int64, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs5Int648toIntMaxFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFT10bitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs5Int648allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5Int64g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int64.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int64",
+                      "printedName": "Int64"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5Int64cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int64?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs5Int6412customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs5Int6425customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Int64g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int64",
+                  "printedName": "Int64"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CVaListPointer",
+      "printedName": "CVaListPointer",
+      "declKind": "Struct",
+      "usr": "s:Vs14CVaListPointer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "value",
+          "printedName": "value",
+          "declKind": "Var",
+          "usr": "s:vVs14CVaListPointer5valueSv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CVaListPointerg5valueSv",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CVaListPointer",
+                  "printedName": "CVaListPointer"
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CVaListPointers5valueSv",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout CVaListPointer"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs14CVaListPointer16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14CVaListPointerg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CVaListPointer",
+                  "printedName": "CVaListPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IndexingIterator",
+      "printedName": "IndexingIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs16IndexingIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs16IndexingIterator4nextFT_GSqwx8_Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Elements._Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements._Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IndexingIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements._Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IndexingIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IndexingIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Elements._Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements._Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DictionaryIndex",
+      "printedName": "DictionaryIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs15DictionaryIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "successor",
+          "printedName": "successor()",
+          "declKind": "Func",
+          "usr": "s:FVs15DictionaryIndex9successorFT_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryIndex",
+              "printedName": "DictionaryIndex<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UTF32",
+      "printedName": "UTF32",
+      "declKind": "Struct",
+      "usr": "s:Vs5UTF32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "CodeUnit",
+          "printedName": "CodeUnit",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5UTF328CodeUnit",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UTF32cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF32",
+              "printedName": "UTF32"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "decode",
+          "printedName": "decode(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs5UTF326decodeuRxs16IteratorProtocolwx7ElementzVs6UInt32rFRxOs21UnicodeDecodingResult",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeDecodingResult",
+              "printedName": "UnicodeDecodingResult"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout I"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "encode",
+          "printedName": "encode(_:into:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UTF326encodeFTSc4intoFVs6UInt32T__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UTF32.CodeUnit) -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UTF32.CodeUnit)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CodeUnit",
+                      "printedName": "UTF32.CodeUnit"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CUnsignedChar",
+      "printedName": "CUnsignedChar",
+      "declKind": "TypeAlias",
+      "usr": "s:s13CUnsignedChar",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt8",
+          "printedName": "UInt8"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Strideable",
+      "printedName": "Strideable",
+      "declKind": "Protocol",
+      "usr": "s:Ps10Strideable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Strideable8distanceFT2tox_wx6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedNumber",
+                  "printedName": "SignedNumber"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Strideable8advancedFT2bywx6Stride_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedNumber",
+                  "printedName": "SignedNumber"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "assert",
+      "printedName": "assert(_:_:file:line:)",
+      "declKind": "Func",
+      "usr": "s:Fs6assertFTKT_SbKT_SS4fileVs12StaticString4lineSu_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> Bool",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> String",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "StaticString",
+          "printedName": "StaticString"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyCollection",
+      "printedName": "AnyCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs13AnyCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncuRd__s10Collectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_S1__S0_xzWd__S2_8Iterator7Element_wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S5__wd__5IndexzWd__S2_S1_S3_S4__Wd__S1_S6__zWd__S2_S1_S3_S4__Wd__8IteratorS4__zWd__S2_S3_S4__Wd__S2_S1__zWd__S2_S1_S5__Wd__S2_S6__zWd__S2_S1_S3_S4__Wd__S1_S3_S4__zWd__S2_S1_S3_S4__Wd__S2_S1_S6__zWd__S2_S1_S3_S4__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncuRd__s23BidirectionalCollectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_7Indices_S0_xzWd__S2_8Iterator7Element_wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S6__wd__5IndexzWd__S2_S3_S4_S5__Wd__S1_S7__zWd__S2_S3_S4_S5__Wd__S2_S3__zWd__S2_S3_S6__Wd__S2_S7__zWd__S2_S3_S4_S5__Wd__8IteratorS5__zWd__S2_S4_S5__Wd__S1_S4_S5__zWd__S2_S3_S4_S5__Wd__S2_S3_S7__zWd__S2_S3_S4_S5__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncFGVs26AnyBidirectionalCollectionx_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncuRd__s22RandomAccessCollectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_7Indices_S0_xzWd__S2_8Iterator7Element_wd__5IndexzWd__S2_S3_S4_S5__wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S7__Wd__8IteratorS5__zWd__S2_S4_S5__Wd__S1_S6__zWd__S2_S3_S4_S5__Wd__S2_S3__zWd__S2_S3_S7__Wd__S2_S6__zWd__S2_S3_S4_S5__Wd__S1_S4_S5__zWd__S2_S3_S4_S5__Wd__S2_S3_S6__zWd__S2_S3_S4_S5__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessCollection",
+                  "printedName": "RandomAccessCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13AnyCollectioncFGVs25AnyRandomAccessCollectionx_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13AnyCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13AnyCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs13AnyCollection10startIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13AnyCollectiong10startIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs13AnyCollection8endIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13AnyCollectiong8endIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection5indexFT5afterVs8AnyIndex_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection9formIndexFT5afterRVs8AnyIndex_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection5indexFTVs8AnyIndex8offsetByVs5Int64_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection5indexFTVs8AnyIndex8offsetByVs5Int649limitedByS0__GSqS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyIndex?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int64_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int649limitedByS0__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection8distanceFT4fromVs8AnyIndex2toS0__Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs13AnyCollection5countVs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13AnyCollectiong5countVs5Int64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IntMax",
+                  "printedName": "IntMax"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs13AnyCollection5firstGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13AnyCollectiong5firstGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13AnyCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13AnyCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13AnyCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<AnyCollection<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection12makeIteratorFT_GVs11AnyIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs13AnyCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13AnyCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection3mapurFzFzxqd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection6filterFzFzxSbGSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection7forEachFzFzxT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection9dropFirstFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection8dropLastFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection6prefixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection6suffixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FVs13AnyCollection5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzxSb_GSaGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnyCollection<Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyCollection",
+                  "printedName": "AnyCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "numericCast",
+      "printedName": "numericCast(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs11numericCastu0_Rxs14_SignedInteger_S_rFxq_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "U",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "_SignedInteger",
+              "printedName": "_SignedInteger"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "_SignedInteger",
+              "printedName": "_SignedInteger"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "numericCast",
+      "printedName": "numericCast(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs11numericCastu0_Rxs15UnsignedInteger_S_rFxq_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "U",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsignedInteger",
+              "printedName": "UnsignedInteger"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsignedInteger",
+              "printedName": "UnsignedInteger"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "numericCast",
+      "printedName": "numericCast(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs11numericCastu0_Rxs14_SignedInteger_s15UnsignedIntegerrFxq_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "U",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsignedInteger",
+              "printedName": "UnsignedInteger"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "_SignedInteger",
+              "printedName": "_SignedInteger"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "numericCast",
+      "printedName": "numericCast(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs11numericCastu0_Rxs15UnsignedInteger_s14_SignedIntegerrFxq_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "U",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "_SignedInteger",
+              "printedName": "_SignedInteger"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsignedInteger",
+              "printedName": "UnsignedInteger"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "StringLiteralConvertible",
+      "printedName": "StringLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s24StringLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByStringLiteral",
+          "printedName": "ExpressibleByStringLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SetIndex",
+      "printedName": "SetIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs8SetIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Key",
+          "printedName": "Key",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8SetIndex3Key",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Value",
+          "printedName": "Value",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8SetIndex5Value",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "successor",
+          "printedName": "successor()",
+          "declKind": "Func",
+          "usr": "s:FVs8SetIndex9successorFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "OptionSet",
+      "printedName": "OptionSet",
+      "declKind": "Protocol",
+      "usr": "s:Ps9OptionSet",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(rawValue:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs9OptionSetcFT8rawValuewx8RawValue_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.RawValue"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "union",
+          "printedName": "union(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9OptionSet5unionFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "intersection",
+          "printedName": "intersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9OptionSet12intersectionFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "symmetricDifference",
+          "printedName": "symmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs9OptionSet19symmetricDifferenceFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetxzwx7ElementrS_8containsFxSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetxzwx7ElementrS_6insertFwxS0_T8insertedSb17memberAfterInsertwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(inserted: Bool, memberAfterInsert: Self)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "OptionSet",
+                      "printedName": "OptionSet"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetxzwx7ElementrS_6removeFwxS0_GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "OptionSet",
+                      "printedName": "OptionSet"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "update",
+          "printedName": "update(with:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetxzwx7ElementrS_6updateFT4withwxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "OptionSet",
+                      "printedName": "OptionSet"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_cFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formUnion",
+          "printedName": "formUnion(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_9formUnionFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIntersection",
+          "printedName": "formIntersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_16formIntersectionFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSymmetricDifference",
+          "printedName": "formSymmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs9OptionSetwx8RawValues17BitwiseOperationsrS_23formSymmetricDifferenceFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OptionSet",
+                  "printedName": "OptionSet"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CFloat",
+      "printedName": "CFloat",
+      "declKind": "TypeAlias",
+      "usr": "s:s6CFloat",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Float",
+          "printedName": "Float"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyFilterIndex",
+      "printedName": "LazyFilterIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs15LazyFilterIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs15LazyFilterIndex4basewx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15LazyFilterIndexg4basewx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIndex",
+                  "printedName": "LazyFilterIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs15LazyFilterIndexcFT4basewx5Index_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_SignedInteger",
+      "printedName": "_SignedInteger",
+      "declKind": "Protocol",
+      "usr": "s:Ps14_SignedInteger",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FPs14_SignedInteger8toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs14_SignedIntegercFVs5Int64x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_SignedInteger",
+                  "printedName": "_SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableRangeReplaceableRandomAccessSlice",
+      "printedName": "MutableRangeReplaceableRandomAccessSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs40MutableRangeReplaceableRandomAccessSlice10startIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs40MutableRangeReplaceableRandomAccessSliceg10startIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableRandomAccessSlice",
+                  "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs40MutableRangeReplaceableRandomAccessSlice8endIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs40MutableRangeReplaceableRandomAccessSliceg8endIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableRandomAccessSlice",
+                  "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableRandomAccessSlice",
+              "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice5indexFT5afterwxPs16MutableIndexable5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice9formIndexFT5afterRwxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice5indexFT6beforewxPs16MutableIndexable5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice9formIndexFT6beforeRwxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice8distanceFT4fromwxPs16MutableIndexable5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableRandomAccessSlice",
+              "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlicecFT9repeatingwxPs16MutableIndexable8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableRandomAccessSlice",
+              "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlicecuRd__s8SequencewxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableRandomAccessSlice",
+              "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice15replaceSubrangeuRd__s10CollectionwxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFTGVs5RangewxPS1_5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice6insertFTwxPs16MutableIndexable8_Element2atwxPS0_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice6insertuRd__s10CollectionwxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwxPS1_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice6removeFT2atwxPs16MutableIndexable5Index_wxPS0_8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlice14removeSubrangeFGVs5RangewxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs40MutableRangeReplaceableRandomAccessSlicecFT4basex6boundsGVs5RangewxPs16MutableIndexable5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableRandomAccessSlice",
+              "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs40MutableRangeReplaceableRandomAccessSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs40MutableRangeReplaceableRandomAccessSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableRandomAccessSlice",
+                  "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableRangeReplaceableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableRandomAccessSlice",
+                  "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs40MutableRangeReplaceableRandomAccessSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<MutableRangeReplaceableRandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableRandomAccessSlice",
+                  "printedName": "MutableRangeReplaceableRandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazySequenceProtocol",
+      "printedName": "LazySequenceProtocol",
+      "declKind": "Protocol",
+      "usr": "s:Ps20LazySequenceProtocol",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vPs20LazySequenceProtocol8elementswx8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Elements"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs20LazySequenceProtocolg8elementswx8Elements",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazySequenceProtocol",
+                      "printedName": "LazySequenceProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs20LazySequenceProtocol6filterFFWx8Elements8Iterator7Element_SbGVs18LazyFilterSequencewxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterSequence",
+              "printedName": "LazyFilterSequence<Self.Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> Bool",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs20LazySequenceProtocol7flatMapuRd__s8SequencerFFWx8Elements8Iterator7Element_qd__GVs12LazySequenceGVs15FlattenSequenceGVs15LazyMapSequencewxS1_qd_____",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazySequence",
+              "printedName": "LazySequence<FlattenSequence<LazyMapSequence<Self.Elements, SegmentOfResult>>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenSequence",
+                  "printedName": "FlattenSequence<LazyMapSequence<Self.Elements, SegmentOfResult>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapSequence",
+                      "printedName": "LazyMapSequence<Self.Elements, SegmentOfResult>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Sequence",
+                              "printedName": "Sequence"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "SegmentOfResult",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Sequence",
+                              "printedName": "Sequence"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> SegmentOfResult",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "SegmentOfResult",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "flatMap",
+          "printedName": "flatMap(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs20LazySequenceProtocol7flatMapurFFWx8Elements8Iterator7Element_GSqqd___GVs15LazyMapSequenceGVs18LazyFilterSequenceGS3_wxS0_GSqqd_____qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapSequence",
+              "printedName": "LazyMapSequence<LazyFilterSequence<LazyMapSequence<Self.Elements, ElementOfResult?>>, ElementOfResult>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterSequence",
+                  "printedName": "LazyFilterSequence<LazyMapSequence<Self.Elements, ElementOfResult?>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyMapSequence",
+                      "printedName": "LazyMapSequence<Self.Elements, ElementOfResult?>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Self.Elements",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Sequence",
+                              "printedName": "Sequence"
+                            }
+                          ]
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Optional",
+                          "printedName": "ElementOfResult?",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Archetype",
+                              "printedName": "ElementOfResult"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ElementOfResult"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> ElementOfResult?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "ElementOfResult?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "ElementOfResult"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs20LazySequenceProtocolWx8Iterator7Element_s8SequenceWxS0_S1__zWx8ElementsS0_S1__rS_6joinedFT_GVs12LazySequenceGVs15FlattenSequencewxS3___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazySequence",
+              "printedName": "LazySequence<FlattenSequence<Self.Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenSequence",
+                  "printedName": "FlattenSequence<Self.Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Sequence",
+                          "printedName": "Sequence"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vesRxs20LazySequenceProtocolxzwx8ElementsrS_8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs20LazySequenceProtocolxzwx8ElementsrS_g8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazySequenceProtocol",
+                      "printedName": "LazySequenceProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazySequenceProtocol",
+                      "printedName": "LazySequenceProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vEsPs20LazySequenceProtocol4lazyx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs20LazySequenceProtocolg4lazyx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazySequenceProtocol",
+                      "printedName": "LazySequenceProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazySequenceProtocol",
+                      "printedName": "LazySequenceProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs20LazySequenceProtocol3mapurFFWx8Elements8Iterator7Element_qd__GVs15LazyMapSequencewxS0_qd___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapSequence",
+              "printedName": "LazyMapSequence<Self.Elements, U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Elements.Iterator.Element) -> U",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Elements.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Elements.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeMutableRawPointer",
+      "printedName": "UnsafeMutableRawPointer",
+      "declKind": "Struct",
+      "usr": "s:Sv",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFSvSv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFGSqSv_GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFVs13OpaquePointerSv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFGSqVs13OpaquePointer_GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFT10bitPatternSi_GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFT10bitPatternSu_GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcurFGSpx_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcurFGSqGSpx__GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(mutating:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFT8mutatingSV_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(mutating:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcFT8mutatingGSqSV__GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "allocate",
+          "printedName": "allocate(bytes:alignedTo:)",
+          "declKind": "Func",
+          "usr": "s:ZFSv8allocateFT5bytesSi9alignedToSi_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "deallocate",
+          "printedName": "deallocate(bytes:alignedTo:)",
+          "declKind": "Func",
+          "usr": "s:FSv10deallocateFT5bytesSi9alignedToSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "bindMemory",
+          "printedName": "bindMemory(to:capacity:)",
+          "declKind": "Func",
+          "usr": "s:FSv10bindMemoryurFT2toMx8capacitySi_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "assumingMemoryBound",
+          "printedName": "assumingMemoryBound(to:)",
+          "declKind": "Func",
+          "usr": "s:FSv19assumingMemoryBoundurFT2toMx_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initializeMemory",
+          "printedName": "initializeMemory(as:at:count:to:)",
+          "declKind": "Func",
+          "usr": "s:FSv16initializeMemoryurFT2asMx2atSi5countSi2tox_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initializeMemory",
+          "printedName": "initializeMemory(as:from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSv16initializeMemoryurFT2asMx4fromGSPx_5countSi_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "initializeMemory",
+          "printedName": "initializeMemory(as:from:)",
+          "declKind": "Func",
+          "usr": "s:FSv16initializeMemoryuRxs10CollectionrFT2asMWx8Iterator7Element_4fromx_GSpWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<C.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "C.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "C.Iterator.Element.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "C.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "moveInitializeMemory",
+          "printedName": "moveInitializeMemory(as:from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSv20moveInitializeMemoryurFT2asMx4fromGSpx_5countSi_GSpx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "load",
+          "printedName": "load(fromByteOffset:as:)",
+          "declKind": "Func",
+          "usr": "s:FSv4loadurFT14fromByteOffsetSi2asMx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "storeBytes",
+          "printedName": "storeBytes(of:toByteOffset:as:)",
+          "declKind": "Func",
+          "usr": "s:FSv10storeBytesurFT2ofx12toByteOffsetSi2asMx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "copyBytes",
+          "printedName": "copyBytes(from:count:)",
+          "declKind": "Func",
+          "usr": "s:FSv9copyBytesFT4fromSV5countSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSv9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSvg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSv8distanceFT2toSv_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSv8advancedFT2bySi_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Sv6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcurFGVs33AutoreleasingUnsafeMutablePointerx_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AutoreleasingUnsafeMutablePointer",
+              "printedName": "AutoreleasingUnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSvcurFGSqGVs33AutoreleasingUnsafeMutablePointerx__GSqSv_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AutoreleasingUnsafeMutablePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSv16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSvg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSv12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSvg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "summary",
+          "printedName": "summary",
+          "declKind": "Var",
+          "usr": "s:vSv7summarySS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSvg7summarySS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSv25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSvg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IntegerArithmetic",
+      "printedName": "IntegerArithmetic",
+      "declKind": "Protocol",
+      "usr": "s:Ps17IntegerArithmetic",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FPs17IntegerArithmetic8toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyFilterBidirectionalCollection",
+      "printedName": "LazyFilterBidirectionalCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs33LazyFilterBidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs33LazyFilterBidirectionalCollection10startIndexGVs15LazyFilterIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33LazyFilterBidirectionalCollectiong10startIndexGVs15LazyFilterIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIndex",
+                  "printedName": "LazyFilterIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterBidirectionalCollection",
+                  "printedName": "LazyFilterBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs33LazyFilterBidirectionalCollection8endIndexGVs15LazyFilterIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33LazyFilterBidirectionalCollectiong8endIndexGVs15LazyFilterIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIndex",
+                  "printedName": "LazyFilterIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterBidirectionalCollection",
+                  "printedName": "LazyFilterBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs33LazyFilterBidirectionalCollection5indexFT5afterGVs15LazyFilterIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs33LazyFilterBidirectionalCollection9formIndexFT5afterRGVs15LazyFilterIndexx__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout LazyFilterIndex<Base>"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs33LazyFilterBidirectionalCollection5indexFT6beforeGVs15LazyFilterIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs33LazyFilterBidirectionalCollection9formIndexFT6beforeRGVs15LazyFilterIndexx__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout LazyFilterIndex<Base>"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs33LazyFilterBidirectionalCollection12makeIteratorFT_GVs18LazyFilterIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<LazyFilterBidirectionalCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterBidirectionalCollection",
+                  "printedName": "LazyFilterBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<LazyFilterBidirectionalCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterBidirectionalCollection",
+                  "printedName": "LazyFilterBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterBidirectionalCollection",
+              "printedName": "LazyFilterBidirectionalCollection<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs33LazyFilterBidirectionalCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CUnsignedInt",
+      "printedName": "CUnsignedInt",
+      "declKind": "TypeAlias",
+      "usr": "s:s12CUnsignedInt",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt32",
+          "printedName": "UInt32"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Range",
+      "printedName": "Range",
+      "declKind": "Struct",
+      "usr": "s:Vs5Range",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(uncheckedBounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5RangecFT15uncheckedBoundsT5lowerx5upperx__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(lower: Bound, upper: Bound)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lowerBound",
+          "printedName": "lowerBound",
+          "declKind": "Var",
+          "usr": "s:vVs5Range10lowerBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg10lowerBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "upperBound",
+          "printedName": "upperBound",
+          "declKind": "Var",
+          "usr": "s:vVs5Range10upperBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg10upperBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Range8containsFxSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs5Range7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5RangecFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Range8overlapsFGS_x_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5RangecFGVs14CountableRangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5Range8overlapsFGVs14CountableRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5RangecFGVs11ClosedRangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Range8overlapsFGVs11ClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5RangecFGVs20CountableClosedRangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5Range8overlapsFGVs20CountableClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "clamped",
+          "printedName": "clamped(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Range7clampedFT2toGS_x__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs5Range11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs5Range16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs5Range12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Rangeg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5Range5countwxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Bound.Stride"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs5Rangeg5countwxS1_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound.Stride",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "ExtendedGraphemeClusterType",
+      "printedName": "ExtendedGraphemeClusterType",
+      "declKind": "TypeAlias",
+      "usr": "s:s27ExtendedGraphemeClusterType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AutoreleasingUnsafeMutablePointer",
+      "printedName": "AutoreleasingUnsafeMutablePointer",
+      "declKind": "Struct",
+      "usr": "s:Vs33AutoreleasingUnsafeMutablePointer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "pointee",
+          "printedName": "pointee",
+          "declKind": "Var",
+          "usr": "s:vVs33AutoreleasingUnsafeMutablePointer7pointeex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Pointee"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33AutoreleasingUnsafeMutablePointerg7pointeex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33AutoreleasingUnsafeMutablePointers7pointeex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33AutoreleasingUnsafeMutablePointercurFGSpqd___GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AutoreleasingUnsafeMutablePointer",
+              "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33AutoreleasingUnsafeMutablePointercurFGSqGSpqd____GSqGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33AutoreleasingUnsafeMutablePointercurFGSPqd___GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AutoreleasingUnsafeMutablePointer",
+              "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Pointee"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<U>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "U"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs33AutoreleasingUnsafeMutablePointercurFGSqGSPqd____GSqGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs33AutoreleasingUnsafeMutablePointer16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs33AutoreleasingUnsafeMutablePointerg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<Pointee>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Pointee"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "transcode",
+      "printedName": "transcode(_:from:to:stoppingOnError:into:)",
+      "declKind": "Func",
+      "usr": "s:Fs9transcodeu1_Rxs16IteratorProtocol_s12UnicodeCodec0_S0_wx7Elementzw_8CodeUnitrFTx4fromMq_2toMq0_15stoppingOnErrorSb4intoFw0_S2_T__Sb",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Input",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorProtocol",
+              "printedName": "IteratorProtocol"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Metatype",
+          "printedName": "InputEncoding.Type",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "InputEncoding",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeCodec",
+                  "printedName": "UnicodeCodec"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Metatype",
+          "printedName": "OutputEncoding.Type",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "OutputEncoding",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeCodec",
+                  "printedName": "UnicodeCodec"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(OutputEncoding.CodeUnit) -> Void",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "Void"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(OutputEncoding.CodeUnit)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "OutputEncoding.CodeUnit"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "BidirectionalIndexable",
+      "printedName": "BidirectionalIndexable",
+      "declKind": "Protocol",
+      "usr": "s:Ps22BidirectionalIndexable",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FPs22BidirectionalIndexable5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FPs22BidirectionalIndexable9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22BidirectionalIndexable9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22BidirectionalIndexable5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22BidirectionalIndexable5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs22BidirectionalIndexable8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MirrorPath",
+      "printedName": "MirrorPath",
+      "declKind": "Protocol",
+      "usr": "s:Ps10MirrorPath",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "Function",
+      "name": "unsafeBitCast",
+      "printedName": "unsafeBitCast(_:to:)",
+      "declKind": "Func",
+      "usr": "s:Fs13unsafeBitCastu0_rFTx2toMq__q_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "U"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Metatype",
+          "printedName": "U.Type",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "U"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyFilterCollection",
+      "printedName": "LazyFilterCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs20LazyFilterCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs20LazyFilterCollection10startIndexGVs15LazyFilterIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20LazyFilterCollectiong10startIndexGVs15LazyFilterIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIndex",
+                  "printedName": "LazyFilterIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterCollection",
+                  "printedName": "LazyFilterCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs20LazyFilterCollection8endIndexGVs15LazyFilterIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20LazyFilterCollectiong8endIndexGVs15LazyFilterIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIndex",
+                  "printedName": "LazyFilterIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterCollection",
+                  "printedName": "LazyFilterCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs20LazyFilterCollection5indexFT5afterGVs15LazyFilterIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIndex",
+              "printedName": "LazyFilterIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs20LazyFilterCollection9formIndexFT5afterRGVs15LazyFilterIndexx__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout LazyFilterIndex<Base>"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs20LazyFilterCollection12makeIteratorFT_GVs18LazyFilterIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<LazyFilterCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterCollection",
+                  "printedName": "LazyFilterCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterCollection",
+              "printedName": "LazyFilterCollection<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20LazyFilterCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<LazyFilterCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterCollection",
+                  "printedName": "LazyFilterCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "SetIterator",
+      "printedName": "SetIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs11SetIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs11SetIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11SetIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs11SetIterator12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11SetIteratorg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetIterator",
+                  "printedName": "SetIterator<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazySequence",
+      "printedName": "LazySequence",
+      "declKind": "Struct",
+      "usr": "s:Vs12LazySequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vVs12LazySequence8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12LazySequenceg8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazySequence",
+                  "printedName": "LazySequence<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Sequence",
+                          "printedName": "Sequence"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Base",
+          "printedName": "Base",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12LazySequence4Base",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12LazySequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12LazySequence8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12LazySequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnicodeCodec",
+      "printedName": "UnicodeCodec",
+      "declKind": "Protocol",
+      "usr": "s:Ps12UnicodeCodec",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FPs12UnicodeCodeccFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeCodec",
+                  "printedName": "UnicodeCodec"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "decode",
+          "printedName": "decode(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs12UnicodeCodec6decodeuRd__s16IteratorProtocolwx8CodeUnitzwd__7ElementrFRqd__Os21UnicodeDecodingResult",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeDecodingResult",
+              "printedName": "UnicodeDecodingResult"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout I"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "encode",
+          "printedName": "encode(_:into:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs12UnicodeCodec6encodeFTSc4intoFwx8CodeUnitT__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.CodeUnit) -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.CodeUnit)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.CodeUnit"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IndexableBase",
+      "printedName": "IndexableBase",
+      "declKind": "Protocol",
+      "usr": "s:Ps13IndexableBase",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vPs13IndexableBase10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13IndexableBaseg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vPs13IndexableBase8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13IndexableBaseg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FPs13IndexableBase5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FPs13IndexableBase9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "ArrayLiteralConvertible",
+      "printedName": "ArrayLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s23ArrayLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByArrayLiteral",
+          "printedName": "ExpressibleByArrayLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Mirror",
+      "printedName": "Mirror",
+      "declKind": "Struct",
+      "usr": "s:Vs6Mirror",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeDecl",
+          "name": "AncestorRepresentation",
+          "printedName": "AncestorRepresentation",
+          "declKind": "Enum",
+          "usr": "s:OVs6Mirror22AncestorRepresentation",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "Var",
+              "name": "generated",
+              "printedName": "generated",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror22AncestorRepresentation9generatedFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.AncestorRepresentation.Type) -> Mirror.AncestorRepresentation",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AncestorRepresentation",
+                      "printedName": "Mirror.AncestorRepresentation"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.AncestorRepresentation.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "AncestorRepresentation",
+                          "printedName": "Mirror.AncestorRepresentation"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customized",
+              "printedName": "customized",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror22AncestorRepresentation10customizedFMS0_FFT_S_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.AncestorRepresentation.Type) -> (() -> Mirror) -> Mirror.AncestorRepresentation",
+                  "children": [
+                    {
+                      "kind": "TypeFunc",
+                      "name": "Function",
+                      "printedName": "(() -> Mirror) -> Mirror.AncestorRepresentation",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "AncestorRepresentation",
+                          "printedName": "Mirror.AncestorRepresentation"
+                        },
+                        {
+                          "kind": "TypeFunc",
+                          "name": "Paren",
+                          "printedName": "(() -> Mirror)",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Mirror",
+                              "printedName": "Mirror"
+                            },
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Void",
+                              "printedName": "()"
+                            }
+                          ]
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.AncestorRepresentation.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "AncestorRepresentation",
+                          "printedName": "Mirror.AncestorRepresentation"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "suppressed",
+              "printedName": "suppressed",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror22AncestorRepresentation10suppressedFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.AncestorRepresentation.Type) -> Mirror.AncestorRepresentation",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AncestorRepresentation",
+                      "printedName": "Mirror.AncestorRepresentation"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.AncestorRepresentation.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "AncestorRepresentation",
+                          "printedName": "Mirror.AncestorRepresentation"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(reflecting:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6MirrorcFT10reflectingP__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Child",
+          "printedName": "Child",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6Mirror5Child",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(label: String?, value: Any)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "String?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Children",
+          "printedName": "Children",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6Mirror8Children",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Mirror.Child>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Child",
+                  "printedName": "Mirror.Child"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "DisplayStyle",
+          "printedName": "DisplayStyle",
+          "declKind": "Enum",
+          "usr": "s:OVs6Mirror12DisplayStyle",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "Var",
+              "name": "struct",
+              "printedName": "struct",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle6structFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "class",
+              "printedName": "class",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle5classFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "enum",
+              "printedName": "enum",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle4enumFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "tuple",
+              "printedName": "tuple",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle5tupleFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "optional",
+              "printedName": "optional",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle8optionalFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "collection",
+              "printedName": "collection",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle10collectionFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "dictionary",
+              "printedName": "dictionary",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle10dictionaryFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "set",
+              "printedName": "set",
+              "declKind": "EnumElement",
+              "usr": "s:FOVs6Mirror12DisplayStyle3setFMS0_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Mirror.DisplayStyle.Type) -> Mirror.DisplayStyle",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Metatype",
+                      "printedName": "Mirror.DisplayStyle.Type",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "DisplayStyle",
+                          "printedName": "Mirror.DisplayStyle"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "hashValue",
+              "printedName": "hashValue",
+              "declKind": "Var",
+              "usr": "s:vOVs6Mirror12DisplayStyle9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FOVs6Mirror12DisplayStyleg9hashValueSi",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init(legacy:)",
+              "declKind": "Constructor",
+              "usr": "s:FOVs6Mirror12DisplayStylecFT6legacyOs18_MirrorDisposition_GSqS0__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Mirror.DisplayStyle?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_MirrorDisposition",
+                  "printedName": "_MirrorDisposition"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:children:displayStyle:ancestorRepresentation:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6Mirrorcu0_R_s10Collectionw_7IndicesS0_w_11SubSequenceS0_W_S2_S1__S0_w_S1_zW_S1_11SubSequence_w_S2_zW_S2_S3__w_5IndexzW_S2_S1_8Iterator7Element_W_S1_S4__zW_S2_S1_S5_S6__W_8IteratorS6__zT5labelGSqSS_5valueP__W_S2_S1__zW_S2_S1_S3__W_S2_S4__zW_S2_S1_S5_S6__W_S1_S5_S6__zW_S2_S1_S5_S6__W_S2_S1_S4__zW_S2_S1_S5_S6__W_S2_S5_S6__zT5labelGSqSS_5valueP__rFTx8childrenq_12displayStyleGSqOS_12DisplayStyle_22ancestorRepresentationOS_22AncestorRepresentation_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Subject"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Mirror.DisplayStyle?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DisplayStyle",
+                  "printedName": "Mirror.DisplayStyle"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AncestorRepresentation",
+              "printedName": "Mirror.AncestorRepresentation"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:unlabeledChildren:displayStyle:ancestorRepresentation:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6Mirrorcu0_R_s10Collectionw_7IndicesS0_w_11SubSequenceS0_w_S1_zW_S1_11SubSequence_w_S2_zW_S2_S3__w_5IndexzW_S1_8Iterator7Element_W_S1_S4__zW_S1_S5_S6__rFTx17unlabeledChildrenq_12displayStyleGSqOS_12DisplayStyle_22ancestorRepresentationOS_22AncestorRepresentation_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Subject"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Mirror.DisplayStyle?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DisplayStyle",
+                  "printedName": "Mirror.DisplayStyle"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AncestorRepresentation",
+              "printedName": "Mirror.AncestorRepresentation"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:children:displayStyle:ancestorRepresentation:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6MirrorcurFTx8childrenGVs17DictionaryLiteralSSP__12displayStyleGSqOS_12DisplayStyle_22ancestorRepresentationOS_22AncestorRepresentation_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Subject"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryLiteral",
+              "printedName": "DictionaryLiteral<String, Any>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Mirror.DisplayStyle?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DisplayStyle",
+                  "printedName": "Mirror.DisplayStyle"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AncestorRepresentation",
+              "printedName": "Mirror.AncestorRepresentation"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "subjectType",
+          "printedName": "subjectType",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror11subjectTypePMP_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ExistentialMetatype",
+              "printedName": "Any.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg11subjectTypePMP_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExistentialMetatype",
+                  "printedName": "Any.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ProtocolComposition",
+                      "printedName": "Any"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "children",
+          "printedName": "children",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror8childrenGVs13AnyCollectionT5labelGSqSS_5valueP___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Children",
+              "printedName": "Mirror.Children"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg8childrenGVs13AnyCollectionT5labelGSqSS_5valueP___",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Children",
+                  "printedName": "Mirror.Children"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "displayStyle",
+          "printedName": "displayStyle",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror12displayStyleGSqOS_12DisplayStyle_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Mirror.DisplayStyle?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DisplayStyle",
+                  "printedName": "Mirror.DisplayStyle"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg12displayStyleGSqOS_12DisplayStyle_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Mirror.DisplayStyle?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DisplayStyle",
+                      "printedName": "Mirror.DisplayStyle"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "superclassMirror",
+          "printedName": "superclassMirror",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror16superclassMirrorGSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Mirror?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg16superclassMirrorGSqS__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Mirror?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Mirror",
+                      "printedName": "Mirror"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "descendant",
+          "printedName": "descendant(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FVs6Mirror10descendantFtPs10MirrorPath_GSaPS0____GSqP__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Any?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "MirrorPath",
+              "printedName": "MirrorPath"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[MirrorPath]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MirrorPath",
+                  "printedName": "MirrorPath"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "LegacyChildren",
+          "printedName": "LegacyChildren",
+          "declKind": "Struct",
+          "usr": "s:VVs6Mirror14LegacyChildren",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeAlias",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "TypeAlias",
+              "usr": "s:VVs6Mirror14LegacyChildren7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Int>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init(_:)",
+              "declKind": "Constructor",
+              "usr": "s:FVVs6Mirror14LegacyChildrencFPs7_Mirror_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LegacyChildren",
+                  "printedName": "Mirror.LegacyChildren"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Mirror",
+                  "printedName": "_Mirror"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVVs6Mirror14LegacyChildren10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVVs6Mirror14LegacyChildreng10startIndexSi",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LegacyChildren",
+                      "printedName": "Mirror.LegacyChildren"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVVs6Mirror14LegacyChildren8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVVs6Mirror14LegacyChildreng8endIndexSi",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LegacyChildren",
+                      "printedName": "Mirror.LegacyChildren"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "TypeAlias",
+              "usr": "s:VVs6Mirror14LegacyChildren5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VVs6Mirror14LegacyChildren11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Mirror.LegacyChildren>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LegacyChildren",
+                      "printedName": "Mirror.LegacyChildren"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VVs6Mirror14LegacyChildren13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "TypeAlias",
+              "usr": "s:VVs6Mirror14LegacyChildren8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexingIterator",
+                  "printedName": "IndexingIterator<Mirror.LegacyChildren>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LegacyChildren",
+                      "printedName": "Mirror.LegacyChildren"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:subjectClass:ancestor:legacy:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6MirrorcFTPs9AnyObject_12subjectClassPMPS0__8ancestorS_6legacyGSqPs7_Mirror___S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyClass",
+              "printedName": "AnyClass"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "_Mirror?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Mirror",
+                  "printedName": "_Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(legacy:subjectType:makeSuperclassMirror:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6MirrorcFT6legacyPs7_Mirror_11subjectTypePMP_20makeSuperclassMirrorGSqFT_GSqS____S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "_Mirror",
+              "printedName": "_Mirror"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ExistentialMetatype",
+              "printedName": "Any.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(() -> Mirror?)?",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Paren",
+                  "printedName": "(() -> Mirror?)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "Mirror?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Mirror",
+                          "printedName": "Mirror"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Void",
+                      "printedName": "()"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs6Mirror12customMirrorS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6Mirrorg12customMirrorS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Var",
+      "name": "kCFStringEncodingASCII",
+      "printedName": "kCFStringEncodingASCII",
+      "declKind": "Var",
+      "usr": "s:vs22kCFStringEncodingASCIIVs6UInt32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "_swift_shims_CFStringEncoding",
+          "printedName": "_swift_shims_CFStringEncoding"
+        },
+        {
+          "kind": "Getter",
+          "name": "_",
+          "printedName": "_()",
+          "declKind": "Func",
+          "usr": "s:Fsg22kCFStringEncodingASCIIVs6UInt32",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "_swift_shims_CFStringEncoding",
+              "printedName": "_swift_shims_CFStringEncoding"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyHashable",
+      "printedName": "AnyHashable",
+      "declKind": "Struct",
+      "usr": "s:Vs11AnyHashable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11AnyHashablecuRxs8HashablerFxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyHashable",
+              "printedName": "AnyHashable"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "H",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs11AnyHashable4baseP_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnyHashableg4baseP_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyHashable",
+                  "printedName": "AnyHashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs11AnyHashable9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnyHashableg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyHashable",
+                  "printedName": "AnyHashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs11AnyHashable11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnyHashableg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyHashable",
+                  "printedName": "AnyHashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs11AnyHashable16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnyHashableg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyHashable",
+                  "printedName": "AnyHashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs11AnyHashable12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnyHashableg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyHashable",
+                  "printedName": "AnyHashable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CVarArg",
+      "printedName": "CVarArg",
+      "declKind": "Protocol",
+      "usr": "s:Ps7CVarArg",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "OpaquePointer",
+      "printedName": "OpaquePointer",
+      "declKind": "Struct",
+      "usr": "s:Vs13OpaquePointer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFBpS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "RawPointer",
+              "printedName": "RawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFT10bitPatternSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFT10bitPatternSu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercurFGSPx_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercurFGSqGSPx__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercurFGSpx_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercurFGSqGSpx__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs13OpaquePointer9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13OpaquePointerg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs13OpaquePointer16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs13OpaquePointerg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFSvS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFGSqSv_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFSVS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs13OpaquePointercFGSqSV_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "BitwiseOperations",
+      "printedName": "BitwiseOperations",
+      "declKind": "Protocol",
+      "usr": "s:Ps17BitwiseOperations",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvPs17BitwiseOperations8allZerosx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs17BitwiseOperationsg8allZerosx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "precondition",
+      "printedName": "precondition(_:_:file:line:)",
+      "declKind": "Func",
+      "usr": "s:Fs12preconditionFTKT_SbKT_SS4fileVs12StaticString4lineSu_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> Bool",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> String",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "StaticString",
+          "printedName": "StaticString"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "EmptyIterator",
+      "printedName": "EmptyIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs13EmptyIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs13EmptyIteratorcFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyIterator",
+              "printedName": "EmptyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs13EmptyIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13EmptyIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13EmptyIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EmptyIterator",
+              "printedName": "EmptyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs13EmptyIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnfoldSequence",
+      "printedName": "UnfoldSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs14UnfoldSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs14UnfoldSequence4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14UnfoldSequence7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14UnfoldSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnfoldSequence",
+              "printedName": "UnfoldSequence<Element, State>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "State"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14UnfoldSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "StringLiteralType",
+      "printedName": "StringLiteralType",
+      "declKind": "TypeAlias",
+      "usr": "s:s17StringLiteralType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ReversedRandomAccessIndex",
+      "printedName": "ReversedRandomAccessIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs25ReversedRandomAccessIndex",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25ReversedRandomAccessIndexcFwx5IndexGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs25ReversedRandomAccessIndex4basewx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25ReversedRandomAccessIndexg4basewx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessIndex",
+                  "printedName": "ReversedRandomAccessIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "PlaygroundQuickLook",
+      "printedName": "PlaygroundQuickLook",
+      "declKind": "Enum",
+      "usr": "s:Os19PlaygroundQuickLook",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "text",
+          "printedName": "text",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook4textFMS_FSSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (String) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(String) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(String)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "String",
+                          "printedName": "String"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "int",
+          "printedName": "int",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook3intFMS_FVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Int64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Int64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Int64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int64",
+                          "printedName": "Int64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "uInt",
+          "printedName": "uInt",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook4uIntFMS_FVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (UInt64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(UInt64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(UInt64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UInt64",
+                          "printedName": "UInt64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "float",
+          "printedName": "float",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5floatFMS_FSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Float32) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Float32) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Float32)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float32",
+                          "printedName": "Float32"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "double",
+          "printedName": "double",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook6doubleFMS_FSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Float64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Float64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Float64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "image",
+          "printedName": "image",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5imageFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sound",
+          "printedName": "sound",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5soundFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "color",
+          "printedName": "color",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5colorFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bezierPath",
+          "printedName": "bezierPath",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook10bezierPathFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "attributedString",
+          "printedName": "attributedString",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook16attributedStringFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "rectangle",
+          "printedName": "rectangle",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook9rectangleFMS_FTSdSdSdSd_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Float64, Float64, Float64, Float64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Float64, Float64, Float64, Float64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Tuple",
+                      "printedName": "(Float64, Float64, Float64, Float64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "point",
+          "printedName": "point",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5pointFMS_FTSdSd_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Float64, Float64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Float64, Float64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Tuple",
+                      "printedName": "(Float64, Float64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "size",
+          "printedName": "size",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook4sizeFMS_FTSdSd_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Float64, Float64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Float64, Float64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Tuple",
+                      "printedName": "(Float64, Float64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Float64",
+                          "printedName": "Float64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bool",
+          "printedName": "bool",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook4boolFMS_FSbS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Bool) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Bool) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Bool)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Bool",
+                          "printedName": "Bool"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "range",
+          "printedName": "range",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook5rangeFMS_FTVs5Int64S0__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Int64, Int64) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Int64, Int64) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Tuple",
+                      "printedName": "(Int64, Int64)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int64",
+                          "printedName": "Int64"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int64",
+                          "printedName": "Int64"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "view",
+          "printedName": "view",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook4viewFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sprite",
+          "printedName": "sprite",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook6spriteFMS_FP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (Any) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(Any) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(Any)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "ProtocolComposition",
+                          "printedName": "Any"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "url",
+          "printedName": "url",
+          "declKind": "EnumElement",
+          "usr": "s:FOs19PlaygroundQuickLook3urlFMS_FSSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(PlaygroundQuickLook.Type) -> (String) -> PlaygroundQuickLook",
+              "children": [
+                {
+                  "kind": "TypeFunc",
+                  "name": "Function",
+                  "printedName": "(String) -> PlaygroundQuickLook",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Paren",
+                      "printedName": "(String)",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "String",
+                          "printedName": "String"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "PlaygroundQuickLook.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(reflecting:)",
+          "declKind": "Constructor",
+          "usr": "s:FOs19PlaygroundQuickLookcFT10reflectingP__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ProtocolComposition",
+              "printedName": "Any"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "IntegerLiteralConvertible",
+      "printedName": "IntegerLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s25IntegerLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByIntegerLiteral",
+          "printedName": "ExpressibleByIntegerLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "withUnsafePointer",
+      "printedName": "withUnsafePointer(to:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs17withUnsafePointeru0_rFzT2toRxFzGSPx_q__q_",
+      "location": "",
+      "moduleName": "Swift",
+      "throwing": true,
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Result"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(UnsafePointer<T>) throws -> Result",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(UnsafePointer<T>)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "max",
+      "printedName": "max(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3maxuRxs10ComparablerFTxx_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "max",
+      "printedName": "max(_:_:_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3maxuRxs10ComparablerFtxxxGSax__x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[T]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyIterator",
+      "printedName": "AnyIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs11AnyIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11AnyIteratorcuRd__s16IteratorProtocolxzwd__7ElementrFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "I",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11AnyIteratorcFFT_GSqx_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "() -> Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs11AnyIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11AnyIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11AnyIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11AnyIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenBidirectionalCollection",
+      "printedName": "FlattenBidirectionalCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs30FlattenBidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30FlattenBidirectionalCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30FlattenBidirectionalCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs30FlattenBidirectionalCollectioncFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollection",
+              "printedName": "FlattenBidirectionalCollection<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs30FlattenBidirectionalCollection12makeIteratorFT_GVs15FlattenIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30FlattenBidirectionalCollection10startIndexGVs35FlattenBidirectionalCollectionIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30FlattenBidirectionalCollectiong10startIndexGVs35FlattenBidirectionalCollectionIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollectionIndex",
+                  "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30FlattenBidirectionalCollection8endIndexGVs35FlattenBidirectionalCollectionIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30FlattenBidirectionalCollectiong8endIndexGVs35FlattenBidirectionalCollectionIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollectionIndex",
+                  "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs30FlattenBidirectionalCollection5indexFT5afterGVs35FlattenBidirectionalCollectionIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs30FlattenBidirectionalCollection5indexFT6beforeGVs35FlattenBidirectionalCollectionIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenBidirectionalCollectionIndex",
+              "printedName": "FlattenBidirectionalCollectionIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs30FlattenBidirectionalCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30FlattenBidirectionalCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs30FlattenBidirectionalCollection7forEachFzFzWx8Iterator7ElementS0_S1__T_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Base.Iterator.Element.Iterator.Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Base.Iterator.Element.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30FlattenBidirectionalCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<FlattenBidirectionalCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30FlattenBidirectionalCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<FlattenBidirectionalCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FlattenBidirectionalCollection",
+                  "printedName": "FlattenBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30FlattenBidirectionalCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableCollection",
+      "printedName": "MutableCollection",
+      "declKind": "Protocol",
+      "usr": "s:Ps17MutableCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "partition",
+          "printedName": "partition(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs17MutableCollection9partitionFzT2byFzWx8Iterator7Element_Sb_wx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "partition",
+          "printedName": "partition(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs17MutableCollection9partitionFzT2byFzWx8Iterator7Element_Sb_wx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "partition",
+          "printedName": "partition(by:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs17MutableCollectionrS0_9partitionFzT2byFzWxPs10Collection8Iterator7Element_Sb_wxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sorted",
+          "printedName": "sorted()",
+          "declKind": "Func",
+          "usr": "s:FesRxs17MutableCollectionWx8Iterator7Element_s10ComparablerS_6sortedFT_GSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sorted",
+          "printedName": "sorted(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs17MutableCollection6sortedFT2byFTWx8Iterator7Element_WxS0_S1___Sb_GSaWxS0_S1___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Iterator.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sort",
+          "printedName": "sort()",
+          "declKind": "Func",
+          "usr": "s:FesRxs17MutableCollectionxs22RandomAccessCollectionWxPs10Collection8Iterator7Element_s10ComparablerS_4sortFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "sort",
+          "printedName": "sort(by:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs17MutableCollectionxs22RandomAccessCollectionrS_4sortFT2byFTWxPs10Collection8Iterator7Element_WxS2_S3___Sb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element, Self.Iterator.Element) -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Iterator.Element, Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reverse",
+          "printedName": "reverse()",
+          "declKind": "Func",
+          "usr": "s:FesRxs23BidirectionalCollectionxs17MutableCollectionrS0_7reverseFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DefaultRandomAccessIndices",
+      "printedName": "DefaultRandomAccessIndices",
+      "declKind": "Struct",
+      "usr": "s:Vs26DefaultRandomAccessIndices",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26DefaultRandomAccessIndices5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26DefaultRandomAccessIndices10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26DefaultRandomAccessIndicesg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26DefaultRandomAccessIndices8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26DefaultRandomAccessIndicesg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26DefaultRandomAccessIndices11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs26DefaultRandomAccessIndices5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs26DefaultRandomAccessIndices9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Elements.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs26DefaultRandomAccessIndices5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs26DefaultRandomAccessIndices9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Elements.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26DefaultRandomAccessIndices7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs26DefaultRandomAccessIndices7indicesGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Elements"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26DefaultRandomAccessIndicesg7indicesGS_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26DefaultRandomAccessIndices13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26DefaultRandomAccessIndices8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<DefaultRandomAccessIndices<Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessIndexable",
+                          "printedName": "RandomAccessIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ManagedBufferPointer",
+      "printedName": "ManagedBufferPointer",
+      "declKind": "Struct",
+      "usr": "s:Vs20ManagedBufferPointer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bufferClass:minimumCapacity:makingHeaderWith:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20ManagedBufferPointercFzT11bufferClassPMPs9AnyObject_15minimumCapacitySi16makingHeaderWithFzTPS0__FPS0__Si_x_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBufferPointer",
+              "printedName": "ManagedBufferPointer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyClass",
+              "printedName": "AnyClass"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(AnyObject, (AnyObject) -> Int) throws -> Header",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(AnyObject, (AnyObject) -> Int)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    },
+                    {
+                      "kind": "TypeFunc",
+                      "name": "Function",
+                      "printedName": "(AnyObject) -> Int",
+                      "typeAttributes": [
+                        "noescape"
+                      ],
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int",
+                          "printedName": "Int"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Paren",
+                          "printedName": "(AnyObject)",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "AnyObject",
+                              "printedName": "AnyObject"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unsafeBufferObject:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20ManagedBufferPointercFT18unsafeBufferObjectPs9AnyObject__GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBufferPointer",
+              "printedName": "ManagedBufferPointer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "header",
+          "printedName": "header",
+          "declKind": "Var",
+          "usr": "s:vVs20ManagedBufferPointer6headerx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Header"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20ManagedBufferPointerg6headerx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBufferPointer",
+                  "printedName": "ManagedBufferPointer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20ManagedBufferPointers6headerx",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout ManagedBufferPointer<Header, Element>"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "buffer",
+          "printedName": "buffer",
+          "declKind": "Var",
+          "usr": "s:vVs20ManagedBufferPointer6bufferPs9AnyObject_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20ManagedBufferPointerg6bufferPs9AnyObject_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBufferPointer",
+                  "printedName": "ManagedBufferPointer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "capacity",
+          "printedName": "capacity",
+          "declKind": "Var",
+          "usr": "s:vVs20ManagedBufferPointer8capacitySi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20ManagedBufferPointerg8capacitySi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBufferPointer",
+                  "printedName": "ManagedBufferPointer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointerToHeader",
+          "printedName": "withUnsafeMutablePointerToHeader(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20ManagedBufferPointer32withUnsafeMutablePointerToHeaderurFzFzGSpx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Header>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<Header>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Header>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Header"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointerToElements",
+          "printedName": "withUnsafeMutablePointerToElements(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20ManagedBufferPointer34withUnsafeMutablePointerToElementsurFzFzGSpq__qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointers",
+          "printedName": "withUnsafeMutablePointers(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20ManagedBufferPointer25withUnsafeMutablePointersurFzFzTGSpx_GSpq___qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Header>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Header"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isUniqueReference",
+          "printedName": "isUniqueReference()",
+          "declKind": "Func",
+          "usr": "s:FVs20ManagedBufferPointer17isUniqueReferenceFT_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bufferClass:minimumCapacity:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20ManagedBufferPointercFT11bufferClassPMPs9AnyObject_15minimumCapacitySi_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBufferPointer",
+              "printedName": "ManagedBufferPointer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyClass",
+              "printedName": "AnyClass"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20ManagedBufferPointercFGCs13ManagedBufferxq__GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBufferPointer",
+              "printedName": "ManagedBufferPointer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBuffer",
+              "printedName": "ManagedBuffer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "UnfoldFirstSequence",
+      "printedName": "UnfoldFirstSequence",
+      "declKind": "TypeAlias",
+      "usr": "s:s19UnfoldFirstSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UnfoldSequence",
+          "printedName": "UnfoldSequence<T, (T?, Bool)>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(T?, Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "T?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "BidirectionalSlice",
+      "printedName": "BidirectionalSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs18BidirectionalSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18BidirectionalSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18BidirectionalSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs18BidirectionalSlice10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18BidirectionalSliceg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs18BidirectionalSlice8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18BidirectionalSliceg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18BidirectionalSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs18BidirectionalSlice8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs18BidirectionalSlicecFT4basex6boundsGVs5Rangewx5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs18BidirectionalSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18BidirectionalSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18BidirectionalSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<BidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18BidirectionalSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<BidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "BooleanLiteralType",
+      "printedName": "BooleanLiteralType",
+      "declKind": "TypeAlias",
+      "usr": "s:s18BooleanLiteralType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Unmanaged",
+      "printedName": "Unmanaged",
+      "declKind": "Struct",
+      "usr": "s:Vs9Unmanaged",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "fromOpaque",
+          "printedName": "fromOpaque(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs9Unmanaged10fromOpaqueFSVGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Unmanaged",
+              "printedName": "Unmanaged<Instance>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Instance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toOpaque",
+          "printedName": "toOpaque()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged8toOpaqueFT_Sv",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "passRetained",
+          "printedName": "passRetained(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs9Unmanaged12passRetainedFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Unmanaged",
+              "printedName": "Unmanaged<Instance>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Instance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Instance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "passUnretained",
+          "printedName": "passUnretained(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs9Unmanaged14passUnretainedFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Unmanaged",
+              "printedName": "Unmanaged<Instance>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Instance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Instance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "takeUnretainedValue",
+          "printedName": "takeUnretainedValue()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged19takeUnretainedValueFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Instance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "takeRetainedValue",
+          "printedName": "takeRetainedValue()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged17takeRetainedValueFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Instance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "retain",
+          "printedName": "retain()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged6retainFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Unmanaged",
+              "printedName": "Unmanaged<Instance>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Instance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "release",
+          "printedName": "release()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged7releaseFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "autorelease",
+          "printedName": "autorelease()",
+          "declKind": "Func",
+          "usr": "s:FVs9Unmanaged11autoreleaseFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Unmanaged",
+              "printedName": "Unmanaged<Instance>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Instance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "AnyObject",
+                      "printedName": "AnyObject"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "zip",
+      "printedName": "zip(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3zipu0_Rxs8Sequence_S_rFTxq__GVs12Zip2Sequencexq__",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Zip2Sequence",
+          "printedName": "Zip2Sequence<Sequence1, Sequence2>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Sequence1",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Sequence2",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Sequence1",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Sequence",
+              "printedName": "Sequence"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Sequence2",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Sequence",
+              "printedName": "Sequence"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableRangeReplaceableSlice",
+      "printedName": "MutableRangeReplaceableSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs28MutableRangeReplaceableSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs28MutableRangeReplaceableSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs28MutableRangeReplaceableSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs28MutableRangeReplaceableSlice10startIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs28MutableRangeReplaceableSliceg10startIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableSlice",
+                  "printedName": "MutableRangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs28MutableRangeReplaceableSlice8endIndexwxPs16MutableIndexable5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs28MutableRangeReplaceableSliceg8endIndexwxPs16MutableIndexable5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableSlice",
+                  "printedName": "MutableRangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs28MutableRangeReplaceableSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableSlice",
+              "printedName": "MutableRangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice5indexFT5afterwxPs16MutableIndexable5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice9formIndexFT5afterRwxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice5indexFTwxPs16MutableIndexable5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice8distanceFT4fromwxPs16MutableIndexable5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs28MutableRangeReplaceableSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableSlice",
+              "printedName": "MutableRangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs28MutableRangeReplaceableSlicecFT9repeatingwxPs16MutableIndexable8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableSlice",
+              "printedName": "MutableRangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs28MutableRangeReplaceableSlicecuRd__s8SequencewxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableSlice",
+              "printedName": "MutableRangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice15replaceSubrangeuRd__s10CollectionwxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFTGVs5RangewxPS1_5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice6insertFTwxPs16MutableIndexable8_Element2atwxPS0_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice6insertuRd__s10CollectionwxPs16MutableIndexable8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwxPS1_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice6removeFT2atwxPs16MutableIndexable5Index_wxPS0_8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs28MutableRangeReplaceableSlice14removeSubrangeFGVs5RangewxPs16MutableIndexable5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs28MutableRangeReplaceableSlicecFT4basex6boundsGVs5RangewxPs16MutableIndexable5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRangeReplaceableSlice",
+              "printedName": "MutableRangeReplaceableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs28MutableRangeReplaceableSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs28MutableRangeReplaceableSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableSlice",
+                  "printedName": "MutableRangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs28MutableRangeReplaceableSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableRangeReplaceableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableSlice",
+                  "printedName": "MutableRangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs28MutableRangeReplaceableSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<MutableRangeReplaceableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableRangeReplaceableSlice",
+                  "printedName": "MutableRangeReplaceableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DefaultBidirectionalIndices",
+      "printedName": "DefaultBidirectionalIndices",
+      "declKind": "Struct",
+      "usr": "s:Vs27DefaultBidirectionalIndices",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27DefaultBidirectionalIndices5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs27DefaultBidirectionalIndices10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27DefaultBidirectionalIndicesg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs27DefaultBidirectionalIndices8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Elements.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27DefaultBidirectionalIndicesg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27DefaultBidirectionalIndices11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs27DefaultBidirectionalIndices5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs27DefaultBidirectionalIndices9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Elements.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs27DefaultBidirectionalIndices5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Elements.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs27DefaultBidirectionalIndices9formIndexFT6beforeRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Elements.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27DefaultBidirectionalIndices7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Elements",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs27DefaultBidirectionalIndices7indicesGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<Elements>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Elements"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27DefaultBidirectionalIndicesg7indicesGS_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27DefaultBidirectionalIndices13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27DefaultBidirectionalIndices8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<DefaultBidirectionalIndices<Elements>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<Elements>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Elements",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByStringInterpolation",
+      "printedName": "ExpressibleByStringInterpolation",
+      "declKind": "Protocol",
+      "usr": "s:Ps32ExpressibleByStringInterpolation",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolation:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs32ExpressibleByStringInterpolationcFt19stringInterpolationGSax__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByStringInterpolation",
+                  "printedName": "ExpressibleByStringInterpolation"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ExpressibleByStringInterpolation",
+                      "printedName": "ExpressibleByStringInterpolation"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs32ExpressibleByStringInterpolationcurFT26stringInterpolationSegmentqd___x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByStringInterpolation",
+                  "printedName": "ExpressibleByStringInterpolation"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Never",
+      "printedName": "Never",
+      "declKind": "Enum",
+      "usr": "s:Os5Never",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByExtendedGraphemeClusterLiteral",
+      "printedName": "ExpressibleByExtendedGraphemeClusterLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps43ExpressibleByExtendedGraphemeClusterLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(extendedGraphemeClusterLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs43ExpressibleByExtendedGraphemeClusterLiteralcFT30extendedGraphemeClusterLiteralwx34ExtendedGraphemeClusterLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByExtendedGraphemeClusterLiteral",
+                  "printedName": "ExpressibleByExtendedGraphemeClusterLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.ExtendedGraphemeClusterLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinExtendedGraphemeClusterLiteral",
+                  "printedName": "_ExpressibleByBuiltinExtendedGraphemeClusterLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ContiguousArray",
+      "printedName": "ContiguousArray",
+      "declKind": "Struct",
+      "usr": "s:Vs15ContiguousArray",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<ContiguousArray<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray9formIndexFT5afterRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray9formIndexFT6beforeRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs15ContiguousArraycFt12arrayLiteralGSax__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ContiguousArray",
+              "printedName": "ContiguousArray<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15ContiguousArray7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs15ContiguousArraycFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ContiguousArray",
+              "printedName": "ContiguousArray<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs15ContiguousArraycuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ContiguousArray",
+              "printedName": "ContiguousArray<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs15ContiguousArraycFT9repeatingx5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ContiguousArray",
+              "printedName": "ContiguousArray<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "capacity",
+          "printedName": "capacity",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray8capacitySi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg8capacitySi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray15reserveCapacityFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray6appendFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray6appenduRd__s8SequencexzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray6appenduRd__s10CollectionxzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray6insertFTx2atSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray6removeFT2atSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs15ContiguousArray16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15ContiguousArrayg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeBufferPointer",
+          "printedName": "withUnsafeBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray23withUnsafeBufferPointerurFzFzGSRx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeBufferPointer",
+                      "printedName": "UnsafeBufferPointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutableBufferPointer",
+          "printedName": "withUnsafeMutableBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray30withUnsafeMutableBufferPointerurFzFzRGSrx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(inout UnsafeMutableBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(inout UnsafeMutableBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout UnsafeMutableBufferPointer<Element>"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray15replaceSubrangeuRd__s10CollectionxzWd__8Iterator7Element_rFTGVs5RangeSi_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popLast",
+          "printedName": "popLast()",
+          "declKind": "Func",
+          "usr": "s:FVs15ContiguousArray7popLastFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "preconditionFailure",
+      "printedName": "preconditionFailure(_:file:line:)",
+      "declKind": "Func",
+      "usr": "s:Fs19preconditionFailureFTKT_SS4fileVs12StaticString4lineSu_Os5Never",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Never",
+          "printedName": "Never"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> String",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "StaticString",
+          "printedName": "StaticString"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ClosedRange",
+      "printedName": "ClosedRange",
+      "declKind": "Struct",
+      "usr": "s:Vs11ClosedRange",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(uncheckedBounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11ClosedRangecFT15uncheckedBoundsT5lowerx5upperx__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(lower: Bound, upper: Bound)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lowerBound",
+          "printedName": "lowerBound",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange10lowerBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg10lowerBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "upperBound",
+          "printedName": "upperBound",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange10upperBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg10upperBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11ClosedRange8containsFxSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRangecFGVs5Rangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11ClosedRange8overlapsFGVs5Rangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRangecFGVs14CountableRangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRange8overlapsFGVs14CountableRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRangecFGS3_x_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11ClosedRange8overlapsFGS_x_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRangecFGVs20CountableClosedRangex_GS3_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRange8overlapsFGVs20CountableClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "clamped",
+          "printedName": "clamped(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs11ClosedRange7clampedFT2toGS_x__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs11ClosedRange12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11ClosedRangeg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRange5countwxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Bound.Stride"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs10Comparablexs11_StrideablewxPS0_6Strides13SignedIntegerrVs11ClosedRangeg5countwxS1_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound.Stride",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRange",
+                  "printedName": "ClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Repeated",
+      "printedName": "Repeated",
+      "declKind": "Struct",
+      "usr": "s:Vs8Repeated",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8Repeated7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8Repeated5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs8Repeated10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "Repeated.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs8Repeatedg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "Repeated.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs8Repeated8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "Repeated.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs8Repeatedg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "Repeated.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs8Repeated5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs8Repeatedg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "repeatedValue",
+          "printedName": "repeatedValue",
+          "declKind": "Var",
+          "usr": "s:vVs8Repeated13repeatedValuex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs8Repeatedg13repeatedValuex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8Repeated11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<Repeated<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8Repeated13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8Repeated8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<Repeated<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Repeated",
+                  "printedName": "Repeated<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Int",
+      "printedName": "Int",
+      "declKind": "Struct",
+      "usr": "s:Si",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT9bigEndianSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT12littleEndianSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT14integerLiteralSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vSi9bigEndianSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig9bigEndianSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vSi12littleEndianSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig12littleEndianSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vSi11byteSwappedSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig11byteSwappedSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvSi3maxSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSig3maxSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvSi3minSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSig3minSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Si18IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Si6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT10bitPatternGSqVs13OpaquePointer__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSi9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSi11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSi15addWithOverflowFTSiSi_TSi8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSi20subtractWithOverflowFTSiSi_TSi8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSi20multiplyWithOverflowFTSiSi_TSi8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSi18divideWithOverflowFTSiSi_TSi8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFSi21remainderWithOverflowFTSiSi_TSi8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Int, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FSi8toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs5UInt8Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs5UInt8_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs4Int8Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs4Int8_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs6UInt16Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs6UInt16_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs5Int16Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs5Int16_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs6UInt32Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs6UInt32_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs5Int32Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs5Int32_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs6UInt64Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs6UInt64_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT20truncatingBitPatternVs6UInt64_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs5Int64Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlyVs5Int64_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT20truncatingBitPatternVs5Int64_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFSuSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlySu_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFSiSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT7exactlySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT10bitPatternSu_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvSi8allZerosSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFSig8allZerosSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Int.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFSfSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFSdSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFVs7Float80Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFTSS5radixSi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSi12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSi25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSig25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT10bitPatternVs16ObjectIdentifier_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ObjectIdentifier",
+              "printedName": "ObjectIdentifier"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicurFT10bitPatternGSqGSpx___Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicurFT10bitPatternGSqGSPx___Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<U>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<U>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "U"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT10bitPatternGSqSv__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSicFT10bitPatternGSqSV__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsignedInteger",
+      "printedName": "UnsignedInteger",
+      "declKind": "Protocol",
+      "usr": "s:Ps15UnsignedInteger",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FPs15UnsignedInteger9toUIntMaxFT_Vs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs15UnsignedIntegercFVs6UInt64x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs15UnsignedInteger8distanceFT2tox_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs15UnsignedInteger8advancedFT2bySi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "fatalError",
+      "printedName": "fatalError(_:file:line:)",
+      "declKind": "Func",
+      "usr": "s:Fs10fatalErrorFTKT_SS4fileVs12StaticString4lineSu_Os5Never",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Never",
+          "printedName": "Never"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "() -> String",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "StaticString",
+          "printedName": "StaticString"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "UInt",
+          "printedName": "UInt"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ReversedRandomAccessCollection",
+      "printedName": "ReversedRandomAccessCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs30ReversedRandomAccessCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30ReversedRandomAccessCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30ReversedRandomAccessCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30ReversedRandomAccessCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<ReversedRandomAccessCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30ReversedRandomAccessCollection10startIndexGVs25ReversedRandomAccessIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30ReversedRandomAccessCollectiong10startIndexGVs25ReversedRandomAccessIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessIndex",
+                  "printedName": "ReversedRandomAccessIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs30ReversedRandomAccessCollection8endIndexGVs25ReversedRandomAccessIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs30ReversedRandomAccessCollectiong8endIndexGVs25ReversedRandomAccessIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessIndex",
+                  "printedName": "ReversedRandomAccessIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs30ReversedRandomAccessCollection5indexFT5afterGVs25ReversedRandomAccessIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs30ReversedRandomAccessCollection5indexFT6beforeGVs25ReversedRandomAccessIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs30ReversedRandomAccessCollection5indexFTGVs25ReversedRandomAccessIndexx_8offsetBywx13IndexDistance_GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs30ReversedRandomAccessCollection5indexFTGVs25ReversedRandomAccessIndexx_8offsetBywx13IndexDistance9limitedByGS0_x__GSqGS0_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "ReversedRandomAccessIndex<Base>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessIndex",
+                  "printedName": "ReversedRandomAccessIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs30ReversedRandomAccessCollection8distanceFT4fromGVs25ReversedRandomAccessIndexx_2toGS0_x__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessIndex",
+              "printedName": "ReversedRandomAccessIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30ReversedRandomAccessCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<ReversedRandomAccessCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs30ReversedRandomAccessCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<ReversedRandomAccessCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedRandomAccessCollection",
+                  "printedName": "ReversedRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DictionaryLiteral",
+      "printedName": "DictionaryLiteral",
+      "declKind": "Struct",
+      "usr": "s:Vs17DictionaryLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(dictionaryLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs17DictionaryLiteralcFt17dictionaryLiteralGSaTxq____GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DictionaryLiteral",
+              "printedName": "DictionaryLiteral<Key, Value>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Key"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Value"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[(Key, Value)]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Key, Value)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Key",
+          "printedName": "Key",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral3Key",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Key"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Value",
+          "printedName": "Value",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral5Value",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Value"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17DictionaryLiteral10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17DictionaryLiteralg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryLiteral",
+                  "printedName": "DictionaryLiteral<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17DictionaryLiteral8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17DictionaryLiteralg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryLiteral",
+                  "printedName": "DictionaryLiteral<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(key: Key, value: Value)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<DictionaryLiteral<Key, Value>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryLiteral",
+                  "printedName": "DictionaryLiteral<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17DictionaryLiteral8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<DictionaryLiteral<Key, Value>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryLiteral",
+                  "printedName": "DictionaryLiteral<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CommandLine",
+      "printedName": "CommandLine",
+      "declKind": "Enum",
+      "usr": "s:Os11CommandLine",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "argc",
+          "printedName": "argc",
+          "declKind": "Var",
+          "usr": "s:ZvOs11CommandLine4argcVs5Int32",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs11CommandLineg4argcVs5Int32",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int32",
+                  "printedName": "Int32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "CommandLine.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CommandLine",
+                      "printedName": "CommandLine"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "unsafeArgv",
+          "printedName": "unsafeArgv",
+          "declKind": "Var",
+          "usr": "s:ZvOs11CommandLine10unsafeArgvGSpGSqGSpVs4Int8___",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "UnsafeMutablePointer<Int8>?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Int8>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int8",
+                          "printedName": "Int8"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs11CommandLineg10unsafeArgvGSpGSqGSpVs4Int8___",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "UnsafeMutablePointer<Int8>?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnsafeMutablePointer",
+                          "printedName": "UnsafeMutablePointer<Int8>",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Int8",
+                              "printedName": "Int8"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "CommandLine.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CommandLine",
+                      "printedName": "CommandLine"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "arguments",
+          "printedName": "arguments",
+          "declKind": "Var",
+          "usr": "s:ZvOs11CommandLine9argumentsGSaSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[String]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs11CommandLineg9argumentsGSaSS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "[String]",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "CommandLine.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CommandLine",
+                      "printedName": "CommandLine"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFOs11CommandLines9argumentsGSaSS_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "CommandLine.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CommandLine",
+                      "printedName": "CommandLine"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "[String]",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeBufferPointerIterator",
+      "printedName": "UnsafeBufferPointerIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs27UnsafeBufferPointerIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs27UnsafeBufferPointerIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27UnsafeBufferPointerIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs27UnsafeBufferPointerIteratorcFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeBufferPointerIterator",
+              "printedName": "UnsafeBufferPointerIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27UnsafeBufferPointerIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeBufferPointerIterator",
+              "printedName": "UnsafeBufferPointerIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27UnsafeBufferPointerIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ReversedCollection",
+      "printedName": "ReversedCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs18ReversedCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18ReversedCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18ReversedCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18ReversedCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<ReversedCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs18ReversedCollection10startIndexGVs13ReversedIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18ReversedCollectiong10startIndexGVs13ReversedIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedIndex",
+                  "printedName": "ReversedIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs18ReversedCollection8endIndexGVs13ReversedIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18ReversedCollectiong8endIndexGVs13ReversedIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedIndex",
+                  "printedName": "ReversedIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs18ReversedCollection5indexFT5afterGVs13ReversedIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs18ReversedCollection5indexFT6beforeGVs13ReversedIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs18ReversedCollection5indexFTGVs13ReversedIndexx_8offsetBywx13IndexDistance_GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs18ReversedCollection5indexFTGVs13ReversedIndexx_8offsetBywx13IndexDistance9limitedByGS0_x__GSqGS0_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "ReversedIndex<Base>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedIndex",
+                  "printedName": "ReversedIndex<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs18ReversedCollection8distanceFT4fromGVs13ReversedIndexx_2toGS0_x__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedIndex",
+              "printedName": "ReversedIndex<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18ReversedCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "BidirectionalSlice",
+              "printedName": "BidirectionalSlice<ReversedCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18ReversedCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<ReversedCollection<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ReversedCollection",
+                  "printedName": "ReversedCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "getVaList",
+      "printedName": "getVaList(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs9getVaListFGSaPs7CVarArg__Vs14CVaListPointer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "CVaListPointer",
+          "printedName": "CVaListPointer"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[CVarArg]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CVarArg",
+              "printedName": "CVarArg"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CLong",
+      "printedName": "CLong",
+      "declKind": "TypeAlias",
+      "usr": "s:s5CLong",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableBidirectionalSlice",
+      "printedName": "MutableBidirectionalSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs25MutableBidirectionalSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25MutableBidirectionalSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25MutableBidirectionalSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs25MutableBidirectionalSlice10startIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25MutableBidirectionalSliceg10startIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableBidirectionalSlice",
+                  "printedName": "MutableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs25MutableBidirectionalSlice8endIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25MutableBidirectionalSliceg8endIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableBidirectionalSlice",
+                  "printedName": "MutableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25MutableBidirectionalSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableBidirectionalSlice",
+              "printedName": "MutableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice5indexFT5afterwxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice9formIndexFT5afterRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice5indexFT6beforewxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice9formIndexFT6beforeRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs25MutableBidirectionalSlice8distanceFT4fromwxPs13IndexableBase5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25MutableBidirectionalSlicecFT4basex6boundsGVs5RangewxPs13IndexableBase5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableBidirectionalSlice",
+              "printedName": "MutableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs25MutableBidirectionalSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25MutableBidirectionalSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableBidirectionalSlice",
+                  "printedName": "MutableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25MutableBidirectionalSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableBidirectionalSlice",
+                  "printedName": "MutableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25MutableBidirectionalSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<MutableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableBidirectionalSlice",
+                  "printedName": "MutableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CWideChar",
+      "printedName": "CWideChar",
+      "declKind": "TypeAlias",
+      "usr": "s:s9CWideChar",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UnicodeScalar",
+          "printedName": "UnicodeScalar"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "EnumeratedIterator",
+      "printedName": "EnumeratedIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs18EnumeratedIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18EnumeratedIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(offset: Int, element: Base.Element)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs18EnumeratedIterator4nextFT_GSqT6offsetSi7elementwx7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(offset: Int, element: Base.Element)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(offset: Int, element: Base.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18EnumeratedIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EnumeratedIterator",
+              "printedName": "EnumeratedIterator<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18EnumeratedIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<(offset: Int, element: Base.Element)>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(offset: Int, element: Base.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "UnicodeScalarType",
+      "printedName": "UnicodeScalarType",
+      "declKind": "TypeAlias",
+      "usr": "s:s17UnicodeScalarType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "String",
+          "printedName": "String"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UInt8",
+      "printedName": "UInt8",
+      "declKind": "Struct",
+      "usr": "s:Vs5UInt8",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs5UInt83maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5UInt8g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt8",
+                      "printedName": "UInt8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs5UInt83minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5UInt8g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt8",
+                      "printedName": "UInt8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5UInt818IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5UInt86Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs5UInt89hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5UInt8g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs5UInt811descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5UInt8g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UInt815addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UInt820subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UInt820multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UInt818divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs5UInt821remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt8, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs5UInt89toUIntMaxFT_Vs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs5UInt88toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs6UInt16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs6UInt16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs5Int16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs6UInt32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs5Int32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT10bitPatternVs4Int8_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs5UInt88allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs5UInt8g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt8.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt8",
+                      "printedName": "UInt8"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt8?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs5UInt812customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5UInt8g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs5UInt825customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5UInt8g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(ascii:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5UInt8cFT5asciiSc_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "Float32",
+      "printedName": "Float32",
+      "declKind": "TypeAlias",
+      "usr": "s:s7Float32",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Float",
+          "printedName": "Float"
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "IntegerLiteralType",
+      "printedName": "IntegerLiteralType",
+      "declKind": "TypeAlias",
+      "usr": "s:s18IntegerLiteralType",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnicodeScalar",
+      "printedName": "UnicodeScalar",
+      "declKind": "Struct",
+      "usr": "s:Sc",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "value",
+          "printedName": "value",
+          "declKind": "Var",
+          "usr": "s:vSc5valueVs6UInt32",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg5valueVs6UInt32",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt32",
+                  "printedName": "UInt32"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalarLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFT20unicodeScalarLiteralSc_Sc",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFVs6UInt32GSqSc_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnicodeScalar?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFVs6UInt16GSqSc_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnicodeScalar?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFVs5UInt8Sc",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFScSc",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "escaped",
+          "printedName": "escaped(asASCII:)",
+          "declKind": "Func",
+          "usr": "s:FSc7escapedFT7asASCIISb_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isASCII",
+          "printedName": "isASCII",
+          "declKind": "Var",
+          "usr": "s:vSc7isASCIISb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg7isASCIISb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UnicodeScalarLiteralType",
+          "printedName": "UnicodeScalarLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sc24UnicodeScalarLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSc12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSc25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(to:)",
+          "declKind": "Func",
+          "usr": "s:FSc5writeuRxs16TextOutputStreamrFT2toRx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Target"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSc11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSc16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFSSGSqSc_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnicodeScalar?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSc9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSccFSiGSqSc_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnicodeScalar?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "UTF16View",
+          "printedName": "UTF16View",
+          "declKind": "Struct",
+          "usr": "s:VSc9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "Var",
+              "name": "value",
+              "printedName": "value",
+              "declKind": "Var",
+              "usr": "s:vVSc9UTF16View5valueSc",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSc9UTF16Viewg5valueSc",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalar",
+                      "printedName": "UnicodeScalar"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "UnicodeScalar.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Setter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSc9UTF16Views5valueSc",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "mutating": true,
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Void",
+                      "printedName": "()"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout UnicodeScalar.UTF16View"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalar",
+                      "printedName": "UnicodeScalar"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init(value:)",
+              "declKind": "Constructor",
+              "usr": "s:FVSc9UTF16ViewcFT5valueSc_S_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "UnicodeScalar.UTF16View"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "TypeAlias",
+              "usr": "s:VSc9UTF16View7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Int>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVSc9UTF16View10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSc9UTF16Viewg10startIndexSi",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "UnicodeScalar.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVSc9UTF16View8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSc9UTF16Viewg8endIndexSi",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "UnicodeScalar.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "TypeAlias",
+              "usr": "s:VSc9UTF16View5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VSc9UTF16View11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<UnicodeScalar.UTF16View>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "UnicodeScalar.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VSc9UTF16View13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "TypeAlias",
+              "usr": "s:VSc9UTF16View8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexingIterator",
+                  "printedName": "IndexingIterator<UnicodeScalar.UTF16View>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "UnicodeScalar.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf16",
+          "printedName": "utf16",
+          "declKind": "Var",
+          "usr": "s:vSc5utf16VSc9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16View",
+              "printedName": "UnicodeScalar.UTF16View"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FScg5utf16VSc9UTF16View",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "UnicodeScalar.UTF16View"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CUnsignedLongLong",
+      "printedName": "CUnsignedLongLong",
+      "declKind": "TypeAlias",
+      "usr": "s:s17CUnsignedLongLong",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt64",
+          "printedName": "UInt64"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnySequence",
+      "printedName": "AnySequence",
+      "declKind": "Struct",
+      "usr": "s:Vs11AnySequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11AnySequencecuRd__s8Sequencewd__11SubSequenceS0_xzWd__S1_8Iterator7Element_wd__S1_zWd__S1_S1__Wd__S2_S3__zWd__S1_S2_S3__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs11AnySequencecuRd__s16IteratorProtocolxzwd__7ElementrFFT_qd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "() -> I",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "I",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11AnySequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs11AnySequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence12makeIteratorFT_GVs11AnyIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs11AnySequence19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs11AnySequenceg19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnySequence",
+                  "printedName": "AnySequence<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence3mapurFzFzxqd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence6filterFzFzxSbGSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence7forEachFzFzxT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence9dropFirstFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence8dropLastFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence6prefixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence6suffixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FVs11AnySequence5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzxSb_GSaGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnySequence<Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnySequence",
+                  "printedName": "AnySequence<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CountableClosedRange",
+      "printedName": "CountableClosedRange",
+      "declKind": "Struct",
+      "usr": "s:Vs20CountableClosedRange",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "lowerBound",
+          "printedName": "lowerBound",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange10lowerBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg10lowerBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "upperBound",
+          "printedName": "upperBound",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange10upperBoundx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg10upperBoundx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIterator",
+              "printedName": "ClosedRangeIterator<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange12makeIteratorFT_GVs19ClosedRangeIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIterator",
+              "printedName": "ClosedRangeIterator<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange10startIndexGVs16ClosedRangeIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg10startIndexGVs16ClosedRangeIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRangeIndex",
+                  "printedName": "ClosedRangeIndex<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange8endIndexGVs16ClosedRangeIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg8endIndexGVs16ClosedRangeIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ClosedRangeIndex",
+                  "printedName": "ClosedRangeIndex<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange5indexFT5afterGVs16ClosedRangeIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange5indexFT6beforeGVs16ClosedRangeIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange5indexFTGVs16ClosedRangeIndexx_8offsetBywxPs11_Strideable6Stride_GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange8distanceFT4fromGVs16ClosedRangeIndexx_2toGS0_x__wxPs11_Strideable6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Bound.Stride",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIndex",
+              "printedName": "ClosedRangeIndex<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange7indicesGVs26DefaultRandomAccessIndicesGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<CountableClosedRange<Bound>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Bound"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg7indicesGVs26DefaultRandomAccessIndicesGS_x__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<CountableClosedRange<Bound>>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CountableClosedRange",
+                      "printedName": "CountableClosedRange<Bound>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Bound",
+                          "children": [
+                            {
+                              "kind": "TypeNominal",
+                              "name": "Comparable",
+                              "printedName": "Comparable"
+                            },
+                            {
+                              "kind": "TypeNominal",
+                              "name": "_Strideable",
+                              "printedName": "_Strideable"
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(uncheckedBounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20CountableClosedRangecFT15uncheckedBoundsT5lowerx5upperx__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(lower: Bound, upper: Bound)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<CountableClosedRange<Bound>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs20CountableClosedRange7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<CountableClosedRange<Bound>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20CountableClosedRangecFGVs5Rangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange8overlapsFGVs5Rangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20CountableClosedRangecFGVs14CountableRangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange8overlapsFGVs14CountableRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20CountableClosedRangecFGVs11ClosedRangex_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange8overlapsFGVs11ClosedRangex_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs20CountableClosedRangecFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "overlaps",
+          "printedName": "overlaps(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange8overlapsFGS_x_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "clamped",
+          "printedName": "clamped(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs20CountableClosedRange7clampedFT2toGS_x__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CountableClosedRange",
+              "printedName": "CountableClosedRange<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs20CountableClosedRange12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs20CountableClosedRangeg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableClosedRange",
+                  "printedName": "CountableClosedRange<Bound>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Bound",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Comparable",
+                          "printedName": "Comparable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "_Strideable",
+                          "printedName": "_Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "min",
+      "printedName": "min(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3minuRxs10ComparablerFTxx_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "min",
+      "printedName": "min(_:_:_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs3minuRxs10ComparablerFtxxxGSax__x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Comparable",
+              "printedName": "Comparable"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[T]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyBidirectionalCollection",
+      "printedName": "LazyBidirectionalCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs27LazyBidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyBidirectionalCollection",
+              "printedName": "LazyBidirectionalCollection<BidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalSlice",
+                  "printedName": "BidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection12makeIteratorFT_wx8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs27LazyBidirectionalCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection5firstGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong5firstGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Base.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs27LazyBidirectionalCollection5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs27LazyBidirectionalCollection4lastGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs27LazyBidirectionalCollectiong4lastGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Base.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyBidirectionalCollection",
+                  "printedName": "LazyBidirectionalCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalCollection",
+                          "printedName": "BidirectionalCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "withUnsafeMutablePointer",
+      "printedName": "withUnsafeMutablePointer(to:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs24withUnsafeMutablePointeru0_rFzT2toRxFzGSpx_q__q_",
+      "location": "",
+      "moduleName": "Swift",
+      "throwing": true,
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "Result"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(UnsafeMutablePointer<T>) throws -> Result",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(UnsafeMutablePointer<T>)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CustomStringConvertible",
+      "printedName": "CustomStringConvertible",
+      "declKind": "Protocol",
+      "usr": "s:Ps23CustomStringConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vPs23CustomStringConvertible11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs23CustomStringConvertibleg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CustomStringConvertible",
+                      "printedName": "CustomStringConvertible"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ClosedRangeIterator",
+      "printedName": "ClosedRangeIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs19ClosedRangeIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs19ClosedRangeIterator12makeIteratorFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIterator",
+              "printedName": "ClosedRangeIterator<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs19ClosedRangeIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Bound?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs19ClosedRangeIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Bound",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "_Strideable",
+                  "printedName": "_Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs19ClosedRangeIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRangeIterator",
+              "printedName": "ClosedRangeIterator<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs19ClosedRangeIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Bound>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Bound",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_Strideable",
+                      "printedName": "_Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenCollectionIndex",
+      "printedName": "FlattenCollectionIndex",
+      "declKind": "Struct",
+      "usr": "s:Vs22FlattenCollectionIndex",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "Function",
+      "name": "readLine",
+      "printedName": "readLine(strippingNewline:)",
+      "declKind": "Func",
+      "usr": "s:Fs8readLineFT16strippingNewlineSb_GSqSS_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Optional",
+          "printedName": "String?",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Bool",
+          "printedName": "Bool"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyMapCollection",
+      "printedName": "LazyMapCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs17LazyMapCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection5firstGSqq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong5firstGSqq__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs17LazyMapCollection12makeIteratorFT_GVs15LazyMapIteratorwx8Iteratorq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs17LazyMapCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs17LazyMapCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<LazyMapCollection<Base, Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyMapCollection",
+                  "printedName": "LazyMapCollection<Base, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapCollection",
+              "printedName": "LazyMapCollection<Base, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs17LazyMapCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyMapIterator",
+              "printedName": "LazyMapIterator<Base.Iterator, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "withVaList",
+      "printedName": "withVaList(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs10withVaListurFTGSaPs7CVarArg__FVs14CVaListPointerx_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "R"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Array",
+          "printedName": "[CVarArg]",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CVarArg",
+              "printedName": "CVarArg"
+            }
+          ]
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(CVaListPointer) -> R",
+          "typeAttributes": [
+            "noescape"
+          ],
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(CVaListPointer)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CVaListPointer",
+                  "printedName": "CVaListPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FloatingPointSign",
+      "printedName": "FloatingPointSign",
+      "declKind": "Enum",
+      "usr": "s:Os17FloatingPointSign",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "plus",
+          "printedName": "plus",
+          "declKind": "EnumElement",
+          "usr": "s:FOs17FloatingPointSign4plusFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointSign.Type) -> FloatingPointSign",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointSign.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointSign",
+                      "printedName": "FloatingPointSign"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "minus",
+          "printedName": "minus",
+          "declKind": "EnumElement",
+          "usr": "s:FOs17FloatingPointSign5minusFMS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(FloatingPointSign.Type) -> FloatingPointSign",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "FloatingPointSign.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPointSign",
+                      "printedName": "FloatingPointSign"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawValue",
+          "printedName": "RawValue",
+          "declKind": "TypeAlias",
+          "usr": "s:Os17FloatingPointSign8RawValue",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vOs17FloatingPointSign9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FOs17FloatingPointSigng9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(rawValue:)",
+          "declKind": "Constructor",
+          "usr": "s:FOs17FloatingPointSigncFT8rawValueSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "FloatingPointSign?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "rawValue",
+          "printedName": "rawValue",
+          "declKind": "Var",
+          "usr": "s:vOs17FloatingPointSign8rawValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FOs17FloatingPointSigng8rawValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "IntMax",
+      "printedName": "IntMax",
+      "declKind": "TypeAlias",
+      "usr": "s:s6IntMax",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int64",
+          "printedName": "Int64"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_IntegerArithmetic",
+      "printedName": "_IntegerArithmetic",
+      "declKind": "Protocol",
+      "usr": "s:Ps18_IntegerArithmetic",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs18_IntegerArithmetic15addWithOverflowFTxx_Tx8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Self, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_IntegerArithmetic",
+                      "printedName": "_IntegerArithmetic"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs18_IntegerArithmetic20subtractWithOverflowFTxx_Tx8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Self, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_IntegerArithmetic",
+                      "printedName": "_IntegerArithmetic"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs18_IntegerArithmetic20multiplyWithOverflowFTxx_Tx8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Self, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_IntegerArithmetic",
+                      "printedName": "_IntegerArithmetic"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs18_IntegerArithmetic18divideWithOverflowFTxx_Tx8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Self, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_IntegerArithmetic",
+                      "printedName": "_IntegerArithmetic"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs18_IntegerArithmetic21remainderWithOverflowFTxx_Tx8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Self, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_IntegerArithmetic",
+                      "printedName": "_IntegerArithmetic"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_IntegerArithmetic",
+                  "printedName": "_IntegerArithmetic"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Array",
+      "printedName": "Array",
+      "declKind": "Struct",
+      "usr": "s:Sa",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<Array<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vSa10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vSa8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FSa5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FSa9formIndexFT5afterRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FSa5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FSa9formIndexFT6beforeRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FSa5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FSa5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FSa8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSacFt12arrayLiteralGSax__GSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "Array<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Sa7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSacFT_GSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "Array<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSacuRd__s8SequencexzWd__8Iterator7Element_rFqd__GSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "Array<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FSacFT9repeatingx5countSi_GSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "Array<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vSa5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "capacity",
+          "printedName": "capacity",
+          "declKind": "Var",
+          "usr": "s:vSa8capacitySi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag8capacitySi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FSa15reserveCapacityFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FSa6appendFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FSa6appenduRd__s8SequencexzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FSa6appenduRd__s10CollectionxzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FSa6insertFTx2atSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FSa6removeFT2atSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FSa9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSa12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSa11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSa16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSag16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Array",
+                  "printedName": "Array<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeBufferPointer",
+          "printedName": "withUnsafeBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FSa23withUnsafeBufferPointerurFzFzGSRx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeBufferPointer",
+                      "printedName": "UnsafeBufferPointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutableBufferPointer",
+          "printedName": "withUnsafeMutableBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FSa30withUnsafeMutableBufferPointerurFzFzRGSrx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(inout UnsafeMutableBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(inout UnsafeMutableBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout UnsafeMutableBufferPointer<Element>"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FSa15replaceSubrangeuRd__s10CollectionxzWd__8Iterator7Element_rFTGVs5RangeSi_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popLast",
+          "printedName": "popLast()",
+          "declKind": "Func",
+          "usr": "s:FSa7popLastFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByDictionaryLiteral",
+      "printedName": "ExpressibleByDictionaryLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps30ExpressibleByDictionaryLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(dictionaryLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs30ExpressibleByDictionaryLiteralcFt17dictionaryLiteralGSaTwx3Keywx5Value___x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByDictionaryLiteral",
+                  "printedName": "ExpressibleByDictionaryLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[(Self.Key, Self.Value)]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(Self.Key, Self.Value)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Key"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByUnicodeScalarLiteral",
+      "printedName": "ExpressibleByUnicodeScalarLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps33ExpressibleByUnicodeScalarLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalarLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs33ExpressibleByUnicodeScalarLiteralcFT20unicodeScalarLiteralwx24UnicodeScalarLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByUnicodeScalarLiteral",
+                  "printedName": "ExpressibleByUnicodeScalarLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.UnicodeScalarLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinUnicodeScalarLiteral",
+                  "printedName": "_ExpressibleByBuiltinUnicodeScalarLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Zip2Iterator",
+      "printedName": "Zip2Iterator",
+      "declKind": "Struct",
+      "usr": "s:Vs12Zip2Iterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12Zip2Iterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(Iterator1.Element, Iterator2.Element)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Iterator1.Element"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Iterator2.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12Zip2IteratorcFTxq__GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Zip2Iterator",
+              "printedName": "Zip2Iterator<Iterator1, Iterator2>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Iterator1",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Iterator2",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Iterator1",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Iterator2",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs12Zip2Iterator4nextFT_GSqTwx7Elementw_S0___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(Iterator1.Element, Iterator2.Element)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(Iterator1.Element, Iterator2.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Iterator1.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Iterator2.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyFilterIterator",
+      "printedName": "LazyFilterIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs18LazyFilterIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs18LazyFilterIterator4nextFT_GSqwx7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs18LazyFilterIterator4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18LazyFilterIteratorg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterIterator",
+                  "printedName": "LazyFilterIterator<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "IteratorProtocol",
+                          "printedName": "IteratorProtocol"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ObjectIdentifier",
+      "printedName": "ObjectIdentifier",
+      "declKind": "Struct",
+      "usr": "s:Vs16ObjectIdentifier",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs16ObjectIdentifier9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs16ObjectIdentifierg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ObjectIdentifier",
+                  "printedName": "ObjectIdentifier"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs16ObjectIdentifiercFPs9AnyObject_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ObjectIdentifier",
+              "printedName": "ObjectIdentifier"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs16ObjectIdentifiercFPMP_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ObjectIdentifier",
+              "printedName": "ObjectIdentifier"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ExistentialMetatype",
+              "printedName": "Any.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ProtocolComposition",
+                  "printedName": "Any"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs16ObjectIdentifier16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs16ObjectIdentifierg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ObjectIdentifier",
+                  "printedName": "ObjectIdentifier"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "Float64",
+      "printedName": "Float64",
+      "declKind": "TypeAlias",
+      "usr": "s:s7Float64",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Double",
+          "printedName": "Double"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "IteratorSequence",
+      "printedName": "IteratorSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs16IteratorSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs16IteratorSequencecFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorSequence",
+              "printedName": "IteratorSequence<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs16IteratorSequence4nextFT_GSqwx7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IteratorSequence7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IteratorSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorSequence",
+              "printedName": "IteratorSequence<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16IteratorSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RangeReplaceableBidirectionalSlice",
+      "printedName": "RangeReplaceableBidirectionalSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs34RangeReplaceableBidirectionalSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs34RangeReplaceableBidirectionalSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs34RangeReplaceableBidirectionalSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs34RangeReplaceableBidirectionalSlice10startIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs34RangeReplaceableBidirectionalSliceg10startIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableBidirectionalSlice",
+                  "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs34RangeReplaceableBidirectionalSlice8endIndexwxPs13IndexableBase5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs34RangeReplaceableBidirectionalSliceg8endIndexwxPs13IndexableBase5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableBidirectionalSlice",
+                  "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs34RangeReplaceableBidirectionalSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableBidirectionalSlice",
+              "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice5indexFT5afterwxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice9formIndexFT5afterRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice5indexFT6beforewxPs13IndexableBase5Index_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice9formIndexFT6beforeRwxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance_wxS1_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice5indexFTwxPs13IndexableBase5Index8offsetBywxPs9Indexable13IndexDistance9limitedBywxS1__GSqwxS1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice8distanceFT4fromwxPs13IndexableBase5Index2towxS1__wxPs9Indexable13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableBidirectionalSlice",
+              "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlicecFT9repeatingwxPs13IndexableBase8_Element5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableBidirectionalSlice",
+              "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlicecuRd__s8SequencewxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableBidirectionalSlice",
+              "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice15replaceSubrangeuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFTGVs5RangewxPS1_5Index_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice6insertFTwxPs13IndexableBase8_Element2atwxPS0_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice6insertuRd__s10CollectionwxPs13IndexableBase8_ElementzWd__8Iterator7Element_rFT10contentsOfqd__2atwxPS1_5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice6removeFT2atwxPs13IndexableBase5Index_wxPS0_8_Element",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base._Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlice14removeSubrangeFGVs5RangewxPs13IndexableBase5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs34RangeReplaceableBidirectionalSlicecFT4basex6boundsGVs5RangewxPs13IndexableBase5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RangeReplaceableBidirectionalSlice",
+              "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalIndexable",
+                  "printedName": "BidirectionalIndexable"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableIndexable",
+                  "printedName": "RangeReplaceableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs34RangeReplaceableBidirectionalSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs34RangeReplaceableBidirectionalSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalIndexable",
+                      "printedName": "BidirectionalIndexable"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RangeReplaceableIndexable",
+                      "printedName": "RangeReplaceableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableBidirectionalSlice",
+                  "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs34RangeReplaceableBidirectionalSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<RangeReplaceableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableBidirectionalSlice",
+                  "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs34RangeReplaceableBidirectionalSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<RangeReplaceableBidirectionalSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RangeReplaceableBidirectionalSlice",
+                  "printedName": "RangeReplaceableBidirectionalSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BidirectionalIndexable",
+                          "printedName": "BidirectionalIndexable"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RangeReplaceableIndexable",
+                          "printedName": "RangeReplaceableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByNilLiteral",
+      "printedName": "ExpressibleByNilLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps23ExpressibleByNilLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nilLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs23ExpressibleByNilLiteralcFT10nilLiteralT__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByNilLiteral",
+                  "printedName": "ExpressibleByNilLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "dump",
+      "printedName": "dump(_:to:name:indent:maxDepth:maxItems:)",
+      "declKind": "Func",
+      "usr": "s:Fs4dumpu0_R_s16TextOutputStreamrFTx2toRq_4nameGSqSS_6indentSi8maxDepthSi8maxItemsSi_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout TargetStream"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Optional",
+          "printedName": "String?",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "dump",
+      "printedName": "dump(_:name:indent:maxDepth:maxItems:)",
+      "declKind": "Func",
+      "usr": "s:Fs4dumpurFTx4nameGSqSS_6indentSi8maxDepthSi8maxItemsSi_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Optional",
+          "printedName": "String?",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Int",
+          "printedName": "Int"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RandomAccessCollection",
+      "printedName": "RandomAccessCollection",
+      "declKind": "Protocol",
+      "usr": "s:Ps22RandomAccessCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vesRxs22RandomAccessCollectionwx5IndexzWx7Indices11SubSequenceS2_8Iterator7Element_wxS1_zGVs26DefaultRandomAccessIndicesx_WxS1_7Indices_zGS5_x_WxS1_13IndexDistance_zSiWxS1_S0__zWxS1_S2_S2_S3_S4__WxS1_S2__zGS5_x_WxS1_8_Element_zWxS1_S2_S2_S3_S4__WxS1_S3__zGVs16IndexingIteratorGS5_x__WxS1_S6_S6__zGS5_x_WxS1_S6_S7__zSiWxS1_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S2__zGS5_x_WxS1_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S3__zGS9_GS5_x__WxS1_S7_18IntegerLiteralType_zSiWxS1_S7_6Stride_zSiWxS1_S7_19_DisabledRangeIndex_zSiWxS1_S2_S6__zGS5_x_WxS1_S2_S7__zSiWxS1_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S2__zGS5_x_WxS1_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S3__zGS9_GS5_x__WxS1_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S2__zGS5_x_WxS1_S6_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S3__zGS9_GS5_x__WxS1_S6_S7_S10__zSiWxS1_S6_S7_S11__zSiWxS1_S6_S7_S12__zSiWxS1_S6_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S2_S2__zGS5_x_WxS1_S6_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S2_S3__zGS9_GS5_x__WxS1_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S7_S11_S10__zSiWxS1_S2_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S2__zGS5_x_WxS1_S2_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S3__zGS9_GS5_x__WxS1_S2_S7_S10__zSiWxS1_S2_S7_S11__zSiWxS1_S2_S7_S12__zSiWxS1_S2_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S2_S2__zGS5_x_WxS1_S2_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S2_S3__zGS9_GS5_x__WxS1_S2_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S7_S11_S10__zSiWxS1_S6_S2_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S2_S7_S11_S10__zSirS_7indicesGS5_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs22RandomAccessCollectionwx5IndexzWx7Indices11SubSequenceS2_8Iterator7Element_wxS1_zGVs26DefaultRandomAccessIndicesx_WxS1_7Indices_zGS5_x_WxS1_13IndexDistance_zSiWxS1_S0__zWxS1_S2_S2_S3_S4__WxS1_S2__zGS5_x_WxS1_8_Element_zWxS1_S2_S2_S3_S4__WxS1_S3__zGVs16IndexingIteratorGS5_x__WxS1_S6_S6__zGS5_x_WxS1_S6_S7__zSiWxS1_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S2__zGS5_x_WxS1_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S3__zGS9_GS5_x__WxS1_S7_18IntegerLiteralType_zSiWxS1_S7_6Stride_zSiWxS1_S7_19_DisabledRangeIndex_zSiWxS1_S2_S6__zGS5_x_WxS1_S2_S7__zSiWxS1_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S2__zGS5_x_WxS1_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S3__zGS9_GS5_x__WxS1_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S2__zGS5_x_WxS1_S6_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S3__zGS9_GS5_x__WxS1_S6_S7_S10__zSiWxS1_S6_S7_S11__zSiWxS1_S6_S7_S12__zSiWxS1_S6_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S6_S2_S2__zGS5_x_WxS1_S6_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S6_S2_S3__zGS9_GS5_x__WxS1_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S7_S11_S10__zSiWxS1_S2_S6_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S2__zGS5_x_WxS1_S2_S6_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S3__zGS9_GS5_x__WxS1_S2_S7_S10__zSiWxS1_S2_S7_S11__zSiWxS1_S2_S7_S12__zSiWxS1_S2_S2_S0__zWxS1_S2_S2_S3_S4__WxS1_S2_S2_S2__zGS5_x_WxS1_S2_S2_S8__zWxS1_S2_S2_S3_S4__WxS1_S2_S2_S3__zGS9_GS5_x__WxS1_S2_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S6_S7_S11_S10__zSiWxS1_S6_S2_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S2_S6_S3_S4__zWxS1_S2_S2_S3_S4__WxS1_S2_S7_S11_S10__zSirS_g7indicesGS5_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultRandomAccessIndices",
+                  "printedName": "DefaultRandomAccessIndices<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vEsPs22RandomAccessCollection4lazyGVs26LazyRandomAccessCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyRandomAccessCollection",
+              "printedName": "LazyRandomAccessCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs22RandomAccessCollectiong4lazyGVs26LazyRandomAccessCollectionx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vesRxs22LazyCollectionProtocolxs22RandomAccessCollectionrS0_4lazyx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs22LazyCollectionProtocolxs22RandomAccessCollectionrS0_g4lazyx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_7indicesGS7_wxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Self.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Self.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_g7indicesGS7_wxS0__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CountableRange",
+                  "printedName": "CountableRange<Self.Index>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Index",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Strideable",
+                          "printedName": "Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_5indexFT5afterwxS0__wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_5indexFT6beforewxS0__wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_5indexFTwxS0_8offsetByWxS0_S8___wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs22RandomAccessCollectionwx5Indexs10Strideablewx13IndexDistancezWx7Indices11SubSequenceS2__wxS0_zWxS3_S4_S4_8Iterator7Element_wxS3_zGVs14CountableRangewxS0__WxS0_6Stride_zWxS3_S4_S2__WxS3_7Indices_zGS7_wxS0__WxS3_S2__zWxS3_S4_S2__WxS3_S0__zWxS3_S4_S4_S5_S6__WxS3_S4__zGS7_wxS0__WxS3_8_Element_zWxS3_S4_S4_S5_S6__WxS3_S5__zGVs16IndexingIteratorGS7_wxS0___WxS3_S9_S9__zGS7_wxS0__WxS3_S9_S2__zWxS3_S4_S2__WxS3_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4__zGS7_wxS0__WxS3_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S9__zGS7_wxS0__WxS3_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4__zGS7_wxS0__WxS3_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S5__zGS11_GS7_wxS0___WxS3_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S4__zGS7_wxS0__WxS3_S9_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5__zGS11_GS7_wxS0___WxS3_S9_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S4__zGS7_wxS0__WxS3_S9_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5__zGS11_GS7_wxS0___WxS3_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S4__zGS7_wxS0__WxS3_S4_S9_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5__zGS11_GS7_wxS0___WxS3_S4_S4_S0__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S4__zGS7_wxS0__WxS3_S4_S4_S10__zWxS3_S4_S4_S5_S6__WxS3_S4_S4_S5__zGS11_GS7_wxS0___WxS3_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S9_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S9_S4_S5_S6__zWxS3_S4_S4_S5_S6__WxS3_S4_S9_S5_S6__zWxS3_S4_S4_S5_S6__rS_8distanceFT4fromwxS0_2towxS0__WxS0_S8__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reversed",
+          "printedName": "reversed()",
+          "declKind": "Func",
+          "usr": "s:FEsPs22RandomAccessCollection8reversedFT_GVs30ReversedRandomAccessCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ReversedRandomAccessCollection",
+              "printedName": "ReversedRandomAccessCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "DictionaryLiteralConvertible",
+      "printedName": "DictionaryLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s28DictionaryLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByDictionaryLiteral",
+          "printedName": "ExpressibleByDictionaryLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "JoinedIterator",
+      "printedName": "JoinedIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs14JoinedIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:separator:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14JoinedIteratorcuRd__s8SequenceWd__8Iterator7Element_zWxS2_S1_S2__rFT4basex9separatorqd___GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "JoinedIterator",
+              "printedName": "JoinedIterator<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Separator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs14JoinedIterator4nextFT_GSqWx7Element8IteratorS0___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Element.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14JoinedIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Element.Iterator.Element"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Collection",
+      "printedName": "Collection",
+      "declKind": "Protocol",
+      "usr": "s:Ps10Collection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection12makeIteratorFT_wx8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vPs10Collection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs10Collectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(upTo:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection6prefixFT4upTowx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(from:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection6suffixFT4fromwx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(through:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection6prefixFT7throughwx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vPs10Collection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs10Collectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vPs10Collection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs10Collectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vPs10Collection5firstGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs10Collectiong5firstGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Self.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FPs10Collection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Collectionwx8IteratorzGVs16IndexingIteratorx_wx8_ElementzWxS0_7Element_rS_12makeIteratorFT_GS1_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popFirst",
+          "printedName": "popFirst()",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Collectionxzwx11SubSequencerS_8popFirstFT_GSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vEsPs10Collection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10Collectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vEsPs10Collection5firstGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Self.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10Collectiong5firstGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Self.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vEsPs10Collection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10Collectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vEsPs10Collection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10Collectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection3mapurFzFzWx8Iterator7Element_qd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection9dropFirstFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection8dropLastFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection6prefixFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection6suffixFSiwx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(upTo:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection6prefixFT4upTowx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(from:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection6suffixFT4fromwx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(through:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection6prefixFT7throughwx5Index_wx11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.SubSequence",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzWx8Iterator7Element_Sb_GSawx11SubSequence_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.SubSequence]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.SubSequence",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(separator:maxSplits:omittingEmptySubsequences:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10CollectionWx8Iterator7Element_s9EquatablerS_5splitFT9separatorWxS0_S1__9maxSplitsSi25omittingEmptySubsequencesSb_GSawx11SubSequence_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.SubSequence]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.SubSequence",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Equatable",
+                  "printedName": "Equatable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst()",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Collectionxzwx11SubSequencerS_11removeFirstFT_Wx8Iterator7Element_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10Collectionxzwx11SubSequencerS_11removeFirstFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(of:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs10CollectionWx8Iterator7Element_s9EquatablerS_5indexFT2ofWxS0_S1___GSqwx5Index_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Iterator.Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Equatable",
+                  "printedName": "Equatable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(where:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs10Collection5indexFzT5whereFzWx8Iterator7Element_Sb_GSqwx5Index_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Self.Iterator.Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Self.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "joined",
+          "printedName": "joined()",
+          "declKind": "Func",
+          "usr": "s:FesRxs10CollectionWx8Iterator7Element_S_rS_6joinedFT_GVs17FlattenCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenCollection",
+              "printedName": "FlattenCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vesRxs10Collectionwx7IndiceszGVs14DefaultIndicesx_wx5IndexzWxS0_8Iterator7Element_WxS0_S2__zWxS0_S3_S4__WxS0_11SubSequence_zGS1_x_WxS0_8_Element_zWxS0_S3_S4__WxS0_S3__zGVs16IndexingIteratorGS1_x__rS_7indicesGS1_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs10Collectionwx7IndiceszGVs14DefaultIndicesx_wx5IndexzWxS0_8Iterator7Element_WxS0_S2__zWxS0_S3_S4__WxS0_11SubSequence_zGS1_x_WxS0_8_Element_zWxS0_S3_S4__WxS0_S3__zGVs16IndexingIteratorGS1_x__rS_g7indicesGS1_x_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vEsPs10Collection4lazyGVs14LazyCollectionx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<Self>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Self"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs10Collectiong4lazyGVs14LazyCollectionx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Self>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "lazy",
+          "printedName": "lazy",
+          "declKind": "Var",
+          "usr": "s:vesRxs22LazyCollectionProtocolrPs10Collection4lazyx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FesRxs22LazyCollectionProtocolrPs10Collectiong4lazyx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "LazyCollectionProtocol",
+                      "printedName": "LazyCollectionProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyBidirectionalCollection",
+      "printedName": "AnyBidirectionalCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs26AnyBidirectionalCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs26AnyBidirectionalCollectioncuRd__s23BidirectionalCollectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_7Indices_S0_xzWd__S2_8Iterator7Element_wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S6__wd__5IndexzWd__S2_S3_S4_S5__Wd__S1_S7__zWd__S2_S3_S4_S5__Wd__S2_S3__zWd__S2_S3_S6__Wd__S2_S7__zWd__S2_S3_S4_S5__Wd__8IteratorS5__zWd__S2_S4_S5__Wd__S1_S4_S5__zWd__S2_S3_S4_S5__Wd__S2_S3_S7__zWd__S2_S3_S4_S5__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs26AnyBidirectionalCollectioncFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs26AnyBidirectionalCollectioncuRd__s22RandomAccessCollectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_7Indices_S0_xzWd__S2_8Iterator7Element_wd__5IndexzWd__S2_S3_S4_S5__wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S7__Wd__8IteratorS5__zWd__S2_S4_S5__Wd__S1_S6__zWd__S2_S3_S4_S5__Wd__S2_S3__zWd__S2_S3_S7__Wd__S2_S6__zWd__S2_S3_S4_S5__Wd__S1_S4_S5__zWd__S2_S3_S4_S5__Wd__S2_S3_S6__zWd__S2_S3_S4_S5__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessCollection",
+                  "printedName": "RandomAccessCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs26AnyBidirectionalCollectioncFGVs25AnyRandomAccessCollectionx_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs26AnyBidirectionalCollectioncFGVs13AnyCollectionx_GSqGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyBidirectionalCollection<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26AnyBidirectionalCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26AnyBidirectionalCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection10startIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong10startIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection8endIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong8endIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection5indexFT5afterVs8AnyIndex_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection9formIndexFT5afterRVs8AnyIndex_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection5indexFTVs8AnyIndex8offsetByVs5Int64_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection5indexFTVs8AnyIndex8offsetByVs5Int649limitedByS0__GSqS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyIndex?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int64_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int649limitedByS0__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection8distanceFT4fromVs8AnyIndex2toS0__Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection5countVs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong5countVs5Int64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IntMax",
+                  "printedName": "IntMax"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection5firstGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong5firstGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection5indexFT6beforeVs8AnyIndex_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection9formIndexFT6beforeRVs8AnyIndex_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection4lastGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong4lastGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26AnyBidirectionalCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26AnyBidirectionalCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultBidirectionalIndices",
+              "printedName": "DefaultBidirectionalIndices<AnyBidirectionalCollection<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26AnyBidirectionalCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection12makeIteratorFT_GVs11AnyIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs26AnyBidirectionalCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26AnyBidirectionalCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection3mapurFzFzxqd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection6filterFzFzxSbGSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection7forEachFzFzxT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection9dropFirstFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection8dropLastFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection6prefixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection6suffixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FVs26AnyBidirectionalCollection5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzxSb_GSaGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnyBidirectionalCollection<Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyBidirectionalCollection",
+                  "printedName": "AnyBidirectionalCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Float80",
+      "printedName": "Float80",
+      "declKind": "Struct",
+      "usr": "s:Vs7Float80",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFSSGSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float80?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8011descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8016debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Exponent",
+          "printedName": "Exponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float808Exponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawSignificand",
+          "printedName": "RawSignificand",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float8014RawSignificand",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitCount",
+          "printedName": "exponentBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8016exponentBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g16exponentBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitCount",
+          "printedName": "significandBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8019significandBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g19significandBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sign",
+          "printedName": "sign",
+          "declKind": "Var",
+          "usr": "s:vVs7Float804signOs17FloatingPointSign",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g4signOs17FloatingPointSign",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitPattern",
+          "printedName": "exponentBitPattern",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8018exponentBitPatternSu",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g18exponentBitPatternSu",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt",
+                  "printedName": "UInt"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitPattern",
+          "printedName": "significandBitPattern",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8021significandBitPatternVs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g21significandBitPatternVs6UInt64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt64",
+                  "printedName": "UInt64"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponentBitPattern:significandBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT4signOs17FloatingPointSign18exponentBitPatternSu21significandBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isCanonical",
+          "printedName": "isCanonical",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8011isCanonicalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g11isCanonicalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "infinity",
+          "printedName": "infinity",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float808infinityS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g8infinityS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nan",
+          "printedName": "nan",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float803nanS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g3nanS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signalingNaN",
+          "printedName": "signalingNaN",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8012signalingNaNS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g12signalingNaNS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "greatestFiniteMagnitude",
+          "printedName": "greatestFiniteMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8023greatestFiniteMagnitudeS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g23greatestFiniteMagnitudeS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pi",
+          "printedName": "pi",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float802piS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g2piS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulp",
+          "printedName": "ulp",
+          "declKind": "Var",
+          "usr": "s:vVs7Float803ulpS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g3ulpS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNormalMagnitude",
+          "printedName": "leastNormalMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8020leastNormalMagnitudeS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g20leastNormalMagnitudeS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNonzeroMagnitude",
+          "printedName": "leastNonzeroMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvVs7Float8021leastNonzeroMagnitudeS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs7Float80g21leastNonzeroMagnitudeS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Float80.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Float80",
+                      "printedName": "Float80"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponent",
+          "printedName": "exponent",
+          "declKind": "Var",
+          "usr": "s:vVs7Float808exponentSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g8exponentSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significand",
+          "printedName": "significand",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8011significandS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g11significandS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponent:significand:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT4signOs17FloatingPointSign8exponentSi11significandS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(nan:signaling:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT3nanVs6UInt649signalingSb_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "RawSignificand",
+              "printedName": "Float80.RawSignificand"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextUp",
+          "printedName": "nextUp",
+          "declKind": "Var",
+          "usr": "s:vVs7Float806nextUpS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g6nextUpS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "round",
+          "printedName": "round(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float805roundFOs25FloatingPointRoundingRuleT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negate",
+          "printedName": "negate()",
+          "declKind": "Func",
+          "usr": "s:FVs7Float806negateFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "add",
+          "printedName": "add(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float803addFS_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float808subtractFS_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiply",
+          "printedName": "multiply(by:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float808multiplyFT2byS__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divide",
+          "printedName": "divide(by:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float806divideFT2byS__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formRemainder",
+          "printedName": "formRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float8013formRemainderFT10dividingByS__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formTruncatingRemainder",
+          "printedName": "formTruncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float8023formTruncatingRemainderFT10dividingByS__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSquareRoot",
+          "printedName": "formSquareRoot()",
+          "declKind": "Func",
+          "usr": "s:FVs7Float8014formSquareRootFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addProduct",
+          "printedName": "addProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float8010addProductFTS_S__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isEqual",
+          "printedName": "isEqual(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float807isEqualFT2toS__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLess",
+          "printedName": "isLess(than:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float806isLessFT4thanS__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLessThanOrEqualTo",
+          "printedName": "isLessThanOrEqualTo(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float8019isLessThanOrEqualToFS_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNormal",
+          "printedName": "isNormal",
+          "declKind": "Var",
+          "usr": "s:vVs7Float808isNormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g8isNormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isFinite",
+          "printedName": "isFinite",
+          "declKind": "Var",
+          "usr": "s:vVs7Float808isFiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g8isFiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isZero",
+          "printedName": "isZero",
+          "declKind": "Var",
+          "usr": "s:vVs7Float806isZeroSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g6isZeroSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSubnormal",
+          "printedName": "isSubnormal",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8011isSubnormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g11isSubnormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isInfinite",
+          "printedName": "isInfinite",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8010isInfiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g10isInfiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNaN",
+          "printedName": "isNaN",
+          "declKind": "Var",
+          "usr": "s:vVs7Float805isNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g5isNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSignalingNaN",
+          "printedName": "isSignalingNaN",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8014isSignalingNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g14isSignalingNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "binade",
+          "printedName": "binade",
+          "declKind": "Var",
+          "usr": "s:vVs7Float806binadeS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g6binadeS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandWidth",
+          "printedName": "significandWidth",
+          "declKind": "Var",
+          "usr": "s:vVs7Float8016significandWidthSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g16significandWidthSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(floatLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT12floatLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "RawExponent",
+          "printedName": "RawExponent",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float8011RawExponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "FloatLiteralType",
+          "printedName": "FloatLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float8016FloatLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT14integerLiteralVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float8018IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs7Float809hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs7Float80g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "abs",
+          "printedName": "abs(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs7Float803absFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs6UInt16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT7exactlySf_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float80?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT7exactlySd_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float80?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs7Float80cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Float80?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Float80",
+                  "printedName": "Float80"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float808distanceFT2toS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FVs7Float808advancedFT2byS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs7Float806Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "EnumeratedSequence",
+      "printedName": "EnumeratedSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs18EnumeratedSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs18EnumeratedSequence12makeIteratorFT_GVs18EnumeratedIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EnumeratedIterator",
+              "printedName": "EnumeratedIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18EnumeratedSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "EnumeratedIterator",
+              "printedName": "EnumeratedIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18EnumeratedSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<(offset: Int, element: Base.Iterator.Element)>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(offset: Int, element: Base.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Int",
+                      "printedName": "Int"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CChar",
+      "printedName": "CChar",
+      "declKind": "TypeAlias",
+      "usr": "s:s5CChar",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int8",
+          "printedName": "Int8"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByFloatLiteral",
+      "printedName": "ExpressibleByFloatLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps25ExpressibleByFloatLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(floatLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs25ExpressibleByFloatLiteralcFT12floatLiteralwx16FloatLiteralType_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByFloatLiteral",
+                  "printedName": "ExpressibleByFloatLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.FloatLiteralType",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_ExpressibleByBuiltinFloatLiteral",
+                  "printedName": "_ExpressibleByBuiltinFloatLiteral"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Set",
+      "printedName": "Set",
+      "declKind": "Struct",
+      "usr": "s:Vs3Set",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(minimumCapacity:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs3SetcFT15minimumCapacitySi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs3Set10startIndexGVs8SetIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg10startIndexGVs8SetIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetIndex",
+                  "printedName": "SetIndex<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs3Set8endIndexGVs8SetIndexx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg8endIndexGVs8SetIndexx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetIndex",
+                  "printedName": "SetIndex<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set5indexFT5afterGVs8SetIndexx__GS0_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "contains",
+          "printedName": "contains(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8containsFxSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set5indexFT2ofx_GSqGVs8SetIndexx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "SetIndex<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SetIndex",
+                  "printedName": "SetIndex<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set6insertFxT8insertedSb17memberAfterInsertx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(inserted: Bool, memberAfterInsert: Element)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "update",
+          "printedName": "update(with:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set6updateFT4withx_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set6removeFxGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set6removeFT2atGVs8SetIndexx__x",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "SetIndex",
+              "printedName": "SetIndex<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeFirst",
+          "printedName": "removeFirst()",
+          "declKind": "Func",
+          "usr": "s:FVs3Set11removeFirstFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs3Set5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs3Set12makeIteratorFT_GVs11SetIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIterator",
+              "printedName": "SetIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs3SetcFt12arrayLiteralGSax__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs3SetcFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs3SetcuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Source",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSubset",
+          "printedName": "isSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8isSubsetuRd__s8SequencexzWd__8Iterator7Element_rFT2ofqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSubset",
+          "printedName": "isStrictSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set14isStrictSubsetuRd__s8SequencexzWd__8Iterator7Element_rFT2ofqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSuperset",
+          "printedName": "isSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set10isSupersetuRd__s8SequencexzWd__8Iterator7Element_rFT2ofqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSuperset",
+          "printedName": "isStrictSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set16isStrictSupersetuRd__s8SequencexzWd__8Iterator7Element_rFT2ofqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isDisjoint",
+          "printedName": "isDisjoint(with:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set10isDisjointuRd__s8SequencexzWd__8Iterator7Element_rFT4withqd___Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "union",
+          "printedName": "union(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set5unionuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formUnion",
+          "printedName": "formUnion(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set9formUnionuRd__s8SequencexzWd__8Iterator7Element_rFqd__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set11subtractinguRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8subtractuRd__s8SequencexzWd__8Iterator7Element_rFqd__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "intersection",
+          "printedName": "intersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set12intersectionuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIntersection",
+          "printedName": "formIntersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set16formIntersectionuRd__s8SequencexzWd__8Iterator7Element_rFqd__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "symmetricDifference",
+          "printedName": "symmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set19symmetricDifferenceuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSymmetricDifference",
+          "printedName": "formSymmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set23formSymmetricDifferenceuRd__s8SequencexzWd__8Iterator7Element_rFqd__T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs3Set9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs3Set7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs3Set5firstGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg5firstGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<Set<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "SetIterator",
+              "printedName": "SetIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Set<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs3Set7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeDescription",
+          "printedName": "makeDescription(isDebug:)",
+          "declKind": "Func",
+          "usr": "s:FVs3SetP33_69BD46AE5A11D8B70E9CADC1ECE9CF7615makeDescriptionFT7isDebugSb_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs3Set11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs3Set16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs3Set12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs3Setg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Set",
+                  "printedName": "Set<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "popFirst",
+          "printedName": "popFirst()",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8popFirstFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8subtractFGS_x_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSubset",
+          "printedName": "isSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set8isSubsetFT2ofGS_x__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isSuperset",
+          "printedName": "isSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set10isSupersetFT2ofGS_x__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isDisjoint",
+          "printedName": "isDisjoint(with:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set10isDisjointFT4withGS_x__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set11subtractingFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSuperset",
+          "printedName": "isStrictSuperset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set16isStrictSupersetFT2ofGS_x__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isStrictSubset",
+          "printedName": "isStrictSubset(of:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set14isStrictSubsetFT2ofGS_x__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "intersection",
+          "printedName": "intersection(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set12intersectionFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSymmetricDifference",
+          "printedName": "formSymmetricDifference(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs3Set23formSymmetricDifferenceFGS_x_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Set",
+              "printedName": "Set<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Hashablexs20_AnyHashableProtocolrVs3Set6insertuRd__S_rFqd__T8insertedSb17memberAfterInsertqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(inserted: Bool, memberAfterInsert: ConcreteElement)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ConcreteElement",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "ConcreteElement",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "update",
+          "printedName": "update(with:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Hashablexs20_AnyHashableProtocolrVs3Set6updateuRd__S_rFT4withqd___GSqqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "ConcreteElement?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ConcreteElement",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "ConcreteElement",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(_:)",
+          "declKind": "Func",
+          "usr": "s:FesRxs8Hashablexs20_AnyHashableProtocolrVs3Set6removeuRd__S_rFqd__GSqqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "ConcreteElement?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "ConcreteElement",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "ConcreteElement",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Hashable",
+                  "printedName": "Hashable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Slice",
+      "printedName": "Slice",
+      "declKind": "Struct",
+      "usr": "s:Vs5Slice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Slice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Slice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs5Slice10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Sliceg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs5Slice8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Sliceg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Slice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indexable",
+                      "printedName": "Indexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Slice5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Slice9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Slice5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Slice5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs5Slice8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs5SlicecFT4basex6boundsGVs5Rangewx5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Slice",
+              "printedName": "Slice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indexable",
+                      "printedName": "Indexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Indexable",
+                  "printedName": "Indexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs5Slice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs5Sliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indexable",
+                      "printedName": "Indexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Slice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<Slice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs5Slice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<Slice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indexable",
+                          "printedName": "Indexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableIndexable",
+      "printedName": "MutableIndexable",
+      "declKind": "Protocol",
+      "usr": "s:Ps16MutableIndexable",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vPs16MutableIndexable10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs16MutableIndexableg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vPs16MutableIndexable8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs16MutableIndexableg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FPs16MutableIndexable5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FPs16MutableIndexable9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Self.Index"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "sequence",
+      "printedName": "sequence(first:next:)",
+      "declKind": "Func",
+      "usr": "s:Fs8sequenceurFT5firstx4nextFxGSqx__GVs14UnfoldSequencexTGSqx_Sb__",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UnfoldSequence",
+          "printedName": "UnfoldSequence<T, (T?, Bool)>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(T?, Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "T?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "T"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(T) -> T?",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "T?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(T)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "sequence",
+      "printedName": "sequence(state:next:)",
+      "declKind": "Func",
+      "usr": "s:Fs8sequenceu0_rFT5stateq_4nextFRq_GSqx__GVs14UnfoldSequencexq__",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UnfoldSequence",
+          "printedName": "UnfoldSequence<T, State>",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "State"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "State"
+        },
+        {
+          "kind": "TypeFunc",
+          "name": "Function",
+          "printedName": "(inout State) -> T?",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "T?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Paren",
+              "printedName": "(inout State)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout State"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "TextOutputStream",
+      "printedName": "TextOutputStream",
+      "declKind": "Protocol",
+      "usr": "s:Ps16TextOutputStream",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs16TextOutputStream5writeFSST_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "Void",
+      "printedName": "Void",
+      "declKind": "TypeAlias",
+      "usr": "s:s4Void",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "swap",
+      "printedName": "swap(_:_:)",
+      "declKind": "Func",
+      "usr": "s:Fs4swapurFTRxRx_T_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Void",
+          "printedName": "()"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "InOut",
+          "printedName": "inout T"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeBufferPointer",
+      "printedName": "UnsafeBufferPointer",
+      "declKind": "Struct",
+      "usr": "s:SR",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:SR5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:SR13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:SR8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<UnsafeBufferPointer<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vSR10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vSR8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FSR5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FSR9formIndexFT5afterRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FSR5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FSR9formIndexFT6beforeRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FSR5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FSR5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FSR8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:SR7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vSR7indicesGVs14CountableRangeSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Indices",
+              "printedName": "UnsafeBufferPointer.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg7indicesGVs14CountableRangeSi_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Indices",
+                  "printedName": "UnsafeBufferPointer.Indices"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(start:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FSRcFT5startGSqGSPx__5countSi_GSRx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeBufferPointer",
+              "printedName": "UnsafeBufferPointer<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FSR12makeIteratorFT_GVs27UnsafeBufferPointerIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeBufferPointerIterator",
+              "printedName": "UnsafeBufferPointerIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "baseAddress",
+          "printedName": "baseAddress",
+          "declKind": "Var",
+          "usr": "s:vSR11baseAddressGSqGSPx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg11baseAddressGSqGSPx__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "UnsafePointer<Element>?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafePointer",
+                      "printedName": "UnsafePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vSR5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:SR11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "RandomAccessSlice",
+              "printedName": "RandomAccessSlice<UnsafeBufferPointer<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSR16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSRg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeBufferPointer",
+                  "printedName": "UnsafeBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CollectionOfOne",
+      "printedName": "CollectionOfOne",
+      "declKind": "Struct",
+      "usr": "s:Vs15CollectionOfOne",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs15CollectionOfOnecFxGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CollectionOfOne",
+              "printedName": "CollectionOfOne<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15CollectionOfOne5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15CollectionOfOne10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15CollectionOfOneg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs15CollectionOfOne8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15CollectionOfOneg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs15CollectionOfOne5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs15CollectionOfOne5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15CollectionOfOne7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs15CollectionOfOne12makeIteratorFT_GVs15IteratorOverOnex_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorOverOne",
+              "printedName": "IteratorOverOne<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs15CollectionOfOne5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15CollectionOfOneg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15CollectionOfOne13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15CollectionOfOne11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRandomAccessSlice",
+              "printedName": "MutableRandomAccessSlice<CollectionOfOne<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15CollectionOfOne8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IteratorOverOne",
+              "printedName": "IteratorOverOne<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs15CollectionOfOne16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15CollectionOfOneg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs15CollectionOfOne12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs15CollectionOfOneg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CollectionOfOne",
+                  "printedName": "CollectionOfOne<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeMutableBufferPointer",
+      "printedName": "UnsafeMutableBufferPointer",
+      "declKind": "Struct",
+      "usr": "s:Sr",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Sr5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Sr13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Sr8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<UnsafeMutableBufferPointer<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vSr10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vSr8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FSr5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FSr9formIndexFT5afterRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FSr5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FSr9formIndexFT6beforeRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FSr5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FSr5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FSr8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Sr7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vSr7indicesGVs14CountableRangeSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Indices",
+              "printedName": "UnsafeMutableBufferPointer.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg7indicesGVs14CountableRangeSi_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Indices",
+                  "printedName": "UnsafeMutableBufferPointer.Indices"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(start:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FSrcFT5startGSqGSpx__5countSi_GSrx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableBufferPointer",
+              "printedName": "UnsafeMutableBufferPointer<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FSr12makeIteratorFT_GVs27UnsafeBufferPointerIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeBufferPointerIterator",
+              "printedName": "UnsafeBufferPointerIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "baseAddress",
+          "printedName": "baseAddress",
+          "declKind": "Var",
+          "usr": "s:vSr11baseAddressGSqGSpx__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg11baseAddressGSqGSpx__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "UnsafeMutablePointer<Element>?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vSr5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Sr11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableRandomAccessSlice",
+              "printedName": "MutableRandomAccessSlice<UnsafeMutableBufferPointer<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSr16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSrg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableBufferPointer",
+                  "printedName": "UnsafeMutableBufferPointer<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "CustomLeafReflectable",
+      "printedName": "CustomLeafReflectable",
+      "declKind": "Protocol",
+      "usr": "s:Ps21CustomLeafReflectable",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DictionaryIteratorRepresentation",
+      "printedName": "DictionaryIteratorRepresentation",
+      "declKind": "Enum",
+      "usr": "s:Os32DictionaryIteratorRepresentation",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "MutableSlice",
+      "printedName": "MutableSlice",
+      "declKind": "Struct",
+      "usr": "s:Vs12MutableSlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12MutableSlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12MutableSlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs12MutableSlice10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12MutableSliceg10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableSlice",
+                  "printedName": "MutableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs12MutableSlice8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12MutableSliceg8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableSlice",
+                  "printedName": "MutableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12MutableSlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableSlice",
+              "printedName": "MutableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs12MutableSlice5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs12MutableSlice9formIndexFT5afterRwx5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Base.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs12MutableSlice5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs12MutableSlice5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs12MutableSlice8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:bounds:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12MutableSlicecFT4basex6boundsGVs5Rangewx5Index__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "MutableSlice",
+              "printedName": "MutableSlice<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableIndexable",
+                  "printedName": "MutableIndexable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Base.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs12MutableSlice4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12MutableSliceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "MutableIndexable",
+                      "printedName": "MutableIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableSlice",
+                  "printedName": "MutableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12MutableSlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<MutableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableSlice",
+                  "printedName": "MutableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12MutableSlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultIndices",
+              "printedName": "DefaultIndices<MutableSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "MutableSlice",
+                  "printedName": "MutableSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "MutableIndexable",
+                          "printedName": "MutableIndexable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Zip2Sequence",
+      "printedName": "Zip2Sequence",
+      "declKind": "Struct",
+      "usr": "s:Vs12Zip2Sequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Stream1",
+          "printedName": "Stream1",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12Zip2Sequence7Stream1",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Sequence1.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stream2",
+          "printedName": "Stream2",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12Zip2Sequence7Stream2",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Sequence2.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12Zip2Sequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Zip2Iterator",
+              "printedName": "Zip2Iterator<Sequence1.Iterator, Sequence2.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Sequence1.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Sequence2.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs12Zip2Sequence12makeIteratorFT_GVs12Zip2Iteratorwx8Iteratorw_S1__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Zip2Iterator",
+              "printedName": "Zip2Iterator<Sequence1.Iterator, Sequence2.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Sequence1.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Sequence2.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12Zip2Sequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<(Sequence1.Iterator.Element, Sequence2.Iterator.Element)>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "(Sequence1.Iterator.Element, Sequence2.Iterator.Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Sequence1.Iterator.Element"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Sequence2.Iterator.Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyFilterSequence",
+      "printedName": "LazyFilterSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs18LazyFilterSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs18LazyFilterSequence12makeIteratorFT_GVs18LazyFilterIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "base",
+          "printedName": "base",
+          "declKind": "Var",
+          "usr": "s:vVs18LazyFilterSequence4basex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18LazyFilterSequenceg4basex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyFilterSequence",
+                  "printedName": "LazyFilterSequence<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Sequence",
+                          "printedName": "Sequence"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterSequence8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterSequence",
+              "printedName": "LazyFilterSequence<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyFilterIterator",
+              "printedName": "LazyFilterIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18LazyFilterSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RandomAccessIndexable",
+      "printedName": "RandomAccessIndexable",
+      "declKind": "Protocol",
+      "usr": "s:Ps21RandomAccessIndexable",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs21RandomAccessIndexable5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ExpressibleByArrayLiteral",
+      "printedName": "ExpressibleByArrayLiteral",
+      "declKind": "Protocol",
+      "usr": "s:Ps25ExpressibleByArrayLiteral",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs25ExpressibleByArrayLiteralcFt12arrayLiteralGSawx7Element__x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ExpressibleByArrayLiteral",
+                  "printedName": "ExpressibleByArrayLiteral"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Self.Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FloatingPoint",
+      "printedName": "FloatingPoint",
+      "declKind": "Protocol",
+      "usr": "s:Ps13FloatingPoint",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponent:significand:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFT4signOs17FloatingPointSign8exponentwx8Exponent11significandx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.Exponent",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(signOf:magnitudeOf:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFT6signOfx11magnitudeOfx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs5UInt8x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs4Int8x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs6UInt16x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs5Int16x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs6UInt32x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs5Int32x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs6UInt64x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFVs5Int64x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFSux",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs13FloatingPointcFSix",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "radix",
+          "printedName": "radix",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint5radixSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg5radixSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "FloatingPoint",
+                          "printedName": "FloatingPoint"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nan",
+          "printedName": "nan",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint3nanx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg3nanx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "signalingNaN",
+          "printedName": "signalingNaN",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint12signalingNaNx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg12signalingNaNx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "infinity",
+          "printedName": "infinity",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint8infinityx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg8infinityx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "greatestFiniteMagnitude",
+          "printedName": "greatestFiniteMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint23greatestFiniteMagnitudex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg23greatestFiniteMagnitudex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "pi",
+          "printedName": "pi",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint2pix",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg2pix",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulp",
+          "printedName": "ulp",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint3ulpx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg3ulpx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulpOfOne",
+          "printedName": "ulpOfOne",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint8ulpOfOnex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg8ulpOfOnex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNormalMagnitude",
+          "printedName": "leastNormalMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint20leastNormalMagnitudex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg20leastNormalMagnitudex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "leastNonzeroMagnitude",
+          "printedName": "leastNonzeroMagnitude",
+          "declKind": "Var",
+          "usr": "s:ZvPs13FloatingPoint21leastNonzeroMagnitudex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs13FloatingPointg21leastNonzeroMagnitudex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "DynamicSelf",
+                      "printedName": "Self"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "sign",
+          "printedName": "sign",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint4signOs17FloatingPointSign",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg4signOs17FloatingPointSign",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointSign",
+                  "printedName": "FloatingPointSign"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponent",
+          "printedName": "exponent",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint8exponentwx8Exponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.Exponent"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg8exponentwx8Exponent",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.Exponent",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significand",
+          "printedName": "significand",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint11significandx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg11significandx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "adding",
+          "printedName": "adding(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint6addingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "add",
+          "printedName": "add(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint3addFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negated",
+          "printedName": "negated()",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint7negatedFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negate",
+          "printedName": "negate()",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint6negateFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint11subtractingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtract",
+          "printedName": "subtract(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint8subtractFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplied",
+          "printedName": "multiplied(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint10multipliedFT2byx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiply",
+          "printedName": "multiply(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint8multiplyFT2byx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divided",
+          "printedName": "divided(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint7dividedFT2byx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divide",
+          "printedName": "divide(by:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint6divideFT2byx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainder",
+          "printedName": "remainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint9remainderFT10dividingByx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formRemainder",
+          "printedName": "formRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint13formRemainderFT10dividingByx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "truncatingRemainder",
+          "printedName": "truncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint19truncatingRemainderFT10dividingByx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formTruncatingRemainder",
+          "printedName": "formTruncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint23formTruncatingRemainderFT10dividingByx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "squareRoot",
+          "printedName": "squareRoot()",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint10squareRootFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formSquareRoot",
+          "printedName": "formSquareRoot()",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint14formSquareRootFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addingProduct",
+          "printedName": "addingProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint13addingProductFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addProduct",
+          "printedName": "addProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint10addProductFTxx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "minimum",
+          "printedName": "minimum(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs13FloatingPoint7minimumFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "maximum",
+          "printedName": "maximum(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs13FloatingPoint7maximumFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "minimumMagnitude",
+          "printedName": "minimumMagnitude(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs13FloatingPoint16minimumMagnitudeFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "maximumMagnitude",
+          "printedName": "maximumMagnitude(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs13FloatingPoint16maximumMagnitudeFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "rounded",
+          "printedName": "rounded(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint7roundedFOs25FloatingPointRoundingRulex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "round",
+          "printedName": "round(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint5roundFOs25FloatingPointRoundingRuleT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextUp",
+          "printedName": "nextUp",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint6nextUpx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg6nextUpx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextDown",
+          "printedName": "nextDown",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint8nextDownx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg8nextDownx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isEqual",
+          "printedName": "isEqual(to:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint7isEqualFT2tox_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLess",
+          "printedName": "isLess(than:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint6isLessFT4thanx_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isLessThanOrEqualTo",
+          "printedName": "isLessThanOrEqualTo(_:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint19isLessThanOrEqualToFxSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isTotallyOrdered",
+          "printedName": "isTotallyOrdered(belowOrEqualTo:)",
+          "declKind": "Func",
+          "usr": "s:FPs13FloatingPoint16isTotallyOrderedFT14belowOrEqualTox_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNormal",
+          "printedName": "isNormal",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint8isNormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg8isNormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isFinite",
+          "printedName": "isFinite",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint8isFiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg8isFiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isZero",
+          "printedName": "isZero",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint6isZeroSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg6isZeroSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSubnormal",
+          "printedName": "isSubnormal",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint11isSubnormalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg11isSubnormalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isInfinite",
+          "printedName": "isInfinite",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint10isInfiniteSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg10isInfiniteSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isNaN",
+          "printedName": "isNaN",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint5isNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg5isNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isSignalingNaN",
+          "printedName": "isSignalingNaN",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint14isSignalingNaNSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg14isSignalingNaNSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "floatingPointClass",
+          "printedName": "floatingPointClass",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint18floatingPointClassOs27FloatingPointClassification",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointClassification",
+              "printedName": "FloatingPointClassification"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg18floatingPointClassOs27FloatingPointClassification",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isCanonical",
+          "printedName": "isCanonical",
+          "declKind": "Var",
+          "usr": "s:vPs13FloatingPoint11isCanonicalSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs13FloatingPointg11isCanonicalSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "ulpOfOne",
+          "printedName": "ulpOfOne",
+          "declKind": "Var",
+          "usr": "s:ZvEsPs13FloatingPoint8ulpOfOnex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFEsPs13FloatingPointg8ulpOfOnex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "FloatingPoint",
+                          "printedName": "FloatingPoint"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "rounded",
+          "printedName": "rounded(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint7roundedFOs25FloatingPointRoundingRulex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointRoundingRule",
+              "printedName": "FloatingPointRoundingRule"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "rounded",
+          "printedName": "rounded()",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint7roundedFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "round",
+          "printedName": "round()",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint5roundFT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "nextDown",
+          "printedName": "nextDown",
+          "declKind": "Var",
+          "usr": "s:vEsPs13FloatingPoint8nextDownx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs13FloatingPointg8nextDownx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "truncatingRemainder",
+          "printedName": "truncatingRemainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint19truncatingRemainderFT10dividingByx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainder",
+          "printedName": "remainder(dividingBy:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint9remainderFT10dividingByx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "squareRoot",
+          "printedName": "squareRoot()",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint10squareRootFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addingProduct",
+          "printedName": "addingProduct(_:_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint13addingProductFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "minimum",
+          "printedName": "minimum(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFEsPs13FloatingPoint7minimumFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "maximum",
+          "printedName": "maximum(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFEsPs13FloatingPoint7maximumFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "minimumMagnitude",
+          "printedName": "minimumMagnitude(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFEsPs13FloatingPoint16minimumMagnitudeFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "maximumMagnitude",
+          "printedName": "maximumMagnitude(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFEsPs13FloatingPoint16maximumMagnitudeFTxx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "floatingPointClass",
+          "printedName": "floatingPointClass",
+          "declKind": "Var",
+          "usr": "s:vEsPs13FloatingPoint18floatingPointClassOs27FloatingPointClassification",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointClassification",
+              "printedName": "FloatingPointClassification"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FEsPs13FloatingPointg18floatingPointClassOs27FloatingPointClassification",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPointClassification",
+                  "printedName": "FloatingPointClassification"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "FloatingPoint",
+                      "printedName": "FloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "adding",
+          "printedName": "adding(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint6addingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtracting",
+          "printedName": "subtracting(_:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint11subtractingFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplied",
+          "printedName": "multiplied(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint10multipliedFT2byx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divided",
+          "printedName": "divided(by:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint7dividedFT2byx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "negated",
+          "printedName": "negated()",
+          "declKind": "Func",
+          "usr": "s:FEsPs13FloatingPoint7negatedFT_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "FloatingPoint",
+                  "printedName": "FloatingPoint"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "BinaryFloatingPoint",
+      "printedName": "BinaryFloatingPoint",
+      "declKind": "Protocol",
+      "usr": "s:Ps19BinaryFloatingPoint",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(sign:exponentBitPattern:significandBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs19BinaryFloatingPointcFT4signOs17FloatingPointSign18exponentBitPatternwx11RawExponent21significandBitPatternwx14RawSignificand_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "FloatingPointSign",
+              "printedName": "FloatingPointSign"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.RawExponent",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.RawSignificand",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs19BinaryFloatingPointcFSfx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs19BinaryFloatingPointcFSdx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs19BinaryFloatingPointcFVs7Float80x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitCount",
+          "printedName": "exponentBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvPs19BinaryFloatingPoint16exponentBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs19BinaryFloatingPointg16exponentBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BinaryFloatingPoint",
+                          "printedName": "BinaryFloatingPoint"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitCount",
+          "printedName": "significandBitCount",
+          "declKind": "Var",
+          "usr": "s:ZvPs19BinaryFloatingPoint19significandBitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFPs19BinaryFloatingPointg19significandBitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BinaryFloatingPoint",
+                          "printedName": "BinaryFloatingPoint"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "exponentBitPattern",
+          "printedName": "exponentBitPattern",
+          "declKind": "Var",
+          "usr": "s:vPs19BinaryFloatingPoint18exponentBitPatternwx11RawExponent",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.RawExponent"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs19BinaryFloatingPointg18exponentBitPatternwx11RawExponent",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.RawExponent",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsignedInteger",
+                      "printedName": "UnsignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BinaryFloatingPoint",
+                      "printedName": "BinaryFloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandBitPattern",
+          "printedName": "significandBitPattern",
+          "declKind": "Var",
+          "usr": "s:vPs19BinaryFloatingPoint21significandBitPatternwx14RawSignificand",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.RawSignificand"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs19BinaryFloatingPointg21significandBitPatternwx14RawSignificand",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.RawSignificand",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsignedInteger",
+                      "printedName": "UnsignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BinaryFloatingPoint",
+                      "printedName": "BinaryFloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "binade",
+          "printedName": "binade",
+          "declKind": "Var",
+          "usr": "s:vPs19BinaryFloatingPoint6binadex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Self"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs19BinaryFloatingPointg6binadex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DynamicSelf",
+                  "printedName": "Self"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "significandWidth",
+          "printedName": "significandWidth",
+          "declKind": "Var",
+          "usr": "s:vPs19BinaryFloatingPoint16significandWidthSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs19BinaryFloatingPointg16significandWidthSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BinaryFloatingPoint",
+                      "printedName": "BinaryFloatingPoint"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "radix",
+          "printedName": "radix",
+          "declKind": "Var",
+          "usr": "s:ZvEsPs19BinaryFloatingPoint5radixSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFEsPs19BinaryFloatingPointg5radixSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "Self.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Self",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "BinaryFloatingPoint",
+                          "printedName": "BinaryFloatingPoint"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(signOf:magnitudeOf:)",
+          "declKind": "Constructor",
+          "usr": "s:FEsPs19BinaryFloatingPointcFT6signOfx11magnitudeOfx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "isTotallyOrdered",
+          "printedName": "isTotallyOrdered(belowOrEqualTo:)",
+          "declKind": "Func",
+          "usr": "s:FEsPs19BinaryFloatingPoint16isTotallyOrderedFT14belowOrEqualTox_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BinaryFloatingPoint",
+                  "printedName": "BinaryFloatingPoint"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ManagedBuffer",
+      "printedName": "ManagedBuffer",
+      "declKind": "Class",
+      "usr": "s:Cs13ManagedBuffer",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "create",
+          "printedName": "create(minimumCapacity:makingHeaderWith:)",
+          "declKind": "Func",
+          "usr": "s:ZFCs13ManagedBuffer6createFzT15minimumCapacitySi16makingHeaderWithFzGS_xq__x_GS_xq__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ManagedBuffer",
+              "printedName": "ManagedBuffer<Header, Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(ManagedBuffer<Header, Element>) throws -> Header",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(ManagedBuffer<Header, Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "ManagedBuffer",
+                      "printedName": "ManagedBuffer<Header, Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Header"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "capacity",
+          "printedName": "capacity",
+          "declKind": "Var",
+          "usr": "s:vCs13ManagedBuffer8capacitySi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FCs13ManagedBufferg8capacitySi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBuffer",
+                  "printedName": "ManagedBuffer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointerToHeader",
+          "printedName": "withUnsafeMutablePointerToHeader(_:)",
+          "declKind": "Func",
+          "usr": "s:FCs13ManagedBuffer32withUnsafeMutablePointerToHeaderurFzFzGSpx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Header>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<Header>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Header>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Header"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointerToElements",
+          "printedName": "withUnsafeMutablePointerToElements(_:)",
+          "declKind": "Func",
+          "usr": "s:FCs13ManagedBuffer34withUnsafeMutablePointerToElementsurFzFzGSpq__qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeMutablePointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutablePointers",
+          "printedName": "withUnsafeMutablePointers(_:)",
+          "declKind": "Func",
+          "usr": "s:FCs13ManagedBuffer25withUnsafeMutablePointersurFzFzTGSpx_GSpq___qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Header>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Header"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeMutablePointer",
+                      "printedName": "UnsafeMutablePointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Archetype",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "header",
+          "printedName": "header",
+          "declKind": "Var",
+          "usr": "s:vCs13ManagedBuffer6headerx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Header"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FCs13ManagedBufferg6headerx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBuffer",
+                  "printedName": "ManagedBuffer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FCs13ManagedBuffers6headerx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ManagedBuffer",
+                  "printedName": "ManagedBuffer<Header, Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Header"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Header"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CUnsignedShort",
+      "printedName": "CUnsignedShort",
+      "declKind": "TypeAlias",
+      "usr": "s:s14CUnsignedShort",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "UInt16",
+          "printedName": "UInt16"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "JoinedSequence",
+      "printedName": "JoinedSequence",
+      "declKind": "Struct",
+      "usr": "s:Vs14JoinedSequence",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(base:separator:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs14JoinedSequencecuRd__s8SequenceWd__8Iterator7Element_zWxS1_S2_S1_S2__rFT4basex9separatorqd___GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "JoinedSequence",
+              "printedName": "JoinedSequence<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Separator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs14JoinedSequence12makeIteratorFT_GVs14JoinedIteratorwx8Iterator_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "JoinedIterator",
+              "printedName": "JoinedIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14JoinedSequence8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "JoinedIterator",
+              "printedName": "JoinedIterator<Base.Iterator>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Iterator",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14JoinedSequence11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Iterator.Element.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base.Iterator.Element.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "String",
+      "printedName": "String",
+      "declKind": "Struct",
+      "usr": "s:SS",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "UTF16View",
+          "printedName": "UTF16View",
+          "declKind": "Struct",
+          "usr": "s:VSS9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeDecl",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "Struct",
+              "usr": "s:VVSS9UTF16View5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS9UTF16View5IndexcFTVVSS8UTF8View5Index6withinS__GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UTF16View.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF16View.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8Index",
+                      "printedName": "String.UTF8Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS9UTF16View5IndexcFTVVSS17UnicodeScalarView5Index6withinS__S0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarIndex",
+                      "printedName": "String.UnicodeScalarIndex"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS9UTF16View5IndexcFTVVSS13CharacterView5Index6withinS__S0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View5Index12samePositionFT2inVSS8UTF8View_GSqVS1_5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UTF8View.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF8View.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View5Index12samePositionFT2inVSS17UnicodeScalarView_GSqVS1_5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UnicodeScalarIndex?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalarIndex",
+                          "printedName": "String.UnicodeScalarIndex"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View5Index12samePositionFT2inSS_GSqVVSS13CharacterView5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS9UTF16View13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View10startIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg10startIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View8endIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg8endIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeDecl",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "Struct",
+              "usr": "s:VVSS9UTF16View7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeAlias",
+                  "name": "Index",
+                  "printedName": "Index",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS9UTF16View7Indices5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeAlias",
+                  "name": "IndexDistance",
+                  "printedName": "IndexDistance",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS9UTF16View7Indices13IndexDistance",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexDistance",
+                      "printedName": "String.UTF16View.IndexDistance"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeAlias",
+                  "name": "Indices",
+                  "printedName": "Indices",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS9UTF16View7Indices7Indices",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indices",
+                      "printedName": "String.UTF16View.Indices"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeAlias",
+                  "name": "SubSequence",
+                  "printedName": "SubSequence",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS9UTF16View7Indices11SubSequence",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indices",
+                      "printedName": "String.UTF16View.Indices"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Var",
+                  "name": "startIndex",
+                  "printedName": "startIndex",
+                  "declKind": "Var",
+                  "usr": "s:vVVSS9UTF16View7Indices10startIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "Getter",
+                      "name": "_",
+                      "printedName": "_()",
+                      "declKind": "Func",
+                      "usr": "s:FVVSS9UTF16View7Indicesg10startIndexVS_5Index",
+                      "location": "",
+                      "moduleName": "Swift",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF16View.Indices.Index"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indices",
+                          "printedName": "String.UTF16View.Indices"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "Var",
+                  "name": "endIndex",
+                  "printedName": "endIndex",
+                  "declKind": "Var",
+                  "usr": "s:vVVSS9UTF16View7Indices8endIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "Getter",
+                      "name": "_",
+                      "printedName": "_()",
+                      "declKind": "Func",
+                      "usr": "s:FVVSS9UTF16View7Indicesg8endIndexVS_5Index",
+                      "location": "",
+                      "moduleName": "Swift",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF16View.Indices.Index"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indices",
+                          "printedName": "String.UTF16View.Indices"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "Var",
+                  "name": "indices",
+                  "printedName": "indices",
+                  "declKind": "Var",
+                  "usr": "s:vVVSS9UTF16View7Indices7indicesS0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indices",
+                      "printedName": "String.UTF16View.Indices.Indices"
+                    },
+                    {
+                      "kind": "Getter",
+                      "name": "_",
+                      "printedName": "_()",
+                      "declKind": "Func",
+                      "usr": "s:FVVSS9UTF16View7Indicesg7indicesS0_",
+                      "location": "",
+                      "moduleName": "Swift",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indices",
+                          "printedName": "String.UTF16View.Indices.Indices"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indices",
+                          "printedName": "String.UTF16View.Indices"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "index",
+                  "printedName": "index(after:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices5indexFT5afterVS_5Index_S1_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "formIndex",
+                  "printedName": "formIndex(after:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices9formIndexFT5afterRVS_5Index_T_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Void",
+                      "printedName": "()"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "index",
+                  "printedName": "index(before:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices5indexFT6beforeVS_5Index_S1_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "formIndex",
+                  "printedName": "formIndex(before:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices9formIndexFT6beforeRVS_5Index_T_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Void",
+                      "printedName": "()"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "index",
+                  "printedName": "index(_:offsetBy:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices5indexFTVS_5Index8offsetBySi_S1_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexDistance",
+                      "printedName": "String.UTF16View.Indices.IndexDistance"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "index",
+                  "printedName": "index(_:offsetBy:limitedBy:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices5indexFTVS_5Index8offsetBySi9limitedByS1__GSqS1__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UTF16View.Indices.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF16View.Indices.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexDistance",
+                      "printedName": "String.UTF16View.Indices.IndexDistance"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "distance",
+                  "printedName": "distance(from:to:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS9UTF16View7Indices8distanceFT4fromVS_5Index2toS1__Si",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexDistance",
+                      "printedName": "String.UTF16View.Indices.IndexDistance"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Indices.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeAlias",
+                  "name": "Iterator",
+                  "printedName": "Iterator",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS9UTF16View7Indices8Iterator",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexingIterator",
+                      "printedName": "IndexingIterator<String.UTF16View.Indices>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Indices",
+                          "printedName": "String.UTF16View.Indices"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "indices",
+              "printedName": "indices",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View7indicesVS_7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Indices",
+                  "printedName": "String.UTF16View.Indices"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg7indicesVS_7Indices",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Indices",
+                      "printedName": "String.UTF16View.Indices"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(after:)",
+              "declKind": "Func",
+              "usr": "s:FVSS9UTF16View5indexFT5afterVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(before:)",
+              "declKind": "Func",
+              "usr": "s:FVSS9UTF16View5indexFT6beforeVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(_:offsetBy:)",
+              "declKind": "Func",
+              "usr": "s:FVSS9UTF16View5indexFTVS_5Index8offsetBySi_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexDistance",
+                  "printedName": "String.UTF16View.IndexDistance"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(_:offsetBy:limitedBy:)",
+              "declKind": "Func",
+              "usr": "s:FVSS9UTF16View5indexFTVS_5Index8offsetBySi9limitedByS0__GSqS0__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "String.UTF16View.Index?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexDistance",
+                  "printedName": "String.UTF16View.IndexDistance"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "distance",
+              "printedName": "distance(from:to:)",
+              "declKind": "Func",
+              "usr": "s:FVSS9UTF16View8distanceFT4fromVS_5Index2toS0__Si",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexDistance",
+                  "printedName": "String.UTF16View.IndexDistance"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF16View.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "description",
+              "printedName": "description",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg11descriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "debugDescription",
+              "printedName": "debugDescription",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg16debugDescriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS9UTF16View11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "String.UTF16View"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS9UTF16View8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexingIterator",
+                  "printedName": "IndexingIterator<String.UTF16View>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customMirror",
+              "printedName": "customMirror",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg12customMirrorVs6Mirror",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Mirror",
+                      "printedName": "Mirror"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customPlaygroundQuickLook",
+              "printedName": "customPlaygroundQuickLook",
+              "declKind": "Var",
+              "usr": "s:vVSS9UTF16View25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS9UTF16Viewg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf16",
+          "printedName": "utf16",
+          "declKind": "Var",
+          "usr": "s:vSS5utf16VSS9UTF16View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16View",
+              "printedName": "String.UTF16View"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg5utf16VSS9UTF16View",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "String.UTF16View"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSs5utf16VSS9UTF16View",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF16View",
+                  "printedName": "String.UTF16View"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFVSS9UTF16ViewGSqSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "String?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UTF16View",
+              "printedName": "String.UTF16View"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UTF16Index",
+          "printedName": "UTF16Index",
+          "declKind": "TypeAlias",
+          "usr": "s:SS10UTF16Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.UTF16View.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "UTF8View",
+          "printedName": "UTF8View",
+          "declKind": "Struct",
+          "usr": "s:VSS8UTF8View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeDecl",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "Struct",
+              "usr": "s:VVSS8UTF8View5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeAlias",
+                  "name": "Buffer",
+                  "printedName": "Buffer",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS8UTF8View5Index6Buffer",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "_UTF8Chunk",
+                      "printedName": "_StringCore._UTF8Chunk"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS8UTF8View5IndexcFTVVSS9UTF16View5Index6withinS__GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UTF8View.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF8View.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16Index",
+                      "printedName": "String.UTF16Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS8UTF8View5IndexcFTVVSS17UnicodeScalarView5Index6withinS__S0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarIndex",
+                      "printedName": "String.UnicodeScalarIndex"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS8UTF8View5IndexcFTVVSS13CharacterView5Index6withinS__S0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS8UTF8View5Index12samePositionFT2inVSS9UTF16View_GSqVS1_5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UTF16View.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.UTF16View.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS8UTF8View5Index12samePositionFT2inVSS17UnicodeScalarView_GSqVS1_5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UnicodeScalarIndex?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalarIndex",
+                          "printedName": "String.UnicodeScalarIndex"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS8UTF8View5Index12samePositionFT2inSS_GSqVVSS13CharacterView5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS8UTF8View13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View10startIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF8View.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg10startIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View8endIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF8View.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg8endIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(after:)",
+              "declKind": "Func",
+              "usr": "s:FVSS8UTF8View5indexFT5afterVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF8View.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UTF8View.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "description",
+              "printedName": "description",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg11descriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "debugDescription",
+              "printedName": "debugDescription",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg16debugDescriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS8UTF8View11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF8View",
+                  "printedName": "String.UTF8View"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS8UTF8View8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexingIterator",
+                  "printedName": "IndexingIterator<String.UTF8View>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS8UTF8View7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultIndices",
+                  "printedName": "DefaultIndices<String.UTF8View>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customMirror",
+              "printedName": "customMirror",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg12customMirrorVs6Mirror",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Mirror",
+                      "printedName": "Mirror"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customPlaygroundQuickLook",
+              "printedName": "customPlaygroundQuickLook",
+              "declKind": "Var",
+              "usr": "s:vVSS8UTF8View25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS8UTF8Viewg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf8",
+          "printedName": "utf8",
+          "declKind": "Var",
+          "usr": "s:vSS4utf8VSS8UTF8View",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UTF8View",
+              "printedName": "String.UTF8View"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg4utf8VSS8UTF8View",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF8View",
+                  "printedName": "String.UTF8View"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSs4utf8VSS8UTF8View",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UTF8View",
+                  "printedName": "String.UTF8View"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf8CString",
+          "printedName": "utf8CString",
+          "declKind": "Var",
+          "usr": "s:vSS11utf8CStringGVs15ContiguousArrayVs4Int8_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ContiguousArray",
+              "printedName": "ContiguousArray<CChar>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CChar",
+                  "printedName": "CChar"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg11utf8CStringGVs15ContiguousArrayVs4Int8_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ContiguousArray",
+                  "printedName": "ContiguousArray<CChar>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CChar",
+                      "printedName": "CChar"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFVSS8UTF8ViewGSqSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "String?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UTF8View",
+              "printedName": "String.UTF8View"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UTF8Index",
+          "printedName": "UTF8Index",
+          "declKind": "TypeAlias",
+          "usr": "s:SS9UTF8Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.UTF8View.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "CharacterView",
+          "printedName": "CharacterView",
+          "declKind": "Struct",
+          "usr": "s:VSS13CharacterView",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init(_:)",
+              "declKind": "Constructor",
+              "usr": "s:FVSS13CharacterViewcFSSS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "UnicodeScalarView",
+              "printedName": "UnicodeScalarView",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS13CharacterView17UnicodeScalarView",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.UnicodeScalarView"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "unicodeScalars",
+              "printedName": "unicodeScalars",
+              "declKind": "Var",
+              "usr": "s:vVSS13CharacterView14unicodeScalarsVSS17UnicodeScalarView",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.CharacterView.UnicodeScalarView"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS13CharacterViewg14unicodeScalarsVSS17UnicodeScalarView",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.CharacterView.UnicodeScalarView"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CharacterView",
+                      "printedName": "String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeDecl",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "Struct",
+              "usr": "s:VVSS13CharacterView5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "Var",
+                  "name": "customPlaygroundQuickLook",
+                  "printedName": "customPlaygroundQuickLook",
+                  "declKind": "Var",
+                  "usr": "s:vVVSS13CharacterView5Index25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "Getter",
+                      "name": "_",
+                      "printedName": "_()",
+                      "declKind": "Func",
+                      "usr": "s:FVVSS13CharacterView5Indexg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+                      "location": "",
+                      "moduleName": "Swift",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "PlaygroundQuickLook",
+                          "printedName": "PlaygroundQuickLook"
+                        },
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.CharacterView.Index"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS13CharacterView5IndexcFTVVSS17UnicodeScalarView5Index6withinSS_GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarIndex",
+                      "printedName": "String.UnicodeScalarIndex"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS13CharacterView5IndexcFTVVSS9UTF16View5Index6withinSS_GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16Index",
+                      "printedName": "String.UTF16Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS13CharacterView5IndexcFTVVSS8UTF8View5Index6withinSS_GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8Index",
+                      "printedName": "String.UTF8Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS13CharacterView5Index12samePositionFT2inVSS8UTF8View_VS1_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS13CharacterView5Index12samePositionFT2inVSS9UTF16View_VS1_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS13CharacterView5Index12samePositionFT2inVSS17UnicodeScalarView_VS1_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UnicodeScalarView.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS13CharacterView13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS13CharacterView10startIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS13CharacterViewg10startIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.CharacterView.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CharacterView",
+                      "printedName": "String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS13CharacterView8endIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS13CharacterViewg8endIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.CharacterView.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CharacterView",
+                      "printedName": "String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(after:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView5indexFT5afterVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(before:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView5indexFT6beforeVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.CharacterView.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS13CharacterView11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS13CharacterView8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexingIterator",
+                  "printedName": "IndexingIterator<String.CharacterView>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CharacterView",
+                      "printedName": "String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS13CharacterView7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<String.CharacterView>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "CharacterView",
+                      "printedName": "String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init()",
+              "declKind": "Constructor",
+              "usr": "s:FVSS13CharacterViewcFT_S_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "replaceSubrange",
+              "printedName": "replaceSubrange(_:with:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView15replaceSubrangeuRxs10CollectionWx8Iterator7Element_zVs9CharacterrFTGVs5RangeVS_5Index_4withx_T_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<String.CharacterView.Index>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.CharacterView.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "C",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "reserveCapacity",
+              "printedName": "reserveCapacity(_:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView15reserveCapacityFSiT_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "append",
+              "printedName": "append(_:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView6appendFVs9CharacterT_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Character",
+                  "printedName": "Character"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "append",
+              "printedName": "append(contentsOf:)",
+              "declKind": "Func",
+              "usr": "s:FVSS13CharacterView6appenduRxs8SequenceWx8Iterator7Element_zVs9CharacterrFT10contentsOfx_T_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "S",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init(_:)",
+              "declKind": "Constructor",
+              "usr": "s:FVSS13CharacterViewcuRxs8SequenceWx8Iterator7Element_zVs9CharacterrFxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "S",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "characters",
+          "printedName": "characters",
+          "declKind": "Var",
+          "usr": "s:vSS10charactersVSS13CharacterView",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CharacterView",
+              "printedName": "String.CharacterView"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg10charactersVSS13CharacterView",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSs10charactersVSS13CharacterView",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "CharacterView",
+                  "printedName": "String.CharacterView"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withMutableCharacters",
+          "printedName": "withMutableCharacters(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS21withMutableCharactersurFFRVSS13CharacterViewxx",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(inout String.CharacterView) -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(inout String.CharacterView)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout String.CharacterView"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFVSS13CharacterViewSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "CharacterView",
+              "printedName": "String.CharacterView"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFVs9CharacterSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(cString:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT7cStringGSPVs4Int8__SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<CChar>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CChar",
+                  "printedName": "CChar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(cString:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT7cStringGSPVs5UInt8__SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<UInt8>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(validatingUTF8:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT14validatingUTF8GSPVs4Int8__GSqSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "String?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<CChar>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "CChar",
+                  "printedName": "CChar"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "decodeCString",
+          "printedName": "decodeCString(_:as:repairingInvalidCodeUnits:)",
+          "declKind": "Func",
+          "usr": "s:ZFSS13decodeCStringuRxs12UnicodeCodecrFTGSqGSPwx8CodeUnit__2asMx25repairingInvalidCodeUnitsSb_GSqT6resultSS11repairsMadeSb__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(result: String, repairsMade: Bool)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(result: String, repairsMade: Bool)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Bool",
+                      "printedName": "Bool"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<Encoding.CodeUnit>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<Encoding.CodeUnit>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Encoding.CodeUnit"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "Encoding.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Encoding",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeCodec",
+                      "printedName": "UnicodeCodec"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withCString",
+          "printedName": "withCString(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS11withCStringurFzFzGSPVs4Int8_xx",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Result"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafePointer<Int8>) throws -> Result",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Result"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafePointer<Int8>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafePointer",
+                      "printedName": "UnsafePointer<Int8>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Int8",
+                          "printedName": "Int8"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSS12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSS25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS5writeFSST_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(to:)",
+          "declKind": "Func",
+          "usr": "s:FSS5writeuRxs16TextOutputStreamrFT2toRx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Target"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalarLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT20unicodeScalarLiteralSS_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UnicodeScalarLiteralType",
+          "printedName": "UnicodeScalarLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:SS24UnicodeScalarLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(extendedGraphemeClusterLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT30extendedGraphemeClusterLiteralSS_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "ExtendedGraphemeClusterLiteralType",
+          "printedName": "ExtendedGraphemeClusterLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:SS34ExtendedGraphemeClusterLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT13stringLiteralSS_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "StringLiteralType",
+          "printedName": "StringLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:SS17StringLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSS16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS6appendFSST_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSS9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "lowercased",
+          "printedName": "lowercased()",
+          "declKind": "Func",
+          "usr": "s:FSS10lowercasedFT_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "uppercased",
+          "printedName": "uppercased()",
+          "declKind": "Func",
+          "usr": "s:FSS10uppercasedFT_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs25LosslessStringConvertiblerFxSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "LosslessStringConvertible",
+                  "printedName": "LosslessStringConvertible"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSS11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFSSGSqSS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "String?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolation:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFt19stringInterpolationGSaSS__SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[String]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScurFT26stringInterpolationSegmentx_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSS_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs9Character_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSc_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSb_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSf_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float32",
+              "printedName": "Float32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSd_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float64",
+              "printedName": "Float64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs5UInt8_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs4Int8_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs6UInt16_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs5Int16_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs6UInt32_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs5Int32_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs6UInt64_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentVs5Int64_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSu_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringInterpolationSegment:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT26stringInterpolationSegmentSi_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFT9repeatingSS5countSi_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vSS7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "hasPrefix",
+          "printedName": "hasPrefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS9hasPrefixFSSSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "hasSuffix",
+          "printedName": "hasSuffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS9hasSuffixFSSSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs14_SignedIntegerrFxSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_SignedInteger",
+                  "printedName": "_SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs15UnsignedIntegerrFxSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:uppercase:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs14_SignedIntegerrFTx5radixSi9uppercaseSb_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "_SignedInteger",
+                  "printedName": "_SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:uppercase:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs15UnsignedIntegerrFTx5radixSi9uppercaseSb_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsignedInteger",
+                  "printedName": "UnsignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:SS5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.CharacterView.Index"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:SS13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "String.CharacterView.IndexDistance"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vSS10startIndexVVSS13CharacterView5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg10startIndexVVSS13CharacterView5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vSS8endIndexVVSS13CharacterView5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg8endIndexVVSS13CharacterView5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FSS5indexFT5afterVVSS13CharacterView5Index_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FSS5indexFT6beforeVVSS13CharacterView5Index_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FSS5indexFTVVSS13CharacterView5Index8offsetBySi_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "String.IndexDistance"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FSS5indexFTVVSS13CharacterView5Index8offsetBySi9limitedByS0__GSqS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "String.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "String.IndexDistance"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FSS8distanceFT4fromVVSS13CharacterView5Index2toS0__Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexDistance",
+              "printedName": "String.IndexDistance"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScuRxs8SequenceWx8Iterator7Element_zVs9CharacterrFxSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS15reserveCapacityFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS6appendFVs9CharacterT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FSS6appenduRxs8SequenceWx8Iterator7Element_zVs9CharacterrFT10contentsOfx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FSS15replaceSubrangeuRxs10CollectionWx8Iterator7Element_zVs9CharacterrFTGVs5RangeVVSS13CharacterView5Index_4withx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FSS15replaceSubrangeFTGVs5RangeVVSS13CharacterView5Index_4withSS_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FSS15replaceSubrangeuRxs10CollectionWx8Iterator7Element_zVs9CharacterrFTGVs11ClosedRangeVVSS13CharacterView5Index_4withx_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FSS15replaceSubrangeFTGVs11ClosedRangeVVSS13CharacterView5Index_4withSS_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FSS6insertFTVs9Character2atVVSS13CharacterView5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(contentsOf:at:)",
+          "declKind": "Func",
+          "usr": "s:FSS6insertuRxs10CollectionWx8Iterator7Element_zVs9CharacterrFT10contentsOfx2atVVSS13CharacterView5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FSS6removeFT2atVVSS13CharacterView5Index_Vs9Character",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Character",
+              "printedName": "Character"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS14removeSubrangeFGVs5RangeVVSS13CharacterView5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeSubrange",
+          "printedName": "removeSubrange(_:)",
+          "declKind": "Func",
+          "usr": "s:FSS14removeSubrangeFGVs11ClosedRangeVVSS13CharacterView5Index_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "ClosedRange",
+              "printedName": "ClosedRange<String.Index>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.Index"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FSS9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "TypeDecl",
+          "name": "UnicodeScalarView",
+          "printedName": "UnicodeScalarView",
+          "declKind": "Struct",
+          "usr": "s:VSS17UnicodeScalarView",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeDecl",
+              "name": "Index",
+              "printedName": "Index",
+              "declKind": "Struct",
+              "usr": "s:VVSS17UnicodeScalarView5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS17UnicodeScalarView5IndexcFTVVSS9UTF16View5Index6withinS__GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UnicodeScalarIndex?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalarIndex",
+                          "printedName": "String.UnicodeScalarIndex"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16Index",
+                      "printedName": "String.UTF16Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS17UnicodeScalarView5IndexcFTVVSS8UTF8View5Index6withinS__GSqS0__",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.UnicodeScalarIndex?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalarIndex",
+                          "printedName": "String.UnicodeScalarIndex"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8Index",
+                      "printedName": "String.UTF8Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Constructor",
+                  "name": "init",
+                  "printedName": "init(_:within:)",
+                  "declKind": "Constructor",
+                  "usr": "s:FVVSS17UnicodeScalarView5IndexcFTVVSS13CharacterView5Index6withinS__S0_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarIndex",
+                      "printedName": "String.UnicodeScalarIndex"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS17UnicodeScalarView5Index12samePositionFT2inVSS8UTF8View_VS1_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF8View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF8View",
+                      "printedName": "String.UTF8View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS17UnicodeScalarView5Index12samePositionFT2inVSS9UTF16View_VS1_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UTF16View.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UTF16View",
+                      "printedName": "String.UTF16View"
+                    }
+                  ]
+                },
+                {
+                  "kind": "Function",
+                  "name": "samePosition",
+                  "printedName": "samePosition(in:)",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS17UnicodeScalarView5Index12samePositionFT2inSS_GSqVVSS13CharacterView5Index_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "String.Index?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Index",
+                          "printedName": "String.Index"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "startIndex",
+              "printedName": "startIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView10startIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg10startIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UnicodeScalarView.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "endIndex",
+              "printedName": "endIndex",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView8endIndexVS_5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg8endIndexVS_5Index",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UnicodeScalarView.Index"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(after:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView5indexFT5afterVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "index",
+              "printedName": "index(before:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView5indexFT6beforeVS_5Index_S0_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Index",
+                  "printedName": "String.UnicodeScalarView.Index"
+                }
+              ]
+            },
+            {
+              "kind": "TypeDecl",
+              "name": "Iterator",
+              "printedName": "Iterator",
+              "declKind": "Struct",
+              "usr": "s:VVSS17UnicodeScalarView8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "Function",
+                  "name": "next",
+                  "printedName": "next()",
+                  "declKind": "Func",
+                  "usr": "s:FVVSS17UnicodeScalarView8Iterator4nextFT_GSqSc_",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "mutating": true,
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Optional",
+                      "printedName": "UnicodeScalar?",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UnicodeScalar",
+                          "printedName": "UnicodeScalar"
+                        }
+                      ]
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeAlias",
+                  "name": "Element",
+                  "printedName": "Element",
+                  "declKind": "TypeAlias",
+                  "usr": "s:VVSS17UnicodeScalarView8Iterator7Element",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalar",
+                      "printedName": "UnicodeScalar"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "makeIterator",
+              "printedName": "makeIterator()",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView12makeIteratorFT_VS_8Iterator",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Iterator",
+                  "printedName": "String.UnicodeScalarView.Iterator"
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "description",
+              "printedName": "description",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg11descriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "debugDescription",
+              "printedName": "debugDescription",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg16debugDescriptionSS",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "String",
+                      "printedName": "String"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "SubSequence",
+              "printedName": "SubSequence",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS17UnicodeScalarView11SubSequence",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.UnicodeScalarView"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "IndexDistance",
+              "printedName": "IndexDistance",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS17UnicodeScalarView13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeAlias",
+              "name": "Indices",
+              "printedName": "Indices",
+              "declKind": "TypeAlias",
+              "usr": "s:VSS17UnicodeScalarView7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DefaultBidirectionalIndices",
+                  "printedName": "DefaultBidirectionalIndices<String.UnicodeScalarView>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Constructor",
+              "name": "init",
+              "printedName": "init()",
+              "declKind": "Constructor",
+              "usr": "s:FVSS17UnicodeScalarViewcFT_S_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.UnicodeScalarView"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "reserveCapacity",
+              "printedName": "reserveCapacity(_:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView15reserveCapacityFSiT_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "append",
+              "printedName": "append(_:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView6appendFScT_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "append",
+              "printedName": "append(contentsOf:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView6appenduRxs8SequenceWx8Iterator7Element_zScrFT10contentsOfx_T_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "S",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Function",
+              "name": "replaceSubrange",
+              "printedName": "replaceSubrange(_:with:)",
+              "declKind": "Func",
+              "usr": "s:FVSS17UnicodeScalarView15replaceSubrangeuRxs10CollectionWx8Iterator7Element_zScrFTGVs5RangeVS_5Index_4withx_T_",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Range",
+                  "printedName": "Range<String.UnicodeScalarView.Index>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Index",
+                      "printedName": "String.UnicodeScalarView.Index"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "C",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customMirror",
+              "printedName": "customMirror",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg12customMirrorVs6Mirror",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Mirror",
+                      "printedName": "Mirror"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "Var",
+              "name": "customPlaygroundQuickLook",
+              "printedName": "customPlaygroundQuickLook",
+              "declKind": "Var",
+              "usr": "s:vVSS17UnicodeScalarView25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "Getter",
+                  "name": "_",
+                  "printedName": "_()",
+                  "declKind": "Func",
+                  "usr": "s:FVSS17UnicodeScalarViewg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+                  "location": "",
+                  "moduleName": "Swift",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "PlaygroundQuickLook",
+                      "printedName": "PlaygroundQuickLook"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnicodeScalarView",
+                      "printedName": "String.UnicodeScalarView"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScFVSS17UnicodeScalarViewSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalarView",
+              "printedName": "String.UnicodeScalarView"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UnicodeScalarIndex",
+          "printedName": "UnicodeScalarIndex",
+          "declKind": "TypeAlias",
+          "usr": "s:SS18UnicodeScalarIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Index",
+              "printedName": "String.UnicodeScalarView.Index"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "unicodeScalars",
+          "printedName": "unicodeScalars",
+          "declKind": "Var",
+          "usr": "s:vSS14unicodeScalarsVSS17UnicodeScalarView",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalarView",
+              "printedName": "String.UnicodeScalarView"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSg14unicodeScalarsVSS17UnicodeScalarView",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.UnicodeScalarView"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                }
+              ]
+            },
+            {
+              "kind": "Setter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSSs14unicodeScalarsVSS17UnicodeScalarView",
+              "location": "",
+              "moduleName": "Swift",
+              "mutating": true,
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "()"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "InOut",
+                  "printedName": "inout String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalarView",
+                  "printedName": "String.UnicodeScalarView"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(describing:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScurFT10describingx_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Subject"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(reflecting:)",
+          "declKind": "Constructor",
+          "usr": "s:FSScurFT10reflectingx_SS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Subject"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "_DisallowMixedSignArithmetic",
+      "printedName": "_DisallowMixedSignArithmetic",
+      "declKind": "Protocol",
+      "usr": "s:Ps28_DisallowMixedSignArithmetic",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "CSignedChar",
+      "printedName": "CSignedChar",
+      "declKind": "TypeAlias",
+      "usr": "s:s11CSignedChar",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Int8",
+          "printedName": "Int8"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyObject",
+      "printedName": "AnyObject",
+      "declKind": "Protocol",
+      "usr": "s:Ps9AnyObject",
+      "location": "",
+      "moduleName": "Swift"
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AnyRandomAccessCollection",
+      "printedName": "AnyRandomAccessCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs25AnyRandomAccessCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25AnyRandomAccessCollectioncuRd__s22RandomAccessCollectionwd__7IndicesS0_wd__11SubSequenceS0_Wd__S2_7Indices_S0_xzWd__S2_8Iterator7Element_wd__5IndexzWd__S2_S3_S4_S5__wd__S1_zWd__S1_11SubSequence_wd__S2_zWd__S2_S7__Wd__8IteratorS5__zWd__S2_S4_S5__Wd__S1_S6__zWd__S2_S3_S4_S5__Wd__S2_S3__zWd__S2_S3_S7__Wd__S2_S6__zWd__S2_S3_S4_S5__Wd__S1_S4_S5__zWd__S2_S3_S4_S5__Wd__S2_S3_S6__zWd__S2_S3_S4_S5__rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessCollection",
+                  "printedName": "RandomAccessCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25AnyRandomAccessCollectioncFGS_x_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25AnyRandomAccessCollectioncFGVs13AnyCollectionx_GSqGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyRandomAccessCollection<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyCollection",
+              "printedName": "AnyCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs25AnyRandomAccessCollectioncFGVs26AnyBidirectionalCollectionx_GSqGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyRandomAccessCollection<Element>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyBidirectionalCollection",
+              "printedName": "AnyBidirectionalCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25AnyRandomAccessCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25AnyRandomAccessCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection10startIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong10startIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection8endIndexVs8AnyIndex",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong8endIndexVs8AnyIndex",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection5indexFT5afterVs8AnyIndex_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection9formIndexFT5afterRVs8AnyIndex_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection5indexFTVs8AnyIndex8offsetByVs5Int64_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection5indexFTVs8AnyIndex8offsetByVs5Int649limitedByS0__GSqS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AnyIndex?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyIndex",
+                  "printedName": "AnyIndex"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int64_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection9formIndexFTRVs8AnyIndex8offsetByVs5Int649limitedByS0__Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection8distanceFT4fromVs8AnyIndex2toS0__Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection5countVs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong5countVs5Int64",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IntMax",
+                  "printedName": "IntMax"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection5firstGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong5firstGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection5indexFT6beforeVs8AnyIndex_S0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIndex",
+              "printedName": "AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection9formIndexFT6beforeRVs8AnyIndex_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout AnyIndex"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection4lastGSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong4lastGSqx_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25AnyRandomAccessCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25AnyRandomAccessCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DefaultRandomAccessIndices",
+              "printedName": "DefaultRandomAccessIndices<AnyRandomAccessCollection<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs25AnyRandomAccessCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection12makeIteratorFT_GVs11AnyIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyIterator",
+              "printedName": "AnyIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs25AnyRandomAccessCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs25AnyRandomAccessCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "map",
+          "printedName": "map(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection3mapurFzFzxqd__GSaqd___",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[T]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> T",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "filter",
+          "printedName": "filter(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection6filterFzFzxSbGSax_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "forEach",
+          "printedName": "forEach(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection7forEachFzFzxT_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Void",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Void",
+                  "printedName": "Void"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropFirst",
+          "printedName": "dropFirst(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection9dropFirstFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "dropLast",
+          "printedName": "dropLast(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection8dropLastFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "prefix",
+          "printedName": "prefix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection6prefixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "suffix",
+          "printedName": "suffix(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection6suffixFSiGS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyRandomAccessCollection",
+              "printedName": "AnyRandomAccessCollection<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "split",
+          "printedName": "split(maxSplits:omittingEmptySubsequences:whereSeparator:)",
+          "declKind": "Func",
+          "usr": "s:FVs25AnyRandomAccessCollection5splitFzT9maxSplitsSi25omittingEmptySubsequencesSb14whereSeparatorFzxSb_GSaGS_x__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[AnyRandomAccessCollection<Element>]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyRandomAccessCollection",
+                  "printedName": "AnyRandomAccessCollection<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(Element) throws -> Bool",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(Element)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UnsafeRawPointer",
+      "printedName": "UnsafeRawPointer",
+      "declKind": "Struct",
+      "usr": "s:SV",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFSVSV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFGSqSV_GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFVs13OpaquePointerSV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "OpaquePointer",
+              "printedName": "OpaquePointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFGSqVs13OpaquePointer_GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "OpaquePointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "OpaquePointer",
+                  "printedName": "OpaquePointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFT10bitPatternSi_GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFT10bitPatternSu_GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGSPx_SV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGSqGSPx__GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFSvSV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutableRawPointer",
+              "printedName": "UnsafeMutableRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcFGSqSv_GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutableRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutableRawPointer",
+                  "printedName": "UnsafeMutableRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGSpx_SV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeMutablePointer",
+              "printedName": "UnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGSqGSpx__GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeMutablePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeMutablePointer",
+                  "printedName": "UnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "deallocate",
+          "printedName": "deallocate(bytes:alignedTo:)",
+          "declKind": "Func",
+          "usr": "s:FSV10deallocateFT5bytesSi9alignedToSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "bindMemory",
+          "printedName": "bindMemory(to:capacity:)",
+          "declKind": "Func",
+          "usr": "s:FSV10bindMemoryurFT2toMx8capacitySi_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "assumingMemoryBound",
+          "printedName": "assumingMemoryBound(to:)",
+          "declKind": "Func",
+          "usr": "s:FSV19assumingMemoryBoundurFT2toMx_GSPx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "load",
+          "printedName": "load(fromByteOffset:as:)",
+          "declKind": "Func",
+          "usr": "s:FSV4loadurFT14fromByteOffsetSi2asMx_x",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Metatype",
+              "printedName": "T.Type",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSV9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSVg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(to:)",
+          "declKind": "Func",
+          "usr": "s:FSV8distanceFT2toSV_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "advanced",
+          "printedName": "advanced(by:)",
+          "declKind": "Func",
+          "usr": "s:FSV8advancedFT2bySi_SV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:SV6Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGVs33AutoreleasingUnsafeMutablePointerx_SV",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafeRawPointer",
+              "printedName": "UnsafeRawPointer"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "AutoreleasingUnsafeMutablePointer",
+              "printedName": "AutoreleasingUnsafeMutablePointer<T>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "T"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSVcurFGSqGVs33AutoreleasingUnsafeMutablePointerx__GSqSV_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UnsafeRawPointer?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "AutoreleasingUnsafeMutablePointer<T>?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AutoreleasingUnsafeMutablePointer",
+                  "printedName": "AutoreleasingUnsafeMutablePointer<T>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "T"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vSV16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSVg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSV12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSVg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "summary",
+          "printedName": "summary",
+          "declKind": "Var",
+          "usr": "s:vSV7summarySS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSVg7summarySS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSV25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSVg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafeRawPointer",
+                  "printedName": "UnsafeRawPointer"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "StrideToIterator",
+      "printedName": "StrideToIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs16StrideToIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs16StrideToIterator4nextFT_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs16StrideToIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Strideable",
+                  "printedName": "Strideable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "FloatLiteralConvertible",
+      "printedName": "FloatLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s23FloatLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByFloatLiteral",
+          "printedName": "ExpressibleByFloatLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "UnicodeScalarLiteralConvertible",
+      "printedName": "UnicodeScalarLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s31UnicodeScalarLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByUnicodeScalarLiteral",
+          "printedName": "ExpressibleByUnicodeScalarLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "StringInterpolationConvertible",
+      "printedName": "StringInterpolationConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s30StringInterpolationConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByStringInterpolation",
+          "printedName": "ExpressibleByStringInterpolation"
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "BooleanLiteralConvertible",
+      "printedName": "BooleanLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s25BooleanLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByBooleanLiteral",
+          "printedName": "ExpressibleByBooleanLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "TextOutputStreamable",
+      "printedName": "TextOutputStreamable",
+      "declKind": "Protocol",
+      "usr": "s:Ps20TextOutputStreamable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "write",
+          "printedName": "write(to:)",
+          "declKind": "Func",
+          "usr": "s:FPs20TextOutputStreamable5writeuRd__s16TextOutputStreamrFT2toRqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Target"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "DictionaryIterator",
+      "printedName": "DictionaryIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs18DictionaryIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs18DictionaryIterator4nextFT_GSqT3keyx5valueq___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "(key: Key, value: Value)?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Tuple",
+                  "printedName": "(key: Key, value: Value)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs18DictionaryIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(key: Key, value: Value)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Key",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Hashable",
+                      "printedName": "Hashable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Value"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs18DictionaryIterator12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs18DictionaryIteratorg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "DictionaryIterator",
+                  "printedName": "DictionaryIterator<Key, Value>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Key",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Hashable",
+                          "printedName": "Hashable"
+                        }
+                      ]
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Value"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "swift_class_getInstanceExtents",
+      "printedName": "swift_class_getInstanceExtents(_:)",
+      "declKind": "Func",
+      "usr": "s:Fs30swift_class_getInstanceExtentsFPMPs9AnyObject_T8negativeSu8positiveSu_",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Tuple",
+          "printedName": "(negative: UInt, positive: UInt)",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "AnyClass",
+          "printedName": "AnyClass"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyRandomAccessCollection",
+      "printedName": "LazyRandomAccessCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs26LazyRandomAccessCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessCollection",
+                  "printedName": "RandomAccessCollection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessCollection",
+                      "printedName": "RandomAccessCollection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyRandomAccessCollection",
+              "printedName": "LazyRandomAccessCollection<RandomAccessSlice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessSlice",
+                  "printedName": "RandomAccessSlice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "BidirectionalCollection",
+                  "printedName": "BidirectionalCollection"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "RandomAccessIndexable",
+                  "printedName": "RandomAccessIndexable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection12makeIteratorFT_wx8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs26LazyRandomAccessCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "BidirectionalCollection",
+                      "printedName": "BidirectionalCollection"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RandomAccessIndexable",
+                      "printedName": "RandomAccessIndexable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection5firstGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong5firstGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Base.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs26LazyRandomAccessCollection5indexFT6beforewx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "last",
+          "printedName": "last",
+          "declKind": "Var",
+          "usr": "s:vVs26LazyRandomAccessCollection4lastGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs26LazyRandomAccessCollectiong4lastGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Base.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyRandomAccessCollection",
+                  "printedName": "LazyRandomAccessCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "RandomAccessCollection",
+                          "printedName": "RandomAccessCollection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "AbsoluteValuable",
+      "printedName": "AbsoluteValuable",
+      "declKind": "Protocol",
+      "usr": "s:Ps16AbsoluteValuable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "abs",
+          "printedName": "abs(_:)",
+          "declKind": "Func",
+          "usr": "s:ZFPs16AbsoluteValuable3absFxx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DynamicSelf",
+              "printedName": "Self"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AbsoluteValuable",
+                  "printedName": "AbsoluteValuable"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "LazyCollection",
+      "printedName": "LazyCollection",
+      "declKind": "Struct",
+      "usr": "s:Vs14LazyCollection",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Elements",
+          "printedName": "Elements",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection8Elements",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "elements",
+          "printedName": "elements",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection8elementsx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Base"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong8elementsx",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Collection",
+                      "printedName": "Collection"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs14LazyCollection12makeIteratorFT_wx8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "underestimatedCount",
+          "printedName": "underestimatedCount",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection19underestimatedCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong19underestimatedCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection10startIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong10startIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection8endIndexwx5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Index"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong8endIndexwx5Index",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "indices",
+          "printedName": "indices",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection7indiceswx7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.Indices"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong7indiceswx7Indices",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Indices",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IndexableBase",
+                      "printedName": "IndexableBase"
+                    },
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Sequence",
+                      "printedName": "Sequence"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs14LazyCollection5indexFT5afterwx5Index_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isEmpty",
+          "printedName": "isEmpty",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection7isEmptySb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong7isEmptySb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection5countwx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Base.IndexDistance"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong5countwx13IndexDistance",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.IndexDistance",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "SignedInteger",
+                      "printedName": "SignedInteger"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "first",
+          "printedName": "first",
+          "declKind": "Var",
+          "usr": "s:vVs14LazyCollection5firstGSqWx8Iterator7Element__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "DependentMember",
+                  "printedName": "Base.Iterator.Element"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs14LazyCollectiong5firstGSqWx8Iterator7Element__",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Optional",
+                  "printedName": "Base.Iterator.Element?",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base.Iterator.Element"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "LazyCollection",
+                  "printedName": "LazyCollection<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs14LazyCollection5indexFTwx5Index8offsetBywx13IndexDistance_wxS0_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs14LazyCollection5indexFTwx5Index8offsetBywx13IndexDistance9limitedBywxS0__GSqwxS0__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Index?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Index",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Comparable",
+                      "printedName": "Comparable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs14LazyCollection8distanceFT4fromwx5Index2towxS0__wx13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Index",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Comparable",
+                  "printedName": "Comparable"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "LazyCollection",
+              "printedName": "LazyCollection<Slice<Base>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Slice",
+                  "printedName": "Slice<Base>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Substituted",
+                      "printedName": "Base",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Collection",
+                          "printedName": "Collection"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.IndexDistance",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "SignedInteger",
+                  "printedName": "SignedInteger"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Iterator",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IteratorProtocol",
+                  "printedName": "IteratorProtocol"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs14LazyCollection7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Indices",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "IndexableBase",
+                  "printedName": "IndexableBase"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "StrideTo",
+      "printedName": "StrideTo",
+      "declKind": "Struct",
+      "usr": "s:Vs8StrideTo",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "makeIterator",
+          "printedName": "makeIterator()",
+          "declKind": "Func",
+          "usr": "s:FVs8StrideTo12makeIteratorFT_GVs16StrideToIteratorx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StrideToIterator",
+              "printedName": "StrideToIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs8StrideTo12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs8StrideTog12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StrideTo",
+                  "printedName": "StrideTo<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Strideable",
+                          "printedName": "Strideable"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8StrideTo8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StrideToIterator",
+              "printedName": "StrideToIterator<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs8StrideTo11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Strideable",
+                      "printedName": "Strideable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "ArraySlice",
+      "printedName": "ArraySlice",
+      "declKind": "Struct",
+      "usr": "s:Vs10ArraySlice",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeAlias",
+          "name": "Index",
+          "printedName": "Index",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice5Index",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IndexingIterator",
+              "printedName": "IndexingIterator<ArraySlice<Element>>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "startIndex",
+          "printedName": "startIndex",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice10startIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg10startIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "endIndex",
+          "printedName": "endIndex",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice8endIndexSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg8endIndexSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice5indexFT5afterSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(after:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice9formIndexFT5afterRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice5indexFT6beforeSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "formIndex",
+          "printedName": "formIndex(before:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice9formIndexFT6beforeRSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "InOut",
+              "printedName": "inout Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice5indexFTSi8offsetBySi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "index",
+          "printedName": "index(_:offsetBy:limitedBy:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice5indexFTSi8offsetBySi9limitedBySi_GSqSi_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Int?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "distance",
+          "printedName": "distance(from:to:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice8distanceFT4fromSi2toSi_Si",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Indices",
+          "printedName": "Indices",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice7Indices",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "CountableRange",
+              "printedName": "CountableRange<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Substituted",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IndexDistance",
+          "printedName": "IndexDistance",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice13IndexDistance",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(arrayLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs10ArraySlicecFt12arrayLiteralGSax__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Array",
+              "printedName": "[Element]",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs10ArraySlice7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs10ArraySlicecFT_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs10ArraySlicecuRd__s8SequencexzWd__8Iterator7Element_rFqd__GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(repeating:count:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs10ArraySlicecFT9repeatingx5countSi_GS_x_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "ArraySlice",
+              "printedName": "ArraySlice<Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Element"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "count",
+          "printedName": "count",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice5countSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg5countSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "capacity",
+          "printedName": "capacity",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice8capacitySi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg8capacitySi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "reserveCapacity",
+          "printedName": "reserveCapacity(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice15reserveCapacityFSiT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice6appendFxT_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice6appenduRd__s8SequencexzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "S",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Sequence",
+                  "printedName": "Sequence"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "append",
+          "printedName": "append(contentsOf:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice6appenduRd__s10CollectionxzWd__8Iterator7Element_rFT10contentsOfqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "insert",
+          "printedName": "insert(_:at:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice6insertFTx2atSi_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remove",
+          "printedName": "remove(at:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice6removeFT2atSi_x",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Substituted",
+              "printedName": "Element"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "removeAll",
+          "printedName": "removeAll(keepingCapacity:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice9removeAllFT15keepingCapacitySb_T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs10ArraySlice16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs10ArraySliceg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "ArraySlice",
+                  "printedName": "ArraySlice<Element>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "Archetype",
+                      "printedName": "Element"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeBufferPointer",
+          "printedName": "withUnsafeBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice23withUnsafeBufferPointerurFzFzGSRx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeBufferPointer",
+                      "printedName": "UnsafeBufferPointer<Element>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "Substituted",
+                          "printedName": "Element"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUnsafeMutableBufferPointer",
+          "printedName": "withUnsafeMutableBufferPointer(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice30withUnsafeMutableBufferPointerurFzFzRGSrx_qd__qd__",
+          "location": "",
+          "moduleName": "Swift",
+          "throwing": true,
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(inout UnsafeMutableBufferPointer<Element>) throws -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(inout UnsafeMutableBufferPointer<Element>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "InOut",
+                      "printedName": "inout UnsafeMutableBufferPointer<Element>"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "replaceSubrange",
+          "printedName": "replaceSubrange(_:with:)",
+          "declKind": "Func",
+          "usr": "s:FVs10ArraySlice15replaceSubrangeuRd__s10CollectionxzWd__8Iterator7Element_rFTGVs5RangeSi_4withqd___T_",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Void",
+              "printedName": "()"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Range",
+              "printedName": "Range<Int>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "C",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Collection",
+                  "printedName": "Collection"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "StaticString",
+      "printedName": "StaticString",
+      "declKind": "Struct",
+      "usr": "s:Vs12StaticString",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Var",
+          "name": "utf8Start",
+          "printedName": "utf8Start",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString9utf8StartGSPVs5UInt8_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnsafePointer",
+              "printedName": "UnsafePointer<UInt8>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt8",
+                  "printedName": "UInt8"
+                }
+              ]
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg9utf8StartGSPVs5UInt8_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnsafePointer",
+                  "printedName": "UnsafePointer<UInt8>",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt8",
+                      "printedName": "UInt8"
+                    }
+                  ]
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "unicodeScalar",
+          "printedName": "unicodeScalar",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString13unicodeScalarSc",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UnicodeScalar",
+              "printedName": "UnicodeScalar"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg13unicodeScalarSc",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UnicodeScalar",
+                  "printedName": "UnicodeScalar"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "utf8CodeUnitCount",
+          "printedName": "utf8CodeUnitCount",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString17utf8CodeUnitCountSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg17utf8CodeUnitCountSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hasPointerRepresentation",
+          "printedName": "hasPointerRepresentation",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString24hasPointerRepresentationSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg24hasPointerRepresentationSb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "isASCII",
+          "printedName": "isASCII",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString7isASCIISb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg7isASCIISb",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "withUTF8Buffer",
+          "printedName": "withUTF8Buffer(_:)",
+          "declKind": "Func",
+          "usr": "s:FVs12StaticString14withUTF8BufferurFFGSRVs5UInt8_xx",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "R"
+            },
+            {
+              "kind": "TypeFunc",
+              "name": "Function",
+              "printedName": "(UnsafeBufferPointer<UInt8>) -> R",
+              "typeAttributes": [
+                "noescape"
+              ],
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "R"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Paren",
+                  "printedName": "(UnsafeBufferPointer<UInt8>)",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UnsafeBufferPointer",
+                      "printedName": "UnsafeBufferPointer<UInt8>",
+                      "children": [
+                        {
+                          "kind": "TypeNominal",
+                          "name": "UInt8",
+                          "printedName": "UInt8"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs12StaticStringcFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalar:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12StaticStringcFT13unicodeScalarBi32__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(unicodeScalarLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12StaticStringcFT20unicodeScalarLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(extendedGraphemeClusterLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12StaticStringcFT30extendedGraphemeClusterLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(stringLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs12StaticStringcFT13stringLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "debugDescription",
+          "printedName": "debugDescription",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString16debugDescriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg16debugDescriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "StringLiteralType",
+          "printedName": "StringLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12StaticString17StringLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "ExtendedGraphemeClusterLiteralType",
+          "printedName": "ExtendedGraphemeClusterLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12StaticString34ExtendedGraphemeClusterLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "UnicodeScalarLiteralType",
+          "printedName": "UnicodeScalarLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs12StaticString24UnicodeScalarLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "StaticString",
+              "printedName": "StaticString"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs12StaticString12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs12StaticStringg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "StaticString",
+                  "printedName": "StaticString"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "Function",
+      "name": "unsafeDowncast",
+      "printedName": "unsafeDowncast(_:to:)",
+      "declKind": "Func",
+      "usr": "s:Fs14unsafeDowncastuRxs9AnyObjectrFTPS__2toMx_x",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "Archetype",
+          "printedName": "T",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnyObject",
+              "printedName": "AnyObject"
+            }
+          ]
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "AnyObject",
+          "printedName": "AnyObject"
+        },
+        {
+          "kind": "TypeNominal",
+          "name": "Metatype",
+          "printedName": "T.Type",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "T",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "AnyObject",
+                  "printedName": "AnyObject"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeAlias",
+      "name": "ExtendedGraphemeClusterLiteralConvertible",
+      "printedName": "ExtendedGraphemeClusterLiteralConvertible",
+      "declKind": "TypeAlias",
+      "usr": "s:s41ExtendedGraphemeClusterLiteralConvertible",
+      "location": "",
+      "moduleName": "Swift",
+      "declAttributes": [
+        "deprecated"
+      ],
+      "children": [
+        {
+          "kind": "TypeNominal",
+          "name": "ExpressibleByExtendedGraphemeClusterLiteral",
+          "printedName": "ExpressibleByExtendedGraphemeClusterLiteral"
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "UInt16",
+      "printedName": "UInt16",
+      "declKind": "Struct",
+      "usr": "s:Vs6UInt16",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bigEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT9bigEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(littleEndian:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT12littleEndianS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(integerLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT14integerLiteralS__S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "bigEndian",
+          "printedName": "bigEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt169bigEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g9bigEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "littleEndian",
+          "printedName": "littleEndian",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt1612littleEndianS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g12littleEndianS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "byteSwapped",
+          "printedName": "byteSwapped",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt1611byteSwappedS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g11byteSwappedS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "max",
+          "printedName": "max",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt163maxS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt16g3maxS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt16",
+                      "printedName": "UInt16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "min",
+          "printedName": "min",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt163minS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt16g3minS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt16",
+                      "printedName": "UInt16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "IntegerLiteralType",
+          "printedName": "IntegerLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt1618IntegerLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Stride",
+          "printedName": "Stride",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs6UInt166Stride",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt169hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt1611descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "addWithOverflow",
+          "printedName": "addWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt1615addWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "subtractWithOverflow",
+          "printedName": "subtractWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt1620subtractWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "multiplyWithOverflow",
+          "printedName": "multiplyWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt1620multiplyWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "divideWithOverflow",
+          "printedName": "divideWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt1618divideWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "remainderWithOverflow",
+          "printedName": "remainderWithOverflow(_:_:)",
+          "declKind": "Func",
+          "usr": "s:ZFVs6UInt1621remainderWithOverflowFTS_S__TS_8overflowSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Tuple",
+              "printedName": "(UInt16, overflow: Bool)",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toUIntMax",
+          "printedName": "toUIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt169toUIntMaxFT_Vs6UInt64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UIntMax",
+              "printedName": "UIntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Function",
+          "name": "toIntMax",
+          "printedName": "toIntMax()",
+          "declKind": "Func",
+          "usr": "s:FVs6UInt168toIntMaxFT_Vs5Int64",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "IntMax",
+              "printedName": "IntMax"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs5UInt8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs5UInt8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt8",
+              "printedName": "UInt8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs4Int8S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs4Int8_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int8",
+              "printedName": "Int8"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFS_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyS__GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs5Int16S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs5Int16_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs6UInt32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs6UInt32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternVs6UInt32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt32",
+              "printedName": "UInt32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs5Int32S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs5Int32_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternVs5Int32_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int32",
+              "printedName": "Int32"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs6UInt64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs6UInt64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternVs6UInt64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt64",
+              "printedName": "UInt64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs5Int64S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlyVs5Int64_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternVs5Int64_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int64",
+              "printedName": "Int64"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFSuS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlySu_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternSu_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "UInt",
+              "printedName": "UInt"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFSiS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(exactly:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT7exactlySi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(truncatingBitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT20truncatingBitPatternSi_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(bitPattern:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFT10bitPatternVs5Int16_S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int16",
+              "printedName": "Int16"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "allZeros",
+          "printedName": "allZeros",
+          "declKind": "Var",
+          "usr": "s:ZvVs6UInt168allZerosS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:ZFVs6UInt16g8allZerosS_",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Metatype",
+                  "printedName": "UInt16.Type",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "UInt16",
+                      "printedName": "UInt16"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFSfS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float",
+              "printedName": "Float"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFSdS_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Double",
+              "printedName": "Double"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFVs7Float80S_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "UInt16",
+              "printedName": "UInt16"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Float80",
+              "printedName": "Float80"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:radix:)",
+          "declKind": "Constructor",
+          "usr": "s:FVs6UInt16cFTSS5radixSi_GSqS__",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "UInt16?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt1612customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vVs6UInt1625customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FVs6UInt16g25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "UInt16",
+                  "printedName": "UInt16"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "Bool",
+      "printedName": "Bool",
+      "declKind": "Struct",
+      "usr": "s:Sb",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init()",
+          "declKind": "Constructor",
+          "usr": "s:FSbcFT_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSbcFBi1_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Int1",
+              "printedName": "Int1"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSbcFSbSb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(booleanLiteral:)",
+          "declKind": "Constructor",
+          "usr": "s:FSbcFT14booleanLiteralSb_Sb",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "BooleanLiteralType",
+          "printedName": "BooleanLiteralType",
+          "declKind": "TypeAlias",
+          "usr": "s:Sb18BooleanLiteralType",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Bool",
+              "printedName": "Bool"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "description",
+          "printedName": "description",
+          "declKind": "Var",
+          "usr": "s:vSb11descriptionSS",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSbg11descriptionSS",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "String",
+                  "printedName": "String"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "hashValue",
+          "printedName": "hashValue",
+          "declKind": "Var",
+          "usr": "s:vSb9hashValueSi",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Int",
+              "printedName": "Int"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSbg9hashValueSi",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Int",
+                  "printedName": "Int"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(_:)",
+          "declKind": "Constructor",
+          "usr": "s:FSbcFSSGSqSb_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Bool?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "String",
+              "printedName": "String"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customMirror",
+          "printedName": "customMirror",
+          "declKind": "Var",
+          "usr": "s:vSb12customMirrorVs6Mirror",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Mirror",
+              "printedName": "Mirror"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSbg12customMirrorVs6Mirror",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Mirror",
+                  "printedName": "Mirror"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "customPlaygroundQuickLook",
+          "printedName": "customPlaygroundQuickLook",
+          "declKind": "Var",
+          "usr": "s:vSb25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "PlaygroundQuickLook",
+              "printedName": "PlaygroundQuickLook"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FSbg25customPlaygroundQuickLookOs19PlaygroundQuickLook",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "PlaygroundQuickLook",
+                  "printedName": "PlaygroundQuickLook"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Bool",
+                  "printedName": "Bool"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "RawRepresentable",
+      "printedName": "RawRepresentable",
+      "declKind": "Protocol",
+      "usr": "s:Ps16RawRepresentable",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Constructor",
+          "name": "init",
+          "printedName": "init(rawValue:)",
+          "declKind": "Constructor",
+          "usr": "s:FPs16RawRepresentablecFT8rawValuewx8RawValue_GSqx_",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Self?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RawRepresentable",
+                      "printedName": "RawRepresentable"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Self.RawValue"
+            }
+          ]
+        },
+        {
+          "kind": "Var",
+          "name": "rawValue",
+          "printedName": "rawValue",
+          "declKind": "Var",
+          "usr": "s:vPs16RawRepresentable8rawValuewx8RawValue",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "DependentMember",
+              "printedName": "Self.RawValue"
+            },
+            {
+              "kind": "Getter",
+              "name": "_",
+              "printedName": "_()",
+              "declKind": "Func",
+              "usr": "s:FPs16RawRepresentableg8rawValuewx8RawValue",
+              "location": "",
+              "moduleName": "Swift",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self.RawValue"
+                },
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Self",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "RawRepresentable",
+                      "printedName": "RawRepresentable"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "kind": "TypeDecl",
+      "name": "FlattenIterator",
+      "printedName": "FlattenIterator",
+      "declKind": "Struct",
+      "usr": "s:Vs15FlattenIterator",
+      "location": "",
+      "moduleName": "Swift",
+      "children": [
+        {
+          "kind": "Function",
+          "name": "next",
+          "printedName": "next()",
+          "declKind": "Func",
+          "usr": "s:FVs15FlattenIterator4nextFT_GSqWx7Element8IteratorS0___",
+          "location": "",
+          "moduleName": "Swift",
+          "mutating": true,
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Optional",
+              "printedName": "Base.Element.Iterator.Element?",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Element",
+          "printedName": "Element",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15FlattenIterator7Element",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "Archetype",
+              "printedName": "Base.Element.Iterator.Element"
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "Iterator",
+          "printedName": "Iterator",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15FlattenIterator8Iterator",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "FlattenIterator",
+              "printedName": "FlattenIterator<Base>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base",
+                  "children": [
+                    {
+                      "kind": "TypeNominal",
+                      "name": "IteratorProtocol",
+                      "printedName": "IteratorProtocol"
+                    }
+                  ]
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "kind": "TypeAlias",
+          "name": "SubSequence",
+          "printedName": "SubSequence",
+          "declKind": "TypeAlias",
+          "usr": "s:Vs15FlattenIterator11SubSequence",
+          "location": "",
+          "moduleName": "Swift",
+          "children": [
+            {
+              "kind": "TypeNominal",
+              "name": "AnySequence",
+              "printedName": "AnySequence<Base.Element.Iterator.Element>",
+              "children": [
+                {
+                  "kind": "TypeNominal",
+                  "name": "Archetype",
+                  "printedName": "Base.Element.Iterator.Element"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test/attr/Inputs/OldAndNew.swift b/test/attr/Inputs/OldAndNew.swift
new file mode 100644
index 0000000..f1387af
--- /dev/null
+++ b/test/attr/Inputs/OldAndNew.swift
@@ -0,0 +1,9 @@
+@available(swift, introduced: 3.0, obsoleted: 4.0)
+public func threeOnly() -> Int {
+  return 3
+}
+
+@available(swift, introduced: 4.0)
+public func fourOnly() -> Int {
+  return 4
+}
diff --git a/test/attr/attr_availability_swift.swift b/test/attr/attr_availability_swift.swift
new file mode 100644
index 0000000..3bab97c
--- /dev/null
+++ b/test/attr/attr_availability_swift.swift
@@ -0,0 +1,22 @@
+// RUN: %target-parse-verify-swift
+
+@available(swift 3.0)
+func foo() {
+}
+
+@available(swift 3.0, iOS 10, *) // expected-error {{version-availability must be specified alone}}
+func bar() {
+}
+
+func baz() {
+  if #available(swift 4) { // expected-error {{Swift language version checks not allowed in #available}}
+                           // expected-error @-1 {{condition required for target platform}}
+    print("yes")
+  } else {
+    print("no")
+  }
+}
+
+@available(swift, introduced: 3.0.1, obsoleted: 3.0.2, message: "tiny bug")
+func bug() {
+}
diff --git a/test/attr/attr_availability_swift_deserialize.swift b/test/attr/attr_availability_swift_deserialize.swift
new file mode 100644
index 0000000..40670f6
--- /dev/null
+++ b/test/attr/attr_availability_swift_deserialize.swift
@@ -0,0 +1,14 @@
+// RUN: rm -rf %t && mkdir -p %t
+// RUN: %target-swift-frontend -emit-module -emit-module-path %t/OldAndNew.swiftmodule -module-name OldAndNew %S/Inputs/OldAndNew.swift 
+// RUN: not %target-swift-frontend -parse -I %t -swift-version 3.0 %s 2>&1 | %FileCheck -check-prefix THREE %s
+// RUN: not %target-swift-frontend -parse -I %t -swift-version 4.0 %s 2>&1 | %FileCheck -check-prefix FOUR %s
+
+import OldAndNew
+
+// THREE: 'fourOnly()' is unavailable
+// THREE: 'fourOnly()' was introduced in Swift 4.0
+let _ = fourOnly()
+
+// FOUR: 'threeOnly()' is unavailable
+// FOUR: 'threeOnly()' was obsoleted in Swift 4.0
+let _ = threeOnly()
diff --git a/test/attr/attr_availability_swift_v3.swift b/test/attr/attr_availability_swift_v3.swift
new file mode 100644
index 0000000..01cf5da
--- /dev/null
+++ b/test/attr/attr_availability_swift_v3.swift
@@ -0,0 +1,61 @@
+// RUN: %target-parse-verify-swift -swift-version 3 %s
+
+@available(swift 3)
+func swiftShortThree() {}
+
+@available(swift 3.0)
+func swiftShortThreePointOh() {}
+
+@available(swift, introduced: 3.0)
+func swiftThreePointOh() {}
+
+@available(swift, introduced: 3.0, obsoleted: 4.0)
+func swiftThreePointOhOnly() {}
+
+@available(swift, deprecated: 3.0)
+func swiftDeprecatedThreePointOh() {}
+
+@available(swift, obsoleted: 3.0)
+func swiftObsoletedThreePointOh() {} // expected-note {{was obsoleted in Swift 3.0}}
+
+@available(swift, introduced: 3, obsoleted: 4.0)
+class SwiftThreeOnly {}
+
+@available(swift 4)
+func swiftShortFour() {} // expected-note {{was introduced in Swift 4}}
+
+@available(swift 4.0)
+func swiftShortFourPointOh() {} // expected-note {{was introduced in Swift 4.0}}
+
+@available(swift, introduced: 4)
+func swiftFour() {} // expected-note {{was introduced in Swift 4}}
+
+@available(swift, introduced: 4.0)
+func swiftFourPointOh() {} // expected-note {{was introduced in Swift 4.0}}
+
+@available(swift, introduced: 4.0, message: "uses abc")
+func swiftFourPointOhWithMessage() {} // expected-note {{was introduced in Swift 4.0}}
+
+@available(swift 4)
+class SwiftShortFour {} // expected-note {{was introduced in Swift 4}}
+
+@available(swift, introduced: 4, message: "uses pqr")
+class SwiftFourWithMessage {} // expected-note {{was introduced in Swift 4}}
+
+
+swiftShortThree()
+swiftShortThreePointOh()
+swiftThreePointOh()
+swiftThreePointOhOnly()
+swiftDeprecatedThreePointOh() // expected-warning {{is deprecated}}
+swiftObsoletedThreePointOh() // expected-error {{is unavailable}}
+let a : SwiftThreeOnly
+
+
+swiftShortFour() // expected-error {{is unavailable}}
+swiftShortFourPointOh() // expected-error {{is unavailable}}
+swiftFour() // expected-error {{is unavailable}}
+swiftFourPointOh() // expected-error {{is unavailable}}
+swiftFourPointOhWithMessage() // expected-error {{is unavailable: uses abc}}
+let aa : SwiftShortFour // expected-error {{is unavailable}}
+let bb : SwiftFourWithMessage // expected-error {{is unavailable: uses pqr}}
diff --git a/test/attr/attr_availability_swift_v4.swift b/test/attr/attr_availability_swift_v4.swift
new file mode 100644
index 0000000..0a64343
--- /dev/null
+++ b/test/attr/attr_availability_swift_v4.swift
@@ -0,0 +1,58 @@
+// RUN: %target-parse-verify-swift -swift-version 4 %s
+
+@available(swift 3)
+func swiftShortThree() {}
+
+@available(swift 3.0)
+func swiftShortThreePointOh() {}
+
+@available(swift, introduced: 3.0)
+func swiftThreePointOh() {}
+
+@available(swift, introduced: 3.0, obsoleted: 4.0)
+func swiftThreePointOhOnly() {} // expected-note {{was obsoleted in Swift 4.0}}
+
+@available(swift, deprecated: 3.0)
+func swiftDeprecatedThreePointOh() {}
+
+@available(swift, obsoleted: 3.0)
+func swiftObsoletedThreePointOh() {} // expected-note {{was obsoleted in Swift 3.0}}
+
+@available(swift, introduced: 3.0, obsoleted: 4.0)
+class SwiftThreePointOhOnly {} // expected-note {{was obsoleted in Swift 4.0}}
+
+@available(swift, introduced: 3, obsoleted: 4, message: "uses abc")
+class SwiftThreeOnlyWithMessage {} // expected-note {{was obsoleted in Swift 4}}
+
+
+@available(swift 4)
+func swiftShortFour() {}
+
+@available(swift 4.0)
+func swiftShortFourPointOh() {}
+
+@available(swift, introduced: 4)
+func swiftFour() {}
+
+@available(swift, introduced: 4.0)
+func swiftFourPointOh() {}
+
+@available(swift 4)
+class SwiftShortFour {}
+
+
+swiftShortThree()
+swiftShortThreePointOh()
+swiftThreePointOh()
+swiftThreePointOhOnly() // expected-error {{is unavailable}}
+swiftDeprecatedThreePointOh() // expected-warning {{is deprecated}}
+swiftObsoletedThreePointOh() // expected-error {{is unavailable}}
+let a : SwiftThreePointOhOnly // expected-error {{is unavailable}}
+let b : SwiftThreeOnlyWithMessage // expected-error {{is unavailable: uses abc}}
+
+
+swiftShortFour()
+swiftShortFourPointOh()
+swiftFour()
+swiftFourPointOh()
+let aa : SwiftShortFour
diff --git a/test/attr/attr_escaping.swift b/test/attr/attr_escaping.swift
index 9d9a679..ae261ef 100644
--- a/test/attr/attr_escaping.swift
+++ b/test/attr/attr_escaping.swift
@@ -1,4 +1,4 @@
-// RUN: %target-parse-verify-swift
+// RUN: %target-parse-verify-swift -swift-version 4
 
 @escaping var fn : () -> Int = { 4 }  // expected-error {{attribute can only be applied to types, not declarations}}
 func paramDeclEscaping(@escaping fn: (Int) -> Void) {} // expected-error {{attribute can only be applied to types, not declarations}}
@@ -140,6 +140,8 @@
   }
 }
 
+func takesVarargsOfFunctionsExplicitEscaping(fns: @escaping () -> ()...) {} // expected-error{{@escaping attribute may only be used in function parameter position}}
+
 func takesNoEscapeFunction(fn: () -> ()) { // expected-note {{parameter 'fn' is implicitly non-escaping}}
   takesVarargsOfFunctions(fns: fn) // expected-error {{passing non-escaping parameter 'fn' to function expecting an @escaping closure}}
 }
diff --git a/test/decl/class/circular_inheritance.swift b/test/decl/class/circular_inheritance.swift
index 326d6ab..819557f 100644
--- a/test/decl/class/circular_inheritance.swift
+++ b/test/decl/class/circular_inheritance.swift
@@ -19,7 +19,7 @@
   class Hand {}
 }
 
-class Right : Left.Hand { // expected-error {{'Hand' is not a member type of 'Left'}}
+class Right : Left.Hand { // expected-error {{class 'Hand' is not a member type of 'Left'}}
   class Hand {}
 }
 
diff --git a/test/decl/func/functions.swift b/test/decl/func/functions.swift
index 6478fe4..62d9592 100644
--- a/test/decl/func/functions.swift
+++ b/test/decl/func/functions.swift
@@ -82,7 +82,7 @@
 
 func parseError4(_ a: , b: ) {} // expected-error 2{{expected parameter type following ':'}}
 
-func parseError5(_ a: b: ) {} // expected-error {{use of undeclared type 'b'}}  expected-error 2 {{expected ',' separator}} {{24-24=,}} {{24-24=,}} expected-error {{expected parameter name followed by ':'}}
+func parseError5(_ a: b: ) {} // expected-error {{use of undeclared type 'b'}}  expected-error {{expected ',' separator}} {{24-24=,}} expected-error {{expected parameter name followed by ':'}}
 
 func parseError6(_ a: unknown_type, b: ) {} // expected-error {{use of undeclared type 'unknown_type'}}  expected-error {{expected parameter type following ':'}}
 
@@ -90,7 +90,7 @@
 
 public func foo(_ a: Bool = true) -> (b: Bar, c: Bar) {} // expected-error {{use of undeclared type 'Bar'}}
 
-func parenPatternInArg((a): Int) -> Int { // expected-error {{expected parameter name followed by ':'}} expected-error {{expected ',' separator}}
+func parenPatternInArg((a): Int) -> Int { // expected-error {{expected parameter name followed by ':'}}
   return a  // expected-error {{use of unresolved identifier 'a'}}
 }
 parenPatternInArg(0)  // expected-error {{argument passed to call that takes no arguments}}
diff --git a/test/decl/func/operator.swift b/test/decl/func/operator.swift
index eb155db..f150392 100644
--- a/test/decl/func/operator.swift
+++ b/test/decl/func/operator.swift
@@ -148,8 +148,8 @@
 infix prefix func +-+(x: Int, y: Int) {} // expected-error {{'infix' modifier is not required or allowed on func declarations}} {{1-7=}} expected-error{{'prefix' contradicts previous modifier 'infix'}} {{7-14=}}
 
 // Don't allow one to define a postfix '!'; it's built into the
-// language.
-postfix operator!  // expected-error {{cannot declare a custom postfix '!' operator}}
+// language. Also illegal to have any postfix operator starting with '!'.
+postfix operator !  // expected-error {{cannot declare a custom postfix '!' operator}} expected-error {{expected operator name in operator declaration}}
 prefix operator &  // expected-error {{cannot declare a custom prefix '&' operator}}
 
 // <rdar://problem/14607026> Restrict use of '<' and '>' as prefix/postfix operator names
diff --git a/test/decl/var/static_var.swift b/test/decl/var/static_var.swift
index 154c41f..2739bb7 100644
--- a/test/decl/var/static_var.swift
+++ b/test/decl/var/static_var.swift
@@ -256,11 +256,11 @@
 extension ProtoAdopter : ProtosEvilTwin {}
 
 // rdar://18990358
-public struct Foo { // expected-note {{in declaration of 'Foo'}}
+public struct Foo { // expected-note {{to match this opening '{'}}}
   public static let S { a // expected-error{{computed property must have an explicit type}}
     // expected-error@-1{{type annotation missing in pattern}}
     // expected-error@-2{{'let' declarations cannot be computed properties}}
     // expected-error@-3{{use of unresolved identifier 'a'}}
 }
 
-// expected-error@+1 {{expected declaration}}
+// expected-error@+1 {{expected '}' in struct}}
diff --git a/test/decl/var/variables.swift b/test/decl/var/variables.swift
index 61b11e3..4ba9d9f 100644
--- a/test/decl/var/variables.swift
+++ b/test/decl/var/variables.swift
@@ -8,8 +8,8 @@
 var t9, t10 = 20 // expected-error {{type annotation missing in pattern}}
 var t11, t12 : Int = 20 // expected-error {{type annotation missing in pattern}}
 var t13 = 2.0, t14 : Int
-var (x = 123, // expected-error 2 {{expected ',' separator}} {{7-7=,}} {{7-7=,}} expected-error {{expected pattern}}
-     y = 456) : (Int,Int) // expected-error 2 {{expected ',' separator}} {{7-7=,}} {{7-7=,}} expected-error {{expected pattern}}
+var (x = 123, // expected-error {{expected ',' separator}} {{7-7=,}} expected-error {{expected pattern}}
+     y = 456) : (Int,Int)
 var bfx : Int, bfy : Int
 
 _ = 10
diff --git a/test/expr/cast/array_downcast_Foundation.swift b/test/expr/cast/array_downcast_Foundation.swift
index 11ce8e5..d2621c4 100644
--- a/test/expr/cast/array_downcast_Foundation.swift
+++ b/test/expr/cast/array_downcast_Foundation.swift
@@ -58,3 +58,11 @@
   return obj as? [String]?
 }
 
+// Do not crash examining the casted-to (or tested) type if it is
+// invalid (null or error_type).
+class rdar28583595 : NSObject {
+  public func test(i: Int) {
+    if i is Array {} // expected-error {{generic parameter 'Element' could not be inferred}}
+    // expected-note@-1 {{explicitly specify the generic arguments to fix this issue}}
+  }
+}
diff --git a/test/expr/expressions.swift b/test/expr/expressions.swift
index 697efe0..4fbffbb 100644
--- a/test/expr/expressions.swift
+++ b/test/expr/expressions.swift
@@ -456,11 +456,11 @@
     "something else")"
   // expected-error @-2 {{unterminated string literal}} expected-error @-1 {{unterminated string literal}}
 
-  // FIXME: bad diagnostics.
-  // expected-warning @+1 {{initialization of variable 'x2' was never used; consider replacing with assignment to '_' or removing it}}
-  /* expected-error {{unterminated string literal}} expected-error {{expected ',' separator}} expected-error {{expected ',' separator}} expected-note {{to match this opening '('}}  */ var x2 : () = ("hello" + "
-  ; // expected-error {{expected expression in list of expressions}}
-} // expected-error {{expected ')' in expression list}}
+  // expected-warning @+2 {{initialization of variable 'x2' was never used; consider replacing with assignment to '_' or removing it}}
+  // expected-error @+1 {{unterminated string literal}}
+  var x2 : () = ("hello" + "
+  ;
+}
 
 func testSingleQuoteStringLiterals() {
   _ = 'abc' // expected-error{{single-quoted string literal found, use '"'}}{{7-12="abc"}}
@@ -689,13 +689,13 @@
 func invalidDictionaryLiteral() {
   // FIXME: lots of unnecessary diagnostics.
 
-  var a = [1: ; // expected-error {{expected value in dictionary literal}} expected-error 2{{expected ',' separator}} {{14-14=,}} {{14-14=,}} expected-error {{expected key expression in dictionary literal}} expected-error {{expected ']' in container literal expression}} expected-note {{to match this opening '['}}
-  var b = [1: ;] // expected-error {{expected value in dictionary literal}} expected-error 2{{expected ',' separator}} {{14-14=,}} {{14-14=,}} expected-error {{expected key expression in dictionary literal}}
-  var c = [1: "one" ;] // expected-error {{expected key expression in dictionary literal}} expected-error 2{{expected ',' separator}} {{20-20=,}} {{20-20=,}}
-  var d = [1: "one", ;] // expected-error {{expected key expression in dictionary literal}} expected-error {{expected ',' separator}} {{21-21=,}}
+  var a = [1: ; // expected-error {{expected value in dictionary literal}}
+  var b = [1: ;] // expected-error {{expected value in dictionary literal}}
+  var c = [1: "one" ;] // expected-error {{expected key expression in dictionary literal}} expected-error {{expected ',' separator}} {{20-20=,}}
+  var d = [1: "one", ;] // expected-error {{expected key expression in dictionary literal}}
   var e = [1: "one", 2] // expected-error {{expected ':' in dictionary literal}}
-  var f = [1: "one", 2 ;] // expected-error 2{{expected ',' separator}} {{23-23=,}} {{23-23=,}} expected-error 1{{expected key expression in dictionary literal}} expected-error {{expected ':' in dictionary literal}}
-  var g = [1: "one", 2: ;] // expected-error {{expected value in dictionary literal}} expected-error 2{{expected ',' separator}} {{24-24=,}} {{24-24=,}} expected-error {{expected key expression in dictionary literal}}
+  var f = [1: "one", 2 ;] // expected-error {{expected ':' in dictionary literal}}
+  var g = [1: "one", 2: ;] // expected-error {{expected value in dictionary literal}}
 }
 
     
@@ -735,8 +735,7 @@
 
   // ?? should have lower precedence than range and arithmetic operators.
   let r1 = r ?? (0...42) // ok
-  let r2 = (r ?? 0)...42 // not ok: expected-error {{binary operator '??' cannot be applied to operands of type 'CountableClosedRange<Int>?' and 'Int'}}
-  // expected-note @-1 {{overloads for '??' exist with these partially matching parameter lists:}}
+  let r2 = (r ?? 0)...42 // not ok: expected-error {{cannot convert value of type 'Int' to expected argument type 'CountableClosedRange<Int>'}}
   let r3 = r ?? 0...42 // parses as the first one, not the second.
   
   
diff --git a/test/stdlib/Dispatch.swift b/test/stdlib/Dispatch.swift
index b348181..681ee85 100644
--- a/test/stdlib/Dispatch.swift
+++ b/test/stdlib/Dispatch.swift
@@ -85,3 +85,19 @@
 		expectEqual(1, t)
 	}
 }
+
+DispatchAPI.test("DispatchTime comparisons") {
+    do {
+        let now = DispatchTime.now()
+        checkComparable([now, now + .milliseconds(1), .distantFuture], oracle: {
+            return $0 < $1 ? .lt : $0 == $1 ? .eq : .gt
+        })
+    }
+
+    do {
+        let now = DispatchWallTime.now()
+        checkComparable([now, now + .milliseconds(1), .distantFuture], oracle: {
+            return $0 < $1 ? .lt : $0 == $1 ? .eq : .gt
+        })
+    }
+}
diff --git a/test/stdlib/TestCharacterSet.swift b/test/stdlib/TestCharacterSet.swift
index 316e148..e75267d 100644
--- a/test/stdlib/TestCharacterSet.swift
+++ b/test/stdlib/TestCharacterSet.swift
@@ -192,6 +192,33 @@
         expectEqual(expected, union)
     }
 
+    func test_subtracting() {
+        let difference = CharacterSet(charactersIn: "abc").subtracting(CharacterSet(charactersIn: "b"))
+        let expected = CharacterSet(charactersIn: "ac")
+        expectEqual(expected, difference)
+    }
+
+    func test_subtractEmptySet() {
+        var mutableSet = CharacterSet(charactersIn: "abc")
+        let emptySet = CharacterSet()
+        mutableSet.subtract(emptySet)
+        let expected = CharacterSet(charactersIn: "abc")
+        expectEqual(expected, mutableSet)
+    }
+
+    func test_subtractNonEmptySet() {
+        var mutableSet = CharacterSet()
+        let nonEmptySet = CharacterSet(charactersIn: "abc")
+        mutableSet.subtract(nonEmptySet)
+        expectTrue(mutableSet.isEmpty)
+    }
+
+    func test_symmetricDifference() {
+        let symmetricDifference = CharacterSet(charactersIn: "ac").symmetricDifference(CharacterSet(charactersIn: "b"))
+        let expected = CharacterSet(charactersIn: "abc")
+        expectEqual(expected, symmetricDifference)
+    }
+
     func test_hasMember() {
         let contains = CharacterSet.letters.hasMember(inPlane: 1)
         expectTrue(contains)
@@ -219,6 +246,10 @@
 CharacterSetTests.test("test_AnyHashableCreatedFromNSCharacterSet") { TestCharacterSet().test_AnyHashableCreatedFromNSCharacterSet() }
 CharacterSetTests.test("test_superSet") { TestCharacterSet().test_superSet() }
 CharacterSetTests.test("test_union") { TestCharacterSet().test_union() }
+CharacterSetTests.test("test_subtracting") { TestCharacterSet().test_subtracting() }
+CharacterSetTests.test("test_subtractEmptySet") { TestCharacterSet().test_subtractEmptySet() }
+CharacterSetTests.test("test_subtractNonEmptySet") { TestCharacterSet().test_subtractNonEmptySet() }
+CharacterSetTests.test("test_symmetricDifference") { TestCharacterSet().test_symmetricDifference() }
 CharacterSetTests.test("test_hasMember") { TestCharacterSet().test_hasMember() }
 CharacterSetTests.test("test_bitmap") { TestCharacterSet().test_bitmap() }
 runAllTests()
diff --git a/test/stdlib/TestURL.swift b/test/stdlib/TestURL.swift
index 216853b..063f58e 100644
--- a/test/stdlib/TestURL.swift
+++ b/test/stdlib/TestURL.swift
@@ -53,7 +53,7 @@
             expectTrue(false, "Unable to write data")
         }
         
-        // Modify an existing resource values
+        // Modify an existing resource value
         do {
             var resourceValues = try file.resourceValues(forKeys: [.nameKey])
             expectNotNil(resourceValues.name)
@@ -64,9 +64,65 @@
             try file.setResourceValues(resourceValues)
         } catch {
             expectTrue(false, "Unable to set resources")
-        }        
+        }
     }
     
+#if os(OSX)
+    func testQuarantineProperties() {
+        // Test the quarantine stuff; it has special logic
+        if #available(OSX 10.11, iOS 9.0, *) {
+            // Create a temporary file
+            var file = URL(fileURLWithPath: NSTemporaryDirectory())
+            let name = "my_great_file" + UUID().uuidString
+            file.appendPathComponent(name)
+            let data = Data(bytes: [1, 2, 3, 4, 5])
+            do {
+                try data.write(to: file)
+            } catch {
+                expectTrue(false, "Unable to write data")
+            }
+
+            // Set the quarantine info on a file
+            do {
+                var resourceValues = URLResourceValues()
+                resourceValues.quarantineProperties = ["LSQuarantineAgentName" : "TestURL"]
+                try file.setResourceValues(resourceValues)
+            } catch {
+                expectTrue(false, "Unable to set quarantine info")
+            }
+            
+            // Get the quarantine info back
+            do {
+                var resourceValues = try file.resourceValues(forKeys: [.quarantinePropertiesKey])
+                expectEqual(resourceValues.quarantineProperties?["LSQuarantineAgentName"] as? String, "TestURL")
+            } catch {
+                expectTrue(false, "Unable to get quarantine info")
+            }
+            
+            // Clear the quarantine info
+            do {
+                var resourceValues = URLResourceValues()
+                resourceValues.quarantineProperties = nil // this effectively sets a flag
+                try file.setResourceValues(resourceValues)
+                
+                // Make sure that the resourceValues property returns nil
+                expectNil(resourceValues.quarantineProperties)
+            } catch {
+                expectTrue(false, "Unable to clear quarantine info")
+            }
+
+            // Get the quarantine info back again
+            do {
+                var resourceValues = try file.resourceValues(forKeys: [.quarantinePropertiesKey])
+                expectNil(resourceValues.quarantineProperties)
+            } catch {
+                expectTrue(false, "Unable to get quarantine info after clearing")
+            }
+
+        }
+    }
+#endif
+    
     func testMoreSetProperties() {
         // Create a temporary file
         var file = URL(fileURLWithPath: NSTemporaryDirectory())
@@ -327,6 +383,9 @@
 URLTests.test("testBasics") { TestURL().testBasics() }
 URLTests.test("testProperties") { TestURL().testProperties() }
 URLTests.test("testSetProperties") { TestURL().testSetProperties() }
+#if os(OSX)
+URLTests.test("testQuarantineProperties") { TestURL().testQuarantineProperties() }
+#endif
 URLTests.test("testMoreSetProperties") { TestURL().testMoreSetProperties() }
 URLTests.test("testURLComponents") { TestURL().testURLComponents() }
 URLTests.test("testURLResourceValues") { TestURL().testURLResourceValues() }
diff --git a/test/stdlib/UnsafeRawBufferPointer.swift b/test/stdlib/UnsafeRawBufferPointer.swift
index ad0421e..1005ba8 100644
--- a/test/stdlib/UnsafeRawBufferPointer.swift
+++ b/test/stdlib/UnsafeRawBufferPointer.swift
@@ -53,7 +53,7 @@
 // View an array's elements as bytes.
 // Use copyBytes to overwrite the array element's bytes.
 UnsafeRawBufferPointerTestSuite.test("initFromArray") {
-  var array1: [Int32] = [0, 1, 2, 3]
+  let array1: [Int32] = [0, 1, 2, 3]
   var array2 = [Int32](repeating: 0, count: 4)
   // Immutable view of array1's bytes.
   array1.withUnsafeBytes { bytes1 in
@@ -77,7 +77,7 @@
 
 // Directly test the byte Sequence produced by withUnsafeBytes.
 UnsafeRawBufferPointerTestSuite.test("withUnsafeBytes.Sequence") {
-  var array1: [Int32] = [0, 1, 2, 3]
+  let array1: [Int32] = [0, 1, 2, 3]
   array1.withUnsafeBytes { bytes1 in
     // Initialize an array from a sequence of bytes.
     let byteArray = [UInt8](bytes1)
diff --git a/test/stdlib/subString.swift b/test/stdlib/subString.swift
index ee82135..a0746a5 100644
--- a/test/stdlib/subString.swift
+++ b/test/stdlib/subString.swift
@@ -5,11 +5,10 @@
 
 var SubstringTests = TestSuite("SubstringTests")
 
-func checkMatch<S: Collection, T: Collection
+func checkMatch<S: Collection, T: Collection>(_ x: S, _ y: T, _ i: S.Index)
   where S.Index == T.Index, S.Iterator.Element == T.Iterator.Element,
-  S.Iterator.Element: Equatable>(
-  _ x: S, _ y: T, _ i: S.Index) {
-  
+  S.Iterator.Element: Equatable
+{
   expectEqual(x[i], y[i])
 }
 
@@ -25,9 +24,7 @@
   expectEqual(s3, "cd")
 }
 
-SubstringTests.test("CharacterView")
-  .xfail(.always("CharacterView slices don't share indices"))
-  .code {
+SubstringTests.test("CharacterView") {
   let s = "abcdefg"
   var t = s.characters.dropFirst(2)
   var u = t.dropFirst(2)
@@ -41,6 +38,11 @@
   checkMatch(t, u, u.index(after: u.startIndex))
   checkMatch(t, u, u.index(before: u.endIndex))
   
+  expectEqual("", String(t.dropFirst(10)))
+  expectEqual("", String(t.dropLast(10)))
+  expectEqual("", String(u.dropFirst(10)))
+  expectEqual("", String(u.dropLast(10)))
+  
   t.replaceSubrange(t.startIndex...t.startIndex, with: ["C"])
   u.replaceSubrange(u.startIndex...u.startIndex, with: ["E"])
   expectEqual(String(u), "Efg")
@@ -48,9 +50,7 @@
   expectEqual(s, "abcdefg")
 }
 
-SubstringTests.test("UnicodeScalars")
-  .xfail(.always("UnicodeScalarsView slices don't share indices"))
-  .code {
+SubstringTests.test("UnicodeScalars") {
   let s = "abcdefg"
   var t = s.unicodeScalars.dropFirst(2)
   var u = t.dropFirst(2)
@@ -64,6 +64,11 @@
   checkMatch(t, u, u.index(after: u.startIndex))
   checkMatch(t, u, u.index(before: u.endIndex))
   
+  expectEqual("", String(t.dropFirst(10)))
+  expectEqual("", String(t.dropLast(10)))
+  expectEqual("", String(u.dropFirst(10)))
+  expectEqual("", String(u.dropLast(10)))
+  
   t.replaceSubrange(t.startIndex...t.startIndex, with: ["C"])
   u.replaceSubrange(u.startIndex...u.startIndex, with: ["E"])
   expectEqual(String(u), "Efg")
@@ -71,9 +76,7 @@
   expectEqual(s, "abcdefg")
 }
 
-SubstringTests.test("UTF16View")
-  .xfail(.always("UTF16View slices don't share indices"))
-  .code {
+SubstringTests.test("UTF16View") {
   let s = "abcdefg"
   let t = s.utf16.dropFirst(2)
   let u = t.dropFirst(2)
@@ -86,6 +89,11 @@
   checkMatch(t, u, u.startIndex)
   checkMatch(t, u, u.index(after: u.startIndex))
   checkMatch(t, u, u.index(before: u.endIndex))
+  
+  expectEqual("", String(t.dropFirst(10))!)
+  expectEqual("", String(t.dropLast(10))!)
+  expectEqual("", String(u.dropFirst(10))!)
+  expectEqual("", String(u.dropLast(10))!)
 }
 
 SubstringTests.test("UTF8View") {
@@ -99,6 +107,11 @@
   checkMatch(s.utf8, t, u.startIndex)
   checkMatch(t, u, u.startIndex)
   checkMatch(t, u, u.index(after: u.startIndex))
+
+  expectEqual("", String(t.dropFirst(10))!)
+  expectEqual("", String(t.dropLast(10))!)
+  expectEqual("", String(u.dropFirst(10))!)
+  expectEqual("", String(u.dropLast(10))!)
 }
 
 runAllTests()
diff --git a/test/type/protocol_composition.swift b/test/type/protocol_composition.swift
index bd83ae6..6feb390 100644
--- a/test/type/protocol_composition.swift
+++ b/test/type/protocol_composition.swift
@@ -123,9 +123,11 @@
 }
 
 // Test the parser's splitting of >= into > and =.
-var x : protocol<P5>= 17 // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{9-22=(P5)=}}
+var x : protocol<P5>= 17 // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{9-22=P5=}}
+var y : protocol<P5, P7>= 17 // expected-warning {{'protocol<...>' composition syntax is deprecated; join the protocols using '&'}} {{9-26=(P5 & P7)=}}
 
-typealias A = protocol<> // expected-warning {{'protocol<>' syntax is deprecated; use 'Any' instead}} {{15-25=Any}}
+typealias A1 = protocol<> // expected-warning {{'protocol<>' syntax is deprecated; use 'Any' instead}} {{16-26=Any}}
+typealias A2 = protocol<>? // expected-warning {{'protocol<>' syntax is deprecated; use 'Any' instead}} {{16-27=Any?}}
 typealias B1 = protocol<P1,P2> // expected-warning {{'protocol<...>' composition syntax is deprecated; join the protocols using '&'}} {{16-31=P1 & P2}}
 typealias B2 = protocol<P1, P2> // expected-warning {{'protocol<...>' composition syntax is deprecated; join the protocols using '&'}} {{16-32=P1 & P2}}
 typealias B3 = protocol<P1 ,P2> // expected-warning {{'protocol<...>' composition syntax is deprecated; join the protocols using '&'}} {{16-32=P1 & P2}}
@@ -133,3 +135,5 @@
 typealias C1 = protocol<Any, P1> // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{16-33=P1}}
 typealias C2 = protocol<P1, Any> // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{16-33=P1}}
 typealias D = protocol<P1> // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{15-27=P1}}
+typealias E = protocol<Any> // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{15-28=Any}}
+typealias F = protocol<Any, Any> // expected-warning {{'protocol<...>' composition syntax is deprecated and not needed here}} {{15-33=Any}}
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index ed8789d..0e7b99a 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -7,6 +7,11 @@
 add_swift_tool_subdirectory(sil-extract)
 add_swift_tool_subdirectory(swift-llvm-opt)
 
+if(SWIFT_HOST_VARIANT STREQUAL "macosx")
+  # Only build Darwin-specific tools when deploying to OS X.
+  add_swift_tool_subdirectory(swift-api-digester)
+endif()
+
 if(SWIFT_BUILD_SOURCEKIT)
   add_swift_tool_subdirectory(SourceKit)
 endif()
diff --git a/tools/swift-api-digester/CMakeLists.txt b/tools/swift-api-digester/CMakeLists.txt
new file mode 100644
index 0000000..44b674a
--- /dev/null
+++ b/tools/swift-api-digester/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_swift_executable(swift-api-digester
+  swift-api-digester.cpp
+  LINK_LIBRARIES
+    swiftFrontend swiftIDE
+)
diff --git a/tools/swift-api-digester/DigesterEnums.def b/tools/swift-api-digester/DigesterEnums.def
new file mode 100644
index 0000000..2d1f220
--- /dev/null
+++ b/tools/swift-api-digester/DigesterEnums.def
@@ -0,0 +1,86 @@
+#ifndef NODE_KIND
+#define NODE_KIND(NAME)
+#endif
+
+#ifndef NODE_ANNOTATION
+#define NODE_ANNOTATION(NAME)
+#endif
+
+#ifndef DECL_ATTR
+#define DECL_ATTR(NAME)
+#endif
+
+#ifndef KEY
+#define KEY(NAME)
+#endif
+
+#ifndef KNOWN_TYPE
+#define KNOWN_TYPE(NAME)
+#endif
+
+NODE_KIND(Root)
+NODE_KIND(TypeDecl)
+NODE_KIND(TypeNominal)
+NODE_KIND(TypeFunc)
+NODE_KIND(Function)
+NODE_KIND(Constructor)
+NODE_KIND(Getter)
+NODE_KIND(Setter)
+NODE_KIND(Var)
+NODE_KIND(TypeAlias)
+NODE_KIND(Nil)
+
+NODE_ANNOTATION(Added)
+NODE_ANNOTATION(Removed)
+NODE_ANNOTATION(Updated)
+NODE_ANNOTATION(RemovingErrorParam)
+NODE_ANNOTATION(ImplicitOptionalToOptional)
+NODE_ANNOTATION(OptionalToImplicitOptional)
+NODE_ANNOTATION(WrapOptional)
+NODE_ANNOTATION(WrapImplicitOptional)
+NODE_ANNOTATION(UnwrapOptional)
+NODE_ANNOTATION(GenericParamUpCast)
+NODE_ANNOTATION(GenericParamDownCast)
+NODE_ANNOTATION(TypeAliasChangeFromInt)
+NODE_ANNOTATION(GetterToProperty)
+NODE_ANNOTATION(SetterToProperty)
+NODE_ANNOTATION(TypeRewritten)
+NODE_ANNOTATION(TypeRewrittenLeft)
+NODE_ANNOTATION(TypeRewrittenRight)
+NODE_ANNOTATION(ModernizeEnum)
+NODE_ANNOTATION(UnwrapUnmanaged)
+NODE_ANNOTATION(RemovedDecl)
+NODE_ANNOTATION(Rename)
+NODE_ANNOTATION(RenameOldName)
+NODE_ANNOTATION(RenameNewName)
+NODE_ANNOTATION(NowThrowing)
+NODE_ANNOTATION(NowMutating)
+
+DECL_ATTR(deprecated)
+
+KEY(kind)
+KEY(name)
+KEY(selfIndex)
+KEY(usr)
+KEY(location)
+KEY(children)
+KEY(printedName)
+KEY(moduleName)
+KEY(throwing)
+KEY(mutating)
+KEY(typeAttributes)
+KEY(declAttributes)
+KEY(declKind)
+
+KNOWN_TYPE(Optional)
+KNOWN_TYPE(ImplicitlyUnwrappedOptional)
+KNOWN_TYPE(Void)
+KNOWN_TYPE(Unmanaged)
+KNOWN_TYPE(Function)
+KNOWN_TYPE(PolymorphicFunction)
+
+#undef KNOWN_TYPE
+#undef KEY
+#undef DECL_ATTR
+#undef NODE_ANNOTATION
+#undef NODE_KIND
diff --git a/tools/swift-api-digester/swift-api-digester.cpp b/tools/swift-api-digester/swift-api-digester.cpp
new file mode 100644
index 0000000..0e2808c
--- /dev/null
+++ b/tools/swift-api-digester/swift-api-digester.cpp
@@ -0,0 +1,3472 @@
+//===--- swift-api-digester.cpp - API change detector ---------------------===//
+//
+// This source file is part of the Swift.org open source project
+//
+// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
+// Licensed under Apache License v2.0 with Runtime Library Exception
+//
+// See http://swift.org/LICENSE.txt for license information
+// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
+//
+//===----------------------------------------------------------------------===//
+
+// swift-api-digester is a test utility to detect source-breaking API changes
+// during the evolution of a Swift library. The tool works on two phases:
+// (1) dumping library contents as a JSON file, and (2) comparing two JSON
+// files textually to report interesting changes.
+//
+// During phase (1), the api-digester looks up every declarations inside
+// a module and outputs a singly-rooted tree that encloses interesting
+// details of the API level.
+//
+// During phase (2), api-digester applies structure-information comparison
+// algorithms on two given singly root trees, trying to figure out, as
+// precise as possible, the branches/leaves in the trees that differ from
+// each other. Further analysis decides whether the changed leaves/branches
+// can be reflected as source-breaking changes for API users. If they are,
+// the output of api-digester will include such changes.
+
+#include "clang/AST/ASTContext.h"
+#include "clang/AST/DeclObjC.h"
+#include "clang/Lex/Preprocessor.h"
+#include "clang/Sema/Lookup.h"
+#include "clang/Sema/Sema.h"
+#include "llvm/ADT/TinyPtrVector.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/Signals.h"
+#include "llvm/Support/YAMLParser.h"
+#include "llvm/Support/YAMLTraits.h"
+#include "swift/AST/Decl.h"
+#include "swift/AST/NameLookup.h"
+#include "swift/AST/PrettyStackTrace.h"
+#include "swift/AST/USRGeneration.h"
+#include "swift/Basic/ColorUtils.h"
+#include "swift/Basic/Fallthrough.h"
+#include "swift/Basic/JSONSerialization.h"
+#include "swift/Basic/LLVMInitialize.h"
+#include "swift/Basic/STLExtras.h"
+#include "swift/Basic/Version.h"
+#include "swift/ClangImporter/ClangImporter.h"
+#include "swift/Frontend/Frontend.h"
+#include "swift/Frontend/PrintingDiagnosticConsumer.h"
+#include "swift/IDE/Utils.h"
+#include <functional>
+
+using namespace swift;
+using namespace ide;
+
+namespace  {
+  enum class ActionType {
+    None,
+    DumpSDK,
+    DumpSwiftModules,
+    CompareSDKs,
+    DiagnoseSDKs,
+  };
+}
+
+namespace options {
+
+static llvm::cl::opt<bool>
+IncludeAllModules("include-all", llvm::cl::desc("Include all modules from the SDK"));
+
+static llvm::cl::list<std::string>
+ModuleNames("module", llvm::cl::ZeroOrMore, llvm::cl::desc("Names of modules"));
+
+static llvm::cl::opt<std::string>
+ModuleList("module-list-file",
+           llvm::cl::desc("File containing a new-line separated list of modules"));
+
+static llvm::cl::opt<std::string>
+OutputFile("o", llvm::cl::desc("Output file"));
+
+static llvm::cl::opt<std::string>
+SDK("sdk", llvm::cl::desc("path to the SDK to build against"));
+
+static llvm::cl::opt<std::string>
+Triple("target", llvm::cl::desc("target triple"));
+
+static llvm::cl::opt<std::string>
+ModuleCachePath("module-cache-path", llvm::cl::desc("Clang module cache path"));
+
+static llvm::cl::opt<std::string>
+ResourceDir("resource-dir",
+            llvm::cl::desc("The directory that holds the compiler resource files"));
+
+static llvm::cl::list<std::string>
+FrameworkPaths("F", llvm::cl::desc("add a directory to the framework search path"));
+
+static llvm::cl::list<std::string>
+ModuleInputPaths("I", llvm::cl::desc("add a module for input"));
+
+static llvm::cl::list<std::string>
+CCSystemFrameworkPaths("iframework", llvm::cl::desc("add a directory to the clang importer system framework search path"));
+
+static llvm::cl::opt<bool>
+AbortOnModuleLoadFailure("abort-on-module-fail",
+                        llvm::cl::desc("Abort if a module failed to load"));
+
+static llvm::cl::opt<bool>
+Verbose("v", llvm::cl::desc("Verbose"));
+
+static llvm::cl::opt<ActionType>
+Action(llvm::cl::desc("Mode:"), llvm::cl::init(ActionType::None),
+      llvm::cl::values(
+          clEnumValN(ActionType::DumpSDK,
+                     "dump-sdk",
+                     "Dump SDK content to JSON file"),
+          clEnumValN(ActionType::DumpSwiftModules,
+                     "dump-swift",
+                     "dump swift modules in SDK"),
+          clEnumValN(ActionType::CompareSDKs,
+                     "compare-sdk",
+                     "Compare SDK content in JSON file"),
+          clEnumValN(ActionType::DiagnoseSDKs,
+                     "diagnose-sdk",
+                     "Diagnose SDK content in JSON file"),
+          clEnumValEnd));
+
+static llvm::cl::list<std::string>
+SDKJsonPaths("input-paths",
+            llvm::cl::desc("The SDK contents under comparison"));
+
+static llvm::cl::list<std::string>
+ApisPrintUsrs("api-usrs",
+              llvm::cl::desc("The name of APIs to print their usrs, "
+                             "e.g. Type::Function"));
+
+static llvm::cl::opt<std::string>
+IgnoreRemovedDeclUSRs("ignored-usrs",
+                      llvm::cl::desc("the file containing USRs of removed decls "
+                                     "that the digester should ignore"));
+
+static llvm::cl::opt<std::string>
+SwiftVersion("swift-version",
+             llvm::cl::desc("The Swift compiler version to invoke"));
+}
+
+namespace {
+
+StringRef InsertToBuffer(StringRef S) {
+  static llvm::StringSet<> Data;
+  return Data.insert(S).first->getKey();
+}
+
+template<typename T>
+bool contains(std::vector<T> container, T instance) {
+  return std::find(container.begin(), container.end(), instance) != container.end();
+}
+
+template<typename T>
+bool contains(ArrayRef<T> container, T instance) {
+  return std::find(container.begin(), container.end(), instance) != container.end();
+}
+
+class SDKNode;
+typedef SDKNode* NodePtr;
+typedef std::unique_ptr<SDKNode> NodeUniquePtr;
+typedef std::map<NodePtr, NodePtr> ParentMap;
+typedef std::vector<NodeUniquePtr> NodeOwnedVector;
+typedef std::vector<NodePtr> NodeVector;
+
+// The interface used to visit the SDK tree.
+class SDKNodeVisitor {
+  friend SDKNode;
+protected:
+  NodeVector Ancestors;
+  virtual void visit(NodePtr Node) = 0;
+
+  NodePtr parent() {
+    if (Ancestors.empty())
+      return nullptr;
+    return Ancestors.back();
+  }
+
+  int depth() {
+    return Ancestors.size() + 1;
+  }
+public:
+  virtual ~SDKNodeVisitor() = default;
+};
+
+// During the matching phase, any matched node will be reported using this API.
+// For update Node left = {Node before change} Right = {Node after change};
+// For added Node left = {NilNode} Right = {Node after change};
+// For removed Node left = {Node before change} Right = {NilNode}
+struct MatchedNodeListener {
+  virtual void foundMatch(NodePtr Left, NodePtr Right) = 0;
+  virtual void foundRemoveAddMatch(NodePtr Removed, NodePtr Added) {}
+  virtual ~MatchedNodeListener() = default;
+};
+
+// A node matcher will traverse two trees of SDKNode and find matched nodes
+struct NodeMatcher {
+  virtual void match() = 0;
+  virtual ~NodeMatcher() = default;
+};
+
+#define KEY(NAME) static const char* Key_##NAME = #NAME;
+#include "DigesterEnums.def"
+
+// The node kind appearing in the tree that describes the content of the SDK
+enum class SDKNodeKind {
+#define NODE_KIND(NAME) NAME,
+#include "DigesterEnums.def"
+};
+
+enum class NodeAnnotation {
+#define NODE_ANNOTATION(NAME) NAME,
+#include "DigesterEnums.def"
+};
+
+enum class KnownTypeKind {
+#define KNOWN_TYPE(NAME) NAME,
+#include "DigesterEnums.def"
+  Unknown,
+};
+
+enum class SDKDeclAttrKind {
+#define DECL_ATTR(Name) DAK_##Name,
+#include "DigesterEnums.def"
+};
+
+// Redefine << so that we can output the name of the node kind.
+static raw_ostream &operator<<(raw_ostream &Out, const SDKNodeKind Value) {
+  switch (Value) {
+#define NODE_KIND(Name) case SDKNodeKind::Name: return Out << #Name;
+#include "DigesterEnums.def"
+  }
+  llvm_unreachable("Undefined SDK node kind.");
+}
+
+// Redefine << so that we can output the name of the annotation kind.
+static raw_ostream &operator<<(raw_ostream &Out, const NodeAnnotation Value) {
+#define NODE_ANNOTATION(X) if (Value == NodeAnnotation::X) { return Out << #X; }
+#include "DigesterEnums.def"
+  llvm_unreachable("Undefined SDK node kind.");
+}
+  // Redefine << so that we can output the name of decl kind.
+static raw_ostream &operator<<(raw_ostream &Out, const DeclKind Value) {
+  switch (Value) {
+#define DECL(X, PARENT) case DeclKind::X: return Out << #X;
+#include "swift/AST/DeclNodes.def"
+  }
+}
+
+struct SDKNodeInitInfo {
+  StringRef Name;
+  StringRef PrintedName;
+  DeclKind DKind;
+  StringRef USR;
+  StringRef Location;
+  StringRef ModuleName;
+  bool IsThrowing = false;
+  bool IsMutating = false;
+  Optional<uint8_t> SelfIndex;
+  std::vector<SDKDeclAttrKind> DeclAttrs;
+  std::vector<TypeAttrKind> TypeAttrs;
+  SDKNodeInitInfo() = default;
+  SDKNodeInitInfo(ValueDecl *VD);
+  SDKNodeInitInfo(Type Ty);
+  NodeUniquePtr createSDKNode(SDKNodeKind Kind);
+};
+
+class SDKNode {
+  typedef std::vector<NodeUniquePtr>::const_iterator ChildIt;
+  StringRef Name;
+  StringRef PrintedName;
+  unsigned TheKind : 4;
+  NodeOwnedVector Children;
+  std::set<NodeAnnotation> Annotations;
+  std::map<NodeAnnotation, StringRef> AnnotateComments;
+  NodePtr Parent = nullptr;
+
+protected:
+  SDKNode(SDKNodeInitInfo Info, SDKNodeKind Kind) : Name(Info.Name),
+    PrintedName(Info.PrintedName), TheKind(unsigned(Kind)) {}
+
+public:
+  static NodeUniquePtr constructSDKNode(llvm::yaml::MappingNode *Node);
+  static void preorderVisit(NodePtr Root, SDKNodeVisitor &Visitor);
+  static void postorderVisit(NodePtr Root, SDKNodeVisitor &Visitor);
+
+  bool operator==(const SDKNode &Other) const;
+  bool operator!=(const SDKNode &Other) const { return !((*this) == Other); }
+
+  bool isLeaf() const { return Children.empty(); }
+  SDKNodeKind getKind() const { return SDKNodeKind(TheKind); }
+  StringRef getName() const { return Name; }
+  bool isNameValid() const { return Name != "_"; }
+  StringRef getPrintedName() const { return PrintedName; }
+  void removeChild(ChildIt CI) { Children.erase(CI); }
+  ChildIt getChildBegin() const { return Children.begin(); }
+  void annotate(NodeAnnotation Anno) { Annotations.insert(Anno); }
+  NodePtr getParent() const { return Parent; };
+  unsigned getChildrenCount() const { return Children.size(); }
+  NodePtr childAt(unsigned I) const;
+  void removeChild(NodePtr C);
+  void addAnnotateComment(NodeAnnotation Anno, StringRef Comment);
+  StringRef getAnnotateComment(NodeAnnotation Anno) const;
+  bool isAnnotatedAs(NodeAnnotation Anno) const;
+  void addChild(NodeUniquePtr Child);
+  ArrayRef<NodeUniquePtr> getChildren() const;
+  void collectChildren(NodeVector &Bucket) const;
+  unsigned getChildIndex(NodePtr Child) const;
+  NodePtr getOnlyChild() const;
+  template <typename T> const T *getAs() const;
+  template <typename T> T *getAs();
+};
+
+class SDKNodeDecl : public SDKNode {
+  DeclKind DKind;
+  StringRef Usr;
+  StringRef Location;
+  StringRef ModuleName;
+  std::vector<SDKDeclAttrKind> DeclAttributes;
+  bool hasDeclAttribute(SDKDeclAttrKind DAKind) const;
+
+protected:
+  SDKNodeDecl(SDKNodeInitInfo Info, SDKNodeKind Kind) : SDKNode(Info, Kind),
+                      DKind(Info.DKind), Usr(Info.USR), Location(Info.Location),
+                  ModuleName(Info.ModuleName), DeclAttributes(Info.DeclAttrs) {}
+
+public:
+  StringRef getUsr() const { return Usr; }
+  StringRef getLocation() const { return Location; }
+  StringRef getModuleName() const {return ModuleName;}
+  void addDeclAttribute(SDKDeclAttrKind DAKind);
+  ArrayRef<SDKDeclAttrKind> getDeclAttributes() const;
+  bool isObjc() const { return Usr.startswith("c:"); }
+  static bool classof(const SDKNode *N);
+  DeclKind getDeclKind() const { return DKind; }
+  void printFullyQualifiedName(llvm::raw_ostream &OS);
+  StringRef getFullyQualifiedName();
+  bool isSDKPrivate();
+  bool isDeprecated();
+};
+
+class SDKNodeType : public SDKNode {
+  std::vector<TypeAttrKind> TypeAttributes;
+
+protected:
+  bool hasTypeAttribute(TypeAttrKind DAKind) const;
+  SDKNodeType(SDKNodeInitInfo Info, SDKNodeKind Kind) : SDKNode(Info, Kind),
+    TypeAttributes(Info.TypeAttrs) {}
+
+public:
+  KnownTypeKind getTypeKind() const;
+  void addTypeAttribute(TypeAttrKind AttrKind);
+  ArrayRef<TypeAttrKind> getTypeAttributes() const;
+  SDKNodeDecl *getClosestParentDecl() const;
+  static bool classof(const SDKNode *N);
+};
+
+bool SDKNodeType::classof(const SDKNode *N) {
+  switch (N->getKind()) {
+  case SDKNodeKind::TypeNominal:
+  case SDKNodeKind::TypeFunc:
+    return true;
+  default:
+    return false;
+  }
+}
+
+class SDKNodeTypeNominal : public SDKNodeType {
+public:
+  SDKNodeTypeNominal(SDKNodeInitInfo Info) : SDKNodeType(Info,
+    SDKNodeKind::TypeNominal) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeTypeFunc : public SDKNodeType {
+public:
+  SDKNodeTypeFunc(SDKNodeInitInfo Info) : SDKNodeType(Info, SDKNodeKind::TypeFunc) {}
+  bool isEscaping() const { return !hasTypeAttribute(TypeAttrKind::TAK_noescape); }
+  static bool classof(const SDKNode *N);
+};
+
+template <typename T> const T *
+SDKNode::getAs() const {
+  if (T::classof(this))
+    return static_cast<const T*>(this);
+  return nullptr;
+}
+
+template <typename T> T *
+SDKNode::getAs() {
+  if (T::classof(this))
+    return static_cast<T*>(this);
+  return nullptr;
+}
+
+unsigned SDKNode::getChildIndex(NodePtr Child) const {
+  return std::find_if(Children.begin(), Children.end(),
+    [&](const NodeUniquePtr &P) { return P.get() == Child; }) - Children.begin();
+}
+
+NodePtr SDKNode::getOnlyChild() const {
+    assert(Children.size() == 1 && "more that one child.");
+    return (*Children.begin()).get();
+  }
+
+void SDKNode::addChild(NodeUniquePtr Child) {
+  Child->Parent = this;
+  Children.push_back(std::move(Child));
+}
+
+ArrayRef<NodeUniquePtr> SDKNode::getChildren() const {
+  return llvm::makeArrayRef(Children.data(), Children.size());
+}
+
+void SDKNode::collectChildren(NodeVector &Bucket) const {
+  for (auto &C : getChildren())
+    Bucket.push_back(C.get());
+}
+
+NodePtr SDKNode::childAt(unsigned I) const {
+  assert(I < getChildrenCount());
+  return getChildren()[I].get();
+}
+
+void SDKNode::removeChild(NodePtr C) {
+  Children.erase(std::find_if(Children.begin(), Children.end(),
+                              [&](NodeUniquePtr &N) { return N.get() == C; }));
+}
+
+void SDKNode::addAnnotateComment(NodeAnnotation Anno, StringRef Comment) {
+  assert(isAnnotatedAs(Anno) && "Cannot find annotation");
+  AnnotateComments[Anno] = Comment;
+}
+
+StringRef SDKNode::getAnnotateComment(NodeAnnotation Anno) const {
+  return AnnotateComments.find(Anno)->second;
+}
+
+bool SDKNode::isAnnotatedAs(NodeAnnotation Anno) const {
+  return Annotations.find(Anno) != Annotations.end();;
+}
+
+void SDKNode::preorderVisit(NodePtr Root, SDKNodeVisitor &Visitor) {
+  Visitor.visit(Root);
+  Visitor.Ancestors.push_back(Root);
+  for (auto &Child : Root->Children)
+    preorderVisit(Child.get(), Visitor);
+  Visitor.Ancestors.pop_back();
+}
+
+void SDKNode::postorderVisit(NodePtr Root, SDKNodeVisitor &Visitor) {
+  Visitor.Ancestors.push_back(Root);
+  for (auto &Child : Root->Children)
+    postorderVisit(Child.get(), Visitor);
+  Visitor.Ancestors.pop_back();
+  Visitor.visit(Root);
+}
+
+class SDKNodeVectorViewer {
+  ArrayRef<SDKNode*> Collection;
+  llvm::function_ref<bool(NodePtr)> Selector;
+  typedef ArrayRef<SDKNode*>::const_iterator VectorIt;
+  VectorIt getNext(VectorIt Start);
+  class ViewerIterator;
+
+public:
+  SDKNodeVectorViewer(ArrayRef<SDKNode*> Collection,
+                      llvm::function_ref<bool(NodePtr)> Selector) :
+                        Collection(Collection),
+                        Selector(Selector) {}
+  ViewerIterator begin();
+  ViewerIterator end();
+};
+
+class SDKNodeVectorViewer::ViewerIterator :
+    public std::iterator<std::input_iterator_tag, VectorIt> {
+  SDKNodeVectorViewer &Viewer;
+  VectorIt P;
+public:
+  ViewerIterator(SDKNodeVectorViewer &Viewer, VectorIt P) : Viewer(Viewer), P(P) {}
+  ViewerIterator(const ViewerIterator& mit) : Viewer(mit.Viewer), P(mit.P) {}
+  ViewerIterator& operator++();
+  ViewerIterator operator++(int) {ViewerIterator tmp(*this); operator++(); return tmp;}
+  bool operator==(const ViewerIterator& rhs) {return P==rhs.P;}
+  bool operator!=(const ViewerIterator& rhs) {return P!=rhs.P;}
+  const NodePtr& operator*() {return *P;}
+};
+
+SDKNodeVectorViewer::VectorIt
+SDKNodeVectorViewer::getNext(VectorIt Start) {
+  for (auto It = Start; It != Collection.end(); ++ It)
+    if (Selector(*It))
+      return It;
+  return Collection.end();
+}
+
+SDKNodeVectorViewer::ViewerIterator&
+SDKNodeVectorViewer::ViewerIterator::operator++() {
+  P = Viewer.getNext(P + 1);
+  return *this;
+}
+
+SDKNodeVectorViewer::ViewerIterator SDKNodeVectorViewer::begin() {
+  return ViewerIterator(*this, getNext(Collection.begin()));
+}
+
+SDKNodeVectorViewer::ViewerIterator SDKNodeVectorViewer::end() {
+  return ViewerIterator(*this, Collection.end());
+}
+
+class SDKNodeDecl;
+
+KnownTypeKind SDKNodeType::getTypeKind() const {
+#define KNOWN_TYPE(NAME) if (getName() == #NAME) return KnownTypeKind::NAME;
+#include "DigesterEnums.def"
+  return KnownTypeKind::Unknown;
+}
+
+ArrayRef<TypeAttrKind> SDKNodeType::getTypeAttributes() const {
+  return llvm::makeArrayRef(TypeAttributes.data(), TypeAttributes.size());
+}
+
+void SDKNodeType::addTypeAttribute(TypeAttrKind AttrKind) {
+  TypeAttributes.push_back(AttrKind);
+}
+
+bool SDKNodeType::hasTypeAttribute(TypeAttrKind DAKind) const {
+  return std::find(TypeAttributes.begin(), TypeAttributes.end(), DAKind) !=
+    TypeAttributes.end();
+}
+
+class SDKNodeRoot : public SDKNode {
+public:
+  SDKNodeRoot(SDKNodeInitInfo Info) : SDKNode(Info, SDKNodeKind::Root) {}
+  static NodeUniquePtr getInstance();
+  static bool classof(const SDKNode *N);
+};
+
+NodeUniquePtr SDKNodeRoot::getInstance() {
+  SDKNodeInitInfo Info;
+  Info.Name = InsertToBuffer("TopLevel");
+  Info.PrintedName = InsertToBuffer("TopLevel");
+  return Info.createSDKNode(SDKNodeKind::Root);
+}
+
+class SDKNodeNil : public SDKNode {
+  friend struct SDKNodeInitInfo;
+  SDKNodeNil(SDKNodeInitInfo Info) : SDKNode(Info, SDKNodeKind::Nil) {}
+public:
+  static SDKNode *getInstance();
+  static bool classof(const SDKNode *N);
+};
+
+SDKNode* SDKNodeNil::getInstance() {
+  static NodeUniquePtr Instance(new SDKNodeNil(SDKNodeInitInfo()));
+  return Instance.get();
+}
+
+bool SDKNodeDecl::isDeprecated() {
+  return hasDeclAttribute(SDKDeclAttrKind::DAK_deprecated);
+}
+
+bool SDKNodeDecl::isSDKPrivate() {
+  if (getName().startswith("__"))
+    return true;
+  if (auto *PD = dyn_cast<SDKNodeDecl>(getParent()))
+    return PD->isSDKPrivate();
+  return false;
+}
+
+void SDKNodeDecl::printFullyQualifiedName(llvm::raw_ostream &OS) {
+  std::vector<NodePtr> Parent;
+  for (auto *P = getParent(); isa<SDKNodeDecl>(P); P = P->getParent())
+    Parent.push_back(P);
+  for (auto It = Parent.rbegin(); It != Parent.rend(); ++ It)
+    OS << (*It)->getPrintedName() << ".";
+  OS << getPrintedName();
+}
+
+StringRef SDKNodeDecl::getFullyQualifiedName() {
+  llvm::SmallString<32> Buffer;
+  llvm::raw_svector_ostream OS(Buffer);
+  printFullyQualifiedName(OS);
+  return InsertToBuffer(OS.str());
+}
+
+bool SDKNodeDecl::classof(const SDKNode *N) {
+  switch (N->getKind()) {
+    case SDKNodeKind::Constructor:
+    case SDKNodeKind::Function:
+    case SDKNodeKind::Getter:
+    case SDKNodeKind::Setter:
+    case SDKNodeKind::TypeAlias:
+    case SDKNodeKind::TypeDecl:
+    case SDKNodeKind::Var:
+      return true;
+    case SDKNodeKind::Nil:
+    case SDKNodeKind::Root:
+    case SDKNodeKind::TypeNominal:
+    case SDKNodeKind::TypeFunc:
+      return false;
+  }
+}
+
+void SDKNodeDecl::addDeclAttribute(SDKDeclAttrKind DAKind) {
+  DeclAttributes.push_back(DAKind);
+}
+
+bool SDKNodeDecl::hasDeclAttribute(SDKDeclAttrKind DAKind) const {
+  return std::find(DeclAttributes.begin(), DeclAttributes.end(), DAKind) !=
+    DeclAttributes.end();
+}
+
+ArrayRef<SDKDeclAttrKind> SDKNodeDecl::getDeclAttributes() const {
+  return llvm::makeArrayRef(DeclAttributes.data(), DeclAttributes.size());
+}
+
+SDKNodeDecl *SDKNodeType::getClosestParentDecl() const {
+  auto *Result = getParent();
+  for (; !isa<SDKNodeDecl>(Result); Result = Result->getParent());
+  return Result->getAs<SDKNodeDecl>();
+}
+
+class SDKNodeTypeDecl : public SDKNodeDecl {
+public:
+  SDKNodeTypeDecl(SDKNodeInitInfo Info) : SDKNodeDecl(Info,
+                                                      SDKNodeKind::TypeDecl) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeTypeAlias : public SDKNodeDecl {
+public:
+  SDKNodeTypeAlias(SDKNodeInitInfo Info) : SDKNodeDecl(Info,
+                                                       SDKNodeKind::TypeAlias) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeVar : public SDKNodeDecl {
+public:
+  SDKNodeVar(SDKNodeInitInfo Info) : SDKNodeDecl(Info, SDKNodeKind::Var) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeAbstractFunc : public SDKNodeDecl {
+  const bool IsThrowing;
+  const bool IsMutating;
+  const Optional<uint8_t> SelfIndex;
+
+protected:
+  SDKNodeAbstractFunc(SDKNodeInitInfo Info, SDKNodeKind Kind) :
+                                                    SDKNodeDecl(Info, Kind),
+                                                    IsThrowing(Info.IsThrowing),
+                                                    IsMutating(Info.IsMutating),
+                                                    SelfIndex(Info.SelfIndex){}
+public:
+  bool isThrowing() const { return IsThrowing; }
+  bool isMutating() const { return IsMutating; }
+  uint8_t getSelfIndex() const { return SelfIndex.getValue(); }
+  Optional<uint8_t> getSelfIndexOptional() const { return SelfIndex; }
+  bool hasSelfIndex() const { return SelfIndex.hasValue(); }
+  static bool classof(const SDKNode *N);
+};
+
+bool SDKNodeAbstractFunc::classof(const SDKNode *N) {
+  switch (N->getKind()) {
+    case SDKNodeKind::Function:
+    case SDKNodeKind::Setter:
+    case SDKNodeKind::Getter:
+    case SDKNodeKind::Constructor:
+      return true;
+
+    default:
+      return false;
+  }
+}
+
+class SDKNodeFunction : public SDKNodeAbstractFunc {
+public:
+  SDKNodeFunction(SDKNodeInitInfo Info) : SDKNodeAbstractFunc(Info,
+                                                       SDKNodeKind::Function) {}
+  SDKNode *getReturnType() { return (*getChildBegin()).get(); }
+  static bool classof(const SDKNode *N);
+  static StringRef getTypeRoleDescription(unsigned Index);
+};
+
+StringRef SDKNodeFunction::getTypeRoleDescription(unsigned Index) {
+  if (Index == 0) {
+    return InsertToBuffer("return");
+  } else if (Index == 1) {
+    return InsertToBuffer("1st parameter");
+  } else if (Index == 2) {
+    return InsertToBuffer("2nd parameter");
+  } else if (Index == 3) {
+    return InsertToBuffer("3rd parameter");
+  } else {
+    llvm::SmallString<4> Buffer;
+    Buffer += std::to_string(Index);
+    Buffer += "th parameter";
+    return InsertToBuffer(Buffer.str());
+  }
+}
+
+class SDKNodeConstructor : public SDKNodeAbstractFunc {
+public:
+  SDKNodeConstructor(SDKNodeInitInfo Info) : SDKNodeAbstractFunc(Info,
+                                                    SDKNodeKind::Constructor) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeGetter : public SDKNodeAbstractFunc {
+public:
+  SDKNodeGetter(SDKNodeInitInfo Info) : SDKNodeAbstractFunc(Info,
+                                                         SDKNodeKind::Getter) {}
+  static bool classof(const SDKNode *N);
+};
+
+class SDKNodeSetter : public SDKNodeAbstractFunc {
+public:
+  SDKNodeSetter(SDKNodeInitInfo Info) : SDKNodeAbstractFunc(Info,
+                                                         SDKNodeKind::Setter) {}
+  static bool classof(const SDKNode *N);
+};
+
+#define NODE_KIND(X)                                                       \
+  bool SDKNode##X::classof(const SDKNode *N) {                             \
+    return N->getKind() == SDKNodeKind::X;                                 \
+  }
+#include "DigesterEnums.def"
+
+
+NodeUniquePtr SDKNode::constructSDKNode(llvm::yaml::MappingNode *Node) {
+  static auto GetScalarString = [&](llvm::yaml::Node *N) -> StringRef {
+    auto WithQuote = cast<llvm::yaml::ScalarNode>(N)->getRawValue();
+    return WithQuote.substr(1, WithQuote.size() - 2);
+  };
+  SDKNodeKind Kind;
+  SDKNodeInitInfo Info;
+  NodeOwnedVector Children;
+
+  for (auto Pair : *Node) {
+    auto Key = GetScalarString(Pair.getKey());
+    if (Key == Key_kind) {
+      Kind = llvm::StringSwitch<SDKNodeKind>(GetScalarString(Pair.getValue()))
+#define NODE_KIND(NAME) .Case(#NAME, SDKNodeKind::NAME)
+#include "DigesterEnums.def"
+      ;
+    } else if (Key == Key_name) {
+      Info.Name = GetScalarString(Pair.getValue());
+    } else if (Key == Key_selfIndex) {
+      Info.SelfIndex = std::stoi(cast<llvm::yaml::ScalarNode>(Pair.getValue())->
+                                 getRawValue());
+    } else if (Key == Key_usr) {
+      Info.USR = GetScalarString(Pair.getValue());
+    } else if (Key == Key_location) {
+      Info.Location = GetScalarString(Pair.getValue());
+    } else if (Key == Key_children) {
+      for (auto &Mapping : *cast<llvm::yaml::SequenceNode>(Pair.getValue())) {
+        Children.push_back(constructSDKNode(cast<llvm::yaml::MappingNode>(&Mapping)));
+      }
+    } else if (Key == Key_printedName) {
+      Info.PrintedName = GetScalarString(Pair.getValue());
+    } else if (Key == Key_moduleName) {
+      Info.ModuleName = GetScalarString(Pair.getValue());
+    } else if (Key == Key_throwing) {
+      Info.IsThrowing = true;
+    } else if (Key == Key_mutating) {
+      Info.IsMutating = true;
+    } else if (Key == Key_typeAttributes) {
+      auto *Seq = cast<llvm::yaml::SequenceNode>(Pair.getValue());
+      for (auto It = Seq->begin(); It != Seq->end(); ++ It) {
+        Info.TypeAttrs.push_back(
+          llvm::StringSwitch<TypeAttrKind>(GetScalarString(&*It))
+#define TYPE_ATTR(X) .Case(#X, TypeAttrKind::TAK_##X)
+#include "swift/AST/Attr.def"
+          .Case("Count", TypeAttrKind::TAK_Count));
+      }
+    } else if (Key == Key_declAttributes) {
+      auto *Seq = cast<llvm::yaml::SequenceNode>(Pair.getValue());
+      for (auto It = Seq->begin(); It != Seq->end(); ++ It) {
+        Info.DeclAttrs.push_back(
+          llvm::StringSwitch<SDKDeclAttrKind>(GetScalarString(&*It))
+#define DECL_ATTR(X) .Case(#X, SDKDeclAttrKind::DAK_##X)
+#include "DigesterEnums.def"
+          );
+      }
+    } else if (Key == Key_declKind) {
+      Info.DKind = llvm::StringSwitch<DeclKind>(GetScalarString(Pair.getValue()))
+#define DECL(X, PARENT) .Case(#X, DeclKind::X)
+#include "swift/AST/DeclNodes.def"
+      ;
+    } else {
+      llvm_unreachable("Cannot parse key.");
+    }
+  };
+  NodeUniquePtr Result = Info.createSDKNode(Kind);
+  for (auto &C : Children) {
+    Result->addChild(std::move(C));
+  }
+  return Result;
+}
+
+/// This is for caching the comparison results between two SDKNodes.
+class SDKNodeEqualContext {
+  using NodePtrAndEqual = llvm::DenseMap<const SDKNode*, bool>;
+  llvm::DenseMap<const SDKNode*, llvm::DenseMap<const SDKNode*, bool>> Data;
+
+public:
+  Optional<bool> getEquality(const SDKNode* Left, const SDKNode* Right) {
+    auto &Map = Data.insert({Left, NodePtrAndEqual()}).first->getSecond();
+    if (Map.count(Right))
+      return Map[Right];
+    return None;
+  }
+
+  void addEquality(const SDKNode* Left, const SDKNode* Right, const bool Value) {
+    Data.insert(std::make_pair(Left, NodePtrAndEqual())).first->getSecond().
+      insert({Right, Value});
+  }
+};
+
+bool SDKNode::operator==(const SDKNode &Other) const {
+  static SDKNodeEqualContext EqualCache;
+  if (auto Cached = EqualCache.getEquality(this, &Other)) {
+    return Cached.getValue();
+  }
+  auto Exit = [&](const bool Result) {
+    EqualCache.addEquality(this, &Other, Result);
+    return Result;
+  };
+
+  if (getKind() != Other.getKind())
+    return Exit(false);
+
+  switch(getKind()) {
+    case SDKNodeKind::TypeNominal:
+    case SDKNodeKind::TypeFunc: {
+      auto Left = this->getAs<SDKNodeType>();
+      auto Right = (&Other)->getAs<SDKNodeType>();
+      return Exit(Left->getTypeAttributes().equals(Right->getTypeAttributes())
+        && Left->getPrintedName() == Right->getPrintedName());
+    }
+
+    case SDKNodeKind::Function:
+    case SDKNodeKind::Constructor:
+    case SDKNodeKind::Getter:
+    case SDKNodeKind::Setter: {
+      auto Left = this->getAs<SDKNodeAbstractFunc>();
+      auto Right = (&Other)->getAs<SDKNodeAbstractFunc>();
+      if (Left->isMutating() ^ Right->isMutating())
+        return Exit(false);
+      if (Left->isThrowing() ^ Right->isThrowing())
+        return Exit(false);
+      SWIFT_FALLTHROUGH;
+    }
+    case SDKNodeKind::TypeDecl:
+    case SDKNodeKind::Var:
+    case SDKNodeKind::TypeAlias:
+    case SDKNodeKind::Root:
+    case SDKNodeKind::Nil: {
+      if (getPrintedName() == Other.getPrintedName() &&
+          Children.size() == Other.Children.size()) {
+        for (unsigned I = 0; I < Children.size(); ++ I) {
+          if (*Children[I] != *Other.Children[I])
+            return Exit(false);
+        }
+        return Exit(true);
+      }
+      return Exit(false);
+    }
+  }
+}
+
+// The pretty printer of a tree of SDKNode
+class SDKNodeDumpVisitor : public SDKNodeVisitor {
+  void dumpSpace(int Num) {
+    while (Num != 0) {
+      llvm::outs() << "\t";
+      Num --;
+    }
+  }
+  void visit(NodePtr Node) override {
+    dumpSpace(depth());
+    llvm::outs() << "[" << Node->getKind() << "]" << Node->getName() << "\n";
+  }
+public:
+  SDKNodeDumpVisitor() {};
+};
+
+static StringRef getPrintedName(Type Ty) {
+  std::string S;
+  llvm::raw_string_ostream OS(S);
+  PrintOptions PO;
+  PO.SkipAttributes = true;
+  Ty.print(OS, PO);
+  return InsertToBuffer(OS.str());
+}
+
+static StringRef getTypeName(Type Ty) {
+  if (Ty->getKind() == TypeKind::Paren) {
+    return InsertToBuffer("Paren");
+  }
+  if (Ty->isVoid()) {
+    return InsertToBuffer("Void");
+  }
+  if (NameAliasType *NAT = dyn_cast<NameAliasType>(Ty.getPointer())) {
+    return NAT->getDecl()->getNameStr();
+  }
+  if (Ty->getAnyNominal()) {
+    return Ty->getAnyNominal()->getNameStr();
+  }
+#define TYPE(id, parent)                                                      \
+  if (Ty->getKind() == TypeKind::id) {                                        \
+    return InsertToBuffer(#id);                                               \
+  }
+#include "swift/AST/TypeNodes.def"
+  llvm_unreachable("Unhandled type name.");
+}
+
+static StringRef calculateUsr(ValueDecl *VD) {
+  llvm::SmallString<64> SS;
+  llvm::raw_svector_ostream OS(SS);
+  if (!ide::printDeclUSR(VD, OS)) {
+    return InsertToBuffer(SS.str());
+  }
+  return StringRef();
+}
+
+static StringRef calculateLocation(ValueDecl *VD) {
+  auto &Ctx = VD->getASTContext();
+  auto &Importer = static_cast<ClangImporter &>(*Ctx.getClangModuleLoader());
+
+  clang::SourceManager &SM = Importer.getClangPreprocessor().getSourceManager();
+  if (ClangNode CN = VD->getClangNode()) {
+    clang::SourceLocation Loc = CN.getLocation();
+    Loc = SM.getFileLoc(Loc);
+    if (Loc.isValid())
+      return InsertToBuffer(Loc.printToString(SM));
+  }
+
+  return StringRef();
+}
+
+static bool isFunctionTypeNoEscape(Type Ty) {
+  if (auto *AFT = Ty->getAs<AnyFunctionType>()) {
+    return AFT->getExtInfo().isNoEscape();
+  }
+  return false;
+}
+
+static StringRef getPrintedName(ValueDecl *VD) {
+  llvm::SmallString<32> Result;
+  if (auto FD = dyn_cast<AbstractFunctionDecl>(VD)) {
+    auto DM = FD->getFullName();
+
+    Result.append(DM.getBaseName().empty() ? "_" : DM.getBaseName().str());
+    Result.append("(");
+    for (auto Arg : DM.getArgumentNames()) {
+      Result.append(Arg.empty() ? "_" : Arg.str());
+      Result.append(":");
+    }
+    Result.append(")");
+    return InsertToBuffer(Result.str());
+  }
+  auto DM = VD->getFullName();
+  Result.append(DM.getBaseName().str());
+  return InsertToBuffer(Result.str());
+}
+
+static bool isFuncThrowing(ValueDecl *VD) {
+  if (auto AF = dyn_cast<AbstractFunctionDecl>(VD)) {
+    return AF->hasThrows();
+  }
+  return false;
+}
+
+static bool isFuncMutating(ValueDecl *VD) {
+  if (auto AF = dyn_cast<FuncDecl>(VD)) {
+    return AF->isMutating();
+  }
+  return false;
+}
+
+static Optional<uint8_t> getSelfIndex(ValueDecl *VD) {
+  if (auto AF = dyn_cast<AbstractFunctionDecl>(VD)) {
+    if (AF->isImportAsInstanceMember())
+      return AF->getSelfIndex();
+  }
+  return None;
+}
+
+SDKNodeInitInfo::SDKNodeInitInfo(Type Ty) : Name(getTypeName(Ty)),
+                                            PrintedName(getPrintedName(Ty)) {
+  if (isFunctionTypeNoEscape(Ty))
+    TypeAttrs.push_back(TypeAttrKind::TAK_noescape);
+}
+
+SDKNodeInitInfo::SDKNodeInitInfo(ValueDecl *VD) :
+    Name(VD->hasName() ? VD->getName().str() : InsertToBuffer("_")),
+    PrintedName(getPrintedName(VD)), DKind(VD->getKind()),
+    USR(calculateUsr(VD)), Location(calculateLocation(VD)),
+    ModuleName(VD->getModuleContext()->getName().str()),
+    IsThrowing(isFuncThrowing(VD)), IsMutating(isFuncMutating(VD)),
+    SelfIndex(getSelfIndex(VD)) {
+  if (VD->getAttrs().getDeprecated(VD->getASTContext()))
+    DeclAttrs.push_back(SDKDeclAttrKind::DAK_deprecated);
+}
+
+NodeUniquePtr SDKNodeInitInfo::createSDKNode(SDKNodeKind Kind) {
+  NodeUniquePtr Result;
+  switch(Kind) {
+#define NODE_KIND(X)                                                           \
+case SDKNodeKind::X:                                                           \
+  Result.reset(static_cast<SDKNode*>(new SDKNode##X(*this)));                  \
+  break;
+#include "DigesterEnums.def"
+  }
+  return Result;
+}
+
+// Recursively construct a node that represents a type, for instance,
+// representing the return value type of a function decl.
+static NodeUniquePtr constructTypeNode(Type T) {
+  NodeUniquePtr Root = SDKNodeInitInfo(T).createSDKNode(SDKNodeKind::TypeNominal);
+
+  if (isa<NameAliasType>(T.getPointer()))
+    return Root;
+
+  if (auto Fun = T->getAs<AnyFunctionType>()) {
+    NodeUniquePtr Root = SDKNodeInitInfo(T).createSDKNode(SDKNodeKind::TypeFunc);
+
+    // Still, return type first
+    Root->addChild(constructTypeNode(Fun->getResult()));
+    Root->addChild(constructTypeNode(Fun->getInput()));
+    return Root;
+  }
+
+  // Keep paren type as a stand-alone level.
+  if (auto *PT = dyn_cast<ParenType>(T.getPointer())) {
+    Root->addChild(constructTypeNode(PT->getSinglyDesugaredType()));
+    return Root;
+  }
+
+  // Handle the case where Type has sub-types.
+  if (auto BGT = T->getAs<BoundGenericType>()) {
+    for (auto Arg : BGT->getGenericArgs()) {
+      Root->addChild(constructTypeNode(Arg));
+    }
+  } else if (auto Tup = T->getAs<TupleType>()) {
+    for (auto Elt : Tup->getElementTypes())
+      Root->addChild(constructTypeNode(Elt));
+  } else if (auto MTT = T->getAs<AnyMetatypeType>()) {
+    Root->addChild(constructTypeNode(MTT->getInstanceType()));
+  } else if (auto ATT = T->getAs<ArchetypeType>()) {
+    for (auto Pro : ATT->getConformsTo()) {
+      Root->addChild(constructTypeNode(Pro->getDeclaredType()));
+    }
+  }
+  return Root;
+}
+
+// Construct a node for a function decl. The first child of the function decl
+// is guaranteed to be the return value type of this function.
+// We sometimes skip the first parameter because it can be metatype of dynamic
+// this if the function is a member function.
+static NodeUniquePtr constructFunctionNode(FuncDecl* FD, SDKNodeKind Kind,
+                                           bool SkipFirst) {
+  auto Func = SDKNodeInitInfo(FD).createSDKNode(Kind);
+  Func->addChild(constructTypeNode(FD->getResultType()));
+  for (auto *paramList : FD->getParameterLists()) {
+    for (auto param : *paramList)
+      Func->addChild(constructTypeNode(param->getInterfaceType()));
+  }
+  if (SkipFirst) {
+    Func->removeChild(Func->getChildBegin() + 1);
+  }
+  return Func;
+}
+
+static NodeUniquePtr constructInitNode(ConstructorDecl *CD) {
+  auto Func = SDKNodeInitInfo(CD).createSDKNode(SDKNodeKind::Constructor);
+  Func->addChild(constructTypeNode(CD->getResultType()));
+  for (auto *paramList : CD->getParameterLists()) {
+    for (auto param : *paramList)
+      Func->addChild(constructTypeNode(param->getInterfaceType()));
+  }
+
+  // Always remove the first parameter in init.
+  Func->removeChild(Func->getChildBegin() + 1);
+  return Func;
+}
+
+static bool shouldIgnore(Decl *D) {
+  if (D->isPrivateStdlibDecl(false))
+    return true;
+  if (AvailableAttr::isUnavailable(D))
+    return true;
+  if (isa<ConstructorDecl>(D))
+    return false;
+  if (isa<OperatorDecl>(D))
+    return true;
+  if (auto VD = dyn_cast<ValueDecl>(D)) {
+    if (VD->isOperator())
+      return true;
+    if (VD->getName().empty())
+      return true;
+  }
+
+  if (auto *ClangD = D->getClangDecl()) {
+    if (isa<clang::ObjCIvarDecl>(ClangD))
+      return true;
+    if (isa<clang::FieldDecl>(ClangD))
+      return true;
+    if (ClangD->hasAttr<clang::SwiftPrivateAttr>())
+      return true;
+  }
+  return false;
+}
+
+static void addMembersToRoot(NodeUniquePtr &Root, IterableDeclContext *Context);
+
+static NodeUniquePtr constructTypeDeclNode(NominalTypeDecl *NTD) {
+  auto TypeNode = SDKNodeInitInfo(NTD).createSDKNode(SDKNodeKind::TypeDecl);
+  addMembersToRoot(TypeNode, NTD);
+  for (auto Ext : NTD->getExtensions()) {
+    addMembersToRoot(TypeNode, Ext);
+  }
+  return TypeNode;
+}
+
+static NodeUniquePtr constructVarNode(ValueDecl *VD) {
+  auto Var = SDKNodeInitInfo(VD).createSDKNode(SDKNodeKind::Var);
+  Var->addChild(constructTypeNode(VD->getInterfaceType()));
+  if (auto VAD = dyn_cast<AbstractStorageDecl>(VD)) {
+    if (auto Getter = VAD->getGetter())
+      Var->addChild(constructFunctionNode(Getter, SDKNodeKind::Getter, false));
+    if (auto Setter = VAD->getSetter())
+      Var->addChild(constructFunctionNode(Setter, SDKNodeKind::Setter, false));
+  }
+  return Var;
+}
+
+static NodeUniquePtr constructTypeAliasNode(TypeAliasDecl *TAD) {
+  auto Alias = SDKNodeInitInfo(TAD).createSDKNode(SDKNodeKind::TypeAlias);
+  Alias->addChild(constructTypeNode(TAD->getUnderlyingType()));
+  return Alias;
+}
+
+static void addMembersToRoot(NodeUniquePtr &Root, IterableDeclContext *Context) {
+  for (auto *Member : Context->getMembers()) {
+    if (shouldIgnore(Member))
+      continue;
+    if (auto Func = dyn_cast<FuncDecl>(Member)) {
+      Root->addChild(constructFunctionNode(Func, SDKNodeKind::Function, true));
+    } else if (auto CD = dyn_cast<ConstructorDecl>(Member)) {
+      Root->addChild(constructInitNode(CD));
+    } else if (auto VD = dyn_cast<VarDecl>(Member)) {
+      Root->addChild(constructVarNode(VD));
+    } else if (auto TAD = dyn_cast<TypeAliasDecl>(Member)) {
+      Root->addChild(constructTypeAliasNode(TAD));
+    } else if (auto EED = dyn_cast<EnumElementDecl>(Member)) {
+      Root->addChild(constructVarNode(EED));
+    } else if (auto NTD = dyn_cast<NominalTypeDecl>(Member)) {
+      Root->addChild(constructTypeDeclNode(NTD));
+    }
+  }
+}
+
+static void emitSDKNodeRoot(raw_ostream&, NodeUniquePtr&);
+
+static std::pair<std::unique_ptr<llvm::MemoryBuffer>, NodeUniquePtr>
+parseJsonEmit(StringRef);
+
+class SwiftDeclCollector : public VisibleDeclConsumer {
+
+  std::vector<std::unique_ptr<llvm::MemoryBuffer>> OwnedBuffers;
+  NodeUniquePtr RootNode;
+  llvm::DenseSet<ValueDecl*> KnownDecls;
+  // Collected and sorted after we get all of them.
+  std::vector<ValueDecl *> ClangMacros;
+
+public:
+  void visitAllRoots(SDKNodeVisitor &Visitor) {
+    SDKNode::preorderVisit(RootNode.get(), Visitor);
+  }
+  SwiftDeclCollector() : RootNode(SDKNodeRoot::getInstance()) {}
+
+  // Construct all roots vector from a given file where a forest was
+  // previously dumped.
+  void deSerialize(StringRef Filename) {
+    auto Pair = parseJsonEmit(Filename);
+    OwnedBuffers.push_back(std::move(Pair.first));
+    RootNode = std::move(Pair.second);
+  }
+
+  // Serialize the content of all roots to a given file using JSON format.
+  void serialize(StringRef Filename) {
+    std::error_code EC;
+    llvm::raw_fd_ostream fs(Filename, EC, llvm::sys::fs::F_None);
+    emitSDKNodeRoot(fs, RootNode);
+  }
+
+  // After collecting decls, either from imported modules or from a previously
+  // serialized JSON file, using this function to get the root of the SDK.
+  NodePtr getSDKRoot() {
+    return RootNode.get();
+  }
+
+  void printTopLevelNames() {
+    for (auto &Node : RootNode->getChildren()) {
+      llvm::outs() << Node->getKind() << ": " << Node->getName() << '\n';
+    }
+  }
+
+public:
+  void lookupVisibleDecls(ArrayRef<Module *> Modules) {
+    for (auto M : Modules) {
+      llvm::SmallVector<Decl*, 512> Decls;
+      M->getDisplayDecls(Decls);
+      for (auto D : Decls) {
+        if (auto VD = dyn_cast<ValueDecl>(D))
+          foundDecl(VD, DeclVisibilityKind::DynamicLookup);
+      }
+    }
+
+    // Now sort the macros before processing so that we can have deterministic
+    // output.
+    llvm::array_pod_sort(ClangMacros.begin(), ClangMacros.end(),
+       [](ValueDecl * const *lhs,
+          ValueDecl * const *rhs) -> int {
+         return (*lhs)->getNameStr().compare((*rhs)->getNameStr());
+       });
+
+    for (auto *VD : ClangMacros)
+      processDecl(VD);
+  }
+
+  void processDecl(ValueDecl *VD) {
+    if (shouldIgnore(VD))
+      return;
+
+    if (auto FD = dyn_cast<FuncDecl>(VD)) {
+      RootNode->addChild(constructFunctionNode(FD, SDKNodeKind::Function, false));
+    } else if (auto NTD = dyn_cast<NominalTypeDecl>(VD)) {
+      RootNode->addChild(constructTypeDeclNode(NTD));
+    }
+    if (auto VAD = dyn_cast<VarDecl>(VD)) {
+      RootNode->addChild(constructVarNode(VAD));
+    }
+    if (auto TAD = dyn_cast<TypeAliasDecl>(VD)) {
+      RootNode->addChild(constructTypeAliasNode(TAD));
+    }
+  }
+
+  void foundDecl(ValueDecl *VD, DeclVisibilityKind Reason) override {
+    if (KnownDecls.count(VD))
+      return;
+    KnownDecls.insert(VD);
+
+    if (VD->getClangMacro()) {
+      // Collect macros, we will sort them afterwards.
+      ClangMacros.push_back(VD);
+      return;
+    }
+
+    processDecl(VD);
+  }
+};
+} // End of anonymous namespace.
+
+
+namespace swift {
+  namespace json {
+  // In the namespace of swift::json, we define several functions so that the
+  // JSON serializer will know how to interpret and dump types defined in this
+  // file.
+  template<>
+    struct ScalarEnumerationTraits<SDKNodeKind> {
+      static void enumeration(Output &out, SDKNodeKind &value) {
+#define NODE_KIND(X) out.enumCase(value, #X, SDKNodeKind::X);
+#include "DigesterEnums.def"
+      }
+    };
+
+    template<>
+    struct ScalarEnumerationTraits<TypeAttrKind> {
+      static void enumeration(Output &out, TypeAttrKind &value) {
+#define TYPE_ATTR(X) out.enumCase(value, #X, TypeAttrKind::TAK_##X);
+#include "swift/AST/Attr.def"
+        out.enumCase(value, "Count", TypeAttrKind::TAK_Count);
+      }
+    };
+
+    template<>
+    struct ScalarEnumerationTraits<SDKDeclAttrKind> {
+      static void enumeration(Output &out, SDKDeclAttrKind &value) {
+#define DECL_ATTR(X) out.enumCase(value, #X, SDKDeclAttrKind::DAK_##X);
+#include "DigesterEnums.def"
+      }
+    };
+
+    template<>
+    struct ScalarEnumerationTraits<DeclKind> {
+      static void enumeration(Output &out, DeclKind &value) {
+#define DECL(X, PARENT) out.enumCase(value, #X, DeclKind::X);
+#include "swift/AST/DeclNodes.def"
+      }
+    };
+
+    template<>
+    struct ObjectTraits<NodeUniquePtr> {
+      static void mapping(Output &out, NodeUniquePtr &value) {
+        auto Kind = value->getKind();
+        auto Name = value->getName();
+        auto PrintedName = value->getPrintedName();
+
+        out.mapRequired(Key_kind, Kind);
+        out.mapRequired(Key_name, Name);
+        out.mapRequired(Key_printedName, PrintedName);
+
+        if (auto D = dyn_cast<SDKNodeDecl>(value.get())) {
+          DeclKind DK = D->getDeclKind();
+          StringRef Usr = D->getUsr();
+          StringRef Location = D->getLocation();
+          StringRef ModuleName = D->getModuleName();
+
+          out.mapRequired(Key_declKind, DK);
+          out.mapRequired(Key_usr, Usr);
+          out.mapRequired(Key_location, Location);
+          out.mapRequired(Key_moduleName, ModuleName);
+
+          if (auto F = dyn_cast<SDKNodeAbstractFunc>(value.get())) {
+            if (bool isThrowing = F->isThrowing())
+              out.mapRequired(Key_throwing, isThrowing);
+            if (bool isMutating = F->isMutating())
+              out.mapRequired(Key_mutating, isMutating);
+            if (F->hasSelfIndex()) {
+              auto Index = F->getSelfIndex();
+              out.mapRequired(Key_selfIndex, Index);
+            }
+          }
+          auto Attributes = D->getDeclAttributes();
+          if (!Attributes.empty())
+            out.mapRequired(Key_declAttributes, Attributes);
+        } else if (auto T = dyn_cast<SDKNodeType>(value.get())) {
+          auto Attributes = T->getTypeAttributes();
+          if (!Attributes.empty())
+            out.mapRequired(Key_typeAttributes, Attributes);
+        }
+        if (!value->isLeaf()) {
+          ArrayRef<NodeUniquePtr> Children = value->getChildren();
+          out.mapRequired(Key_children, Children);
+        }
+      }
+    };
+
+    template<>
+    struct ArrayTraits<ArrayRef<NodeUniquePtr>> {
+      static size_t size(Output &out, ArrayRef<NodeUniquePtr> &seq) {
+        return seq.size();
+      }
+      static NodeUniquePtr &element(Output &, ArrayRef<NodeUniquePtr> &seq,
+                                    size_t index) {
+        return const_cast<NodeUniquePtr&>(seq[index]);
+      }
+    };
+
+    template<>
+    struct ArrayTraits<ArrayRef<TypeAttrKind>> {
+      static size_t size(Output &out, ArrayRef<TypeAttrKind> &seq) {
+        return seq.size();
+      }
+      static TypeAttrKind& element(Output &, ArrayRef<TypeAttrKind> &seq,
+                                   size_t index) {
+        return const_cast<TypeAttrKind&>(seq[index]);
+      }
+    };
+
+    template<>
+    struct ArrayTraits<ArrayRef<SDKDeclAttrKind>> {
+      static size_t size(Output &out, ArrayRef<SDKDeclAttrKind> &seq) {
+        return seq.size();
+      }
+      static SDKDeclAttrKind& element(Output &, ArrayRef<SDKDeclAttrKind> &seq,
+                                   size_t index) {
+        return const_cast<SDKDeclAttrKind&>(seq[index]);
+      }
+    };
+  }
+}
+
+namespace  {// Anonymous namespace resumes.
+
+// Serialize a forest of SDKNode trees to the given stream.
+static void emitSDKNodeRoot(llvm::raw_ostream &os, NodeUniquePtr &Root) {
+  json::Output yout(os);
+  yout << Root;
+}
+
+// Deserialize an SDKNode tree.
+std::pair<std::unique_ptr<llvm::MemoryBuffer>, NodeUniquePtr>
+parseJsonEmit(StringRef FileName) {
+  namespace yaml = llvm::yaml;
+
+  // Load the input file.
+  llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> FileBufOrErr =
+  llvm::MemoryBuffer::getFileOrSTDIN(FileName);
+  if (!FileBufOrErr) {
+    llvm_unreachable("Failed to read JSON file");
+  }
+  StringRef Buffer = FileBufOrErr->get()->getBuffer();
+  llvm::SourceMgr SM;
+  yaml::Stream Stream(Buffer, SM);
+  NodeUniquePtr Result;
+  for (auto DI = Stream.begin(); DI != Stream.end(); ++ DI) {
+    assert(DI != Stream.end() && "Failed to read a document");
+    yaml::Node *N = DI->getRoot();
+    assert(N && "Failed to find a root");
+    Result = SDKNode::constructSDKNode(cast<yaml::MappingNode>(N));
+  }
+  return {std::move(FileBufOrErr.get()), std::move(Result)};
+}
+
+// Given two NodeVector, this matches SDKNode by the order of their appearance
+// in the respective NodeVector. We use this in the order-sensitive cases, such
+// as parameters in a function decl.
+class SequentialNodeMatcher : public NodeMatcher {
+  ArrayRef<NodeUniquePtr> Left;
+  ArrayRef<NodeUniquePtr> Right;
+  MatchedNodeListener &Listener;
+public:
+  SequentialNodeMatcher(ArrayRef<NodeUniquePtr> Left,
+                        ArrayRef<NodeUniquePtr> Right,
+                        MatchedNodeListener &Listener) :
+                          Left(Left), Right(Right), Listener(Listener) {}
+
+  virtual void match() override {
+    for (unsigned long i = 0; i < std::max(Left.size(), Right.size()); i ++) {
+      auto L = i < Left.size() ? Left[i].get() : SDKNodeNil::getInstance();
+      auto R = i < Right.size() ? Right[i].get() : SDKNodeNil::getInstance();
+      if (*L == *R)
+        continue;
+      if (L->getKind() == SDKNodeKind::Nil || R->getKind() == SDKNodeKind::Nil)
+        Listener.foundRemoveAddMatch(L, R);
+      else
+        Listener.foundMatch(L, R);
+    }
+  }
+};
+struct NodeMatch {
+  NodePtr Left;
+  NodePtr Right;
+};
+
+class BestMatchMatcher : public NodeMatcher {
+  NodeVector &Left;
+  NodeVector &Right;
+  llvm::function_ref<bool(NodePtr, NodePtr)> CanMatch;
+  llvm::function_ref<bool(NodeMatch, NodeMatch)> IsFirstMatchBetter;
+  MatchedNodeListener &Listener;
+  llvm::SmallPtrSet<NodePtr, 16> MatchedRight;
+
+  bool internalCanMatch(NodePtr L, NodePtr R) {
+    return MatchedRight.count(R) == 0 && CanMatch(L, R);
+  }
+
+  Optional<NodePtr> findBestMatch(NodePtr Pin, NodeVector& Candidates) {
+    Optional<NodePtr> Best;
+    for (auto Can : Candidates) {
+      if (!internalCanMatch(Pin, Can))
+        continue;
+      if (!Best.hasValue() ||
+          IsFirstMatchBetter({Pin, Can}, {Pin, Best.getValue()}))
+        Best = Can;
+    }
+    return Best;
+  }
+
+public:
+  BestMatchMatcher(NodeVector &Left, NodeVector &Right,
+                   llvm::function_ref<bool(NodePtr, NodePtr)> CanMatch,
+                   llvm::function_ref<bool(NodeMatch, NodeMatch)> IsFirstMatchBetter,
+                   MatchedNodeListener &Listener) : Left(Left), Right(Right),
+  CanMatch(CanMatch),
+  IsFirstMatchBetter(IsFirstMatchBetter),
+  Listener(Listener){}
+
+  virtual void match() {
+    for (auto L : Left) {
+      if (auto Best = findBestMatch(L, Right)) {
+        MatchedRight.insert(Best.getValue());
+        Listener.foundMatch(L, Best.getValue());
+      }
+    }
+  }
+};
+
+class RemovedAddedNodeMatcher : public NodeMatcher, public MatchedNodeListener {
+  NodeVector &Removed;
+  NodeVector &Added;
+  MatchedNodeListener &Listener;
+
+  NodeVector RemovedMatched;
+  NodeVector AddedMatched;
+
+  void handleUnmatch(NodeVector &Matched, NodeVector &All, bool Left) {
+    for (auto A : SDKNodeVectorViewer(All,
+                            [&](SDKNode *N) { return !contains(Matched, N);})) {
+      if (Left)
+        Listener.foundRemoveAddMatch(A, SDKNodeNil::getInstance());
+      else
+        Listener.foundRemoveAddMatch(SDKNodeNil::getInstance(), A);
+    }
+  }
+
+  bool detectFuncToProperty(SDKNode *R, SDKNode *A) {
+    if (R->getKind() == SDKNodeKind::Function) {
+      if (A->getKind() == SDKNodeKind::Var) {
+        if (A->getName().compare_lower(R->getName()) == 0) {
+          R->annotate(NodeAnnotation::GetterToProperty);
+        } else if (R->getName().startswith("get") &&
+                   R->getName().substr(3).compare_lower(A->getName()) == 0) {
+          R->annotate(NodeAnnotation::GetterToProperty);
+        } else if (R->getName().startswith("set") &&
+                   R->getName().substr(3).compare_lower(A->getName()) == 0) {
+          R->annotate(NodeAnnotation::SetterToProperty);
+        } else {
+          return false;
+        }
+        foundMatch(R, A);
+        return true;
+      }
+    }
+    return false;
+  }
+
+  static bool isAnonymousEnum(SDKNodeDecl *N) {
+    return N->getKind() == SDKNodeKind::Var &&
+      N->getUsr().startswith("c:@Ea@");
+  }
+
+  static bool isNominalEnum(SDKNodeDecl *N) {
+    return N->getKind() == SDKNodeKind::TypeDecl &&
+    N->getUsr().startswith("c:@E@");
+  }
+
+  static Optional<StringRef> getLastPartOfUsr(SDKNodeDecl *N) {
+    auto LastPartIndex = N->getUsr().find_last_of('@');
+    if (LastPartIndex == StringRef::npos)
+      return None;
+    return N->getUsr().substr(LastPartIndex + 1);
+  }
+
+  bool detectModernizeEnum(SDKNodeDecl *R, SDKNodeDecl *A) {
+    if (!isAnonymousEnum(R) || !isNominalEnum(A))
+      return false;
+
+    auto LastPartOfR = getLastPartOfUsr(R);
+    if (!LastPartOfR)
+      return false;
+
+    for (auto &Child : A->getChildren()) {
+      if (auto VC = dyn_cast<SDKNodeVar>(Child.get())) {
+      auto LastPartOfA = getLastPartOfUsr(VC);
+        if (LastPartOfA && LastPartOfR.getValue() == LastPartOfA.getValue()) {
+          R->annotate(NodeAnnotation::ModernizeEnum);
+          llvm::Twine FullName = llvm::Twine().concat(A->getName()).concat(".").
+            concat(Child->getName());
+          R->addAnnotateComment(NodeAnnotation::ModernizeEnum,
+                                InsertToBuffer(FullName.str()));
+          foundMatch(R, A);
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+
+  bool detectSameAnonymousEnum(SDKNodeDecl *R, SDKNodeDecl *A) {
+    if (!isAnonymousEnum(R) || !isAnonymousEnum(A))
+      return false;
+    auto LastR = getLastPartOfUsr(R);
+    auto LastA = getLastPartOfUsr(A);
+    if (LastR && LastA && LastR.getValue() == LastA.getValue()) {
+      foundMatch(R, A);
+      return true;
+    }
+    return false;
+  }
+
+  static bool isNameTooSimple(StringRef N) {
+    static std::vector<std::string> SimpleNames = {"unit", "data", "log", "coding",
+      "url", "name", "date", "datecomponents", "notification", "urlrequest",
+      "personnamecomponents", "measurement", "dateinterval", "indexset"};
+    return std::find(SimpleNames.begin(), SimpleNames.end(), N) !=
+      SimpleNames.end();
+  }
+
+  static bool isSimilarName(StringRef L, StringRef R) {
+    auto LL = L.lower();
+    auto RR = R.lower();
+    if (isNameTooSimple(LL) || isNameTooSimple(RR))
+      return false;
+    if (((StringRef)LL).startswith(RR) || ((StringRef)RR).startswith(LL))
+      return true;
+    if (((StringRef)LL).startswith((llvm::Twine("ns") + RR).str()) ||
+        ((StringRef)RR).startswith((llvm::Twine("ns") + LL).str()))
+      return true;
+    if (((StringRef)LL).endswith(RR) || ((StringRef)RR).endswith(LL))
+      return true;
+    return false;
+  }
+
+  /// Whether two decls of different decl kinds can be considered as rename.
+  static bool isDeclKindCrossable(DeclKind DK1, DeclKind DK2, bool First) {
+    if (DK1 == DK2)
+      return true;
+    if (DK1 == DeclKind::Var && DK2 == DeclKind::EnumElement)
+      return true;
+    return First && isDeclKindCrossable(DK2, DK1, false);
+  }
+
+  static bool isRename(NodePtr L, NodePtr R) {
+    if (L->getKind() != R->getKind())
+      return false;
+    if (isa<SDKNodeConstructor>(L))
+      return false;
+    if (auto LD = dyn_cast<SDKNodeDecl>(L)) {
+      auto *RD = R->getAs<SDKNodeDecl>();
+      return isDeclKindCrossable(LD->getDeclKind(), RD->getDeclKind(), true) &&
+        isSimilarName(LD->getName(), RD->getName());
+    }
+    return false;
+  }
+
+  static bool isBetterMatch(NodeMatch Match1, NodeMatch Match2) {
+    assert(Match1.Left == Match2.Left);
+    auto Left = Match1.Left;
+    auto *M1Right = Match1.Right->getAs<SDKNodeDecl>();
+    auto *M2Right = Match2.Right->getAs<SDKNodeDecl>();
+
+    // Consider non-deprecated nodes better matches.
+    auto Dep1 = M1Right->isDeprecated();
+    auto Dep2 = M2Right->isDeprecated();
+    if (Dep1 ^ Dep2) {
+      return Dep2;
+    }
+
+    // If two names are identical, measure whose printed names is closer.
+    if (M1Right->getName() == M2Right->getName()) {
+      return
+        M1Right->getPrintedName().edit_distance(Left->getPrintedName()) <
+        M2Right->getPrintedName().edit_distance(Left->getPrintedName());
+    }
+
+#define DIST(A, B) (std::max(A, B) - std::min(A, B))
+    return
+      DIST(Left->getName().size(), Match1.Right->getName().size()) <
+      DIST(Left->getName().size(), Match2.Right->getName().size());
+#undef DIST
+  }
+
+  void foundMatch(NodePtr R, NodePtr A) override {
+    Listener.foundRemoveAddMatch(R, A);
+    RemovedMatched.push_back(R);
+    AddedMatched.push_back(A);
+  }
+
+public:
+  RemovedAddedNodeMatcher(NodeVector &Removed, NodeVector &Added,
+                          MatchedNodeListener &Listener) : Removed(Removed),
+                            Added(Added), Listener(Listener) {}
+
+  virtual void match() override {
+    auto IsDecl = [](NodePtr P) { return isa<SDKNodeDecl>(P); };
+    for (auto R : SDKNodeVectorViewer(Removed, IsDecl)) {
+      for (auto A : SDKNodeVectorViewer(Added, IsDecl)) {
+        auto RD = R->getAs<SDKNodeDecl>();
+        auto AD = A->getAs<SDKNodeDecl>();
+        if (detectFuncToProperty(RD, AD) || detectModernizeEnum(RD, AD) ||
+            detectSameAnonymousEnum(RD, AD)) {
+          break;
+        }
+      }
+    }
+
+    // Rename detection starts.
+    NodeVector RenameLeft;
+    NodeVector RenameRight;
+
+
+    for (auto Remain : SDKNodeVectorViewer(Removed, [&](SDKNode *N)
+                                 { return !contains(RemovedMatched, N); })) {
+      RenameLeft.push_back(Remain);
+    }
+
+    for (auto Remain : SDKNodeVectorViewer(Added, [&](SDKNode *N)
+                                      { return !contains(AddedMatched, N); })) {
+      RenameRight.push_back(Remain);
+    }
+
+    BestMatchMatcher RenameMatcher(RenameLeft, RenameRight, isRename,
+                                   isBetterMatch, *this);
+    RenameMatcher.match();
+    // Rename detection ends.
+
+    handleUnmatch(RemovedMatched, Removed, true);
+    handleUnmatch(AddedMatched, Added, false);
+  }
+};
+
+// Given two NodeVector, this matches SDKNode by the their names; only Nodes with
+// the identical names will be matched. We use this in name-sensitive but
+// order-insensitive cases, such as matching types in a module.
+class SameNameNodeMatcher : public NodeMatcher {
+  NodeVector &Left;
+  NodeVector &Right;
+  MatchedNodeListener &Listener;
+
+  enum class NameMatchKind {
+    USR,
+    PrintedName,
+    PrintedNameAndUSR,
+  };
+
+  // Given two SDK nodes, figure out the reason for why they have the same name.
+  Optional<NameMatchKind> getNameMatchKind(SDKNode *L, SDKNode *R) {
+    if (L->getKind() != R->getKind())
+      return None;
+    auto *LD = L->getAs<SDKNodeDecl>();
+    auto *RD = R->getAs<SDKNodeDecl>();
+    assert(LD && RD);
+    auto NameEqual = LD->getPrintedName() == RD->getPrintedName();
+    auto UsrEqual = LD->getUsr() == RD->getUsr();
+    if (NameEqual && UsrEqual)
+      return NameMatchKind::PrintedNameAndUSR;
+    else if (NameEqual)
+      return NameMatchKind::PrintedName;
+    else if (UsrEqual)
+      return NameMatchKind::USR;
+    else
+      return None;
+  }
+
+  struct NameMatchCandidate {
+    SDKNode *Node;
+    NameMatchKind Kind;
+  };
+
+  // Get the priority for the favored name match kind. Favored name match kind
+  // locats before less favored ones.
+  ArrayRef<NameMatchKind> getNameMatchKindPriority(SDKNodeKind Kind) {
+    if (Kind == SDKNodeKind::Function) {
+      static NameMatchKind FuncPriority[] = { NameMatchKind::PrintedNameAndUSR,
+                                              NameMatchKind::USR,
+                                              NameMatchKind::PrintedName };
+      return FuncPriority;
+    } else {
+      static NameMatchKind OtherPriority[] = { NameMatchKind::PrintedNameAndUSR,
+                                               NameMatchKind::PrintedName };
+      return OtherPriority;
+    }
+  }
+
+  // Given a list and a priority, find the best matched candidate SDK node.
+  SDKNode* findBestNameMatch(ArrayRef<NameMatchCandidate> Candidates,
+                             ArrayRef<NameMatchKind> Kinds) {
+    for (auto Kind : Kinds)
+      for (auto &Can : Candidates)
+        if (Kind == Can.Kind)
+          return Can.Node;
+    return nullptr;
+  }
+
+public:
+  SameNameNodeMatcher(NodeVector &Left, NodeVector &Right,
+                      MatchedNodeListener &Listener) : Left(Left), Right(Right),
+                                                       Listener(Listener) {}
+  void match() override ;
+};
+
+void SameNameNodeMatcher::match() {
+  NodeVector MatchedRight;
+  NodeVector Removed;
+  NodeVector Added;
+
+  for (auto *LN : Left) {
+
+    // This collects all the candidates that can match with LN.
+    std::vector<NameMatchCandidate> Candidates;
+    for (auto *RN : Right) {
+
+      // If RN has matched before, ignore it.
+      if (contains(MatchedRight, RN))
+        continue;
+
+      // If LN and RN have the same name for some reason, keep track of RN.
+      if (auto Kind = getNameMatchKind(LN, RN))
+        Candidates.push_back({RN, Kind.getValue()});
+    }
+
+    // Try to find the best match among all the candidates by the priority name
+    // match kind list.
+    if (auto Match = findBestNameMatch(Candidates,
+                                    getNameMatchKindPriority(LN->getKind()))) {
+      Listener.foundMatch(LN, Match);
+      MatchedRight.push_back(Match);
+    } else {
+      Removed.push_back(LN);
+    }
+  }
+  for (auto &R : Right) {
+    if (!contains(MatchedRight, R)) {
+      Added.push_back(R);
+    }
+  }
+  RemovedAddedNodeMatcher(Removed, Added, Listener).match();
+}
+
+// The recursive version of sequential matcher. We do not only match two vectors
+// of NodePtr but also their descendents.
+class SequentialRecursiveMatcher : public NodeMatcher {
+  NodePtr &Left;
+  NodePtr &Right;
+  MatchedNodeListener &Listener;
+
+  void matchInternal(NodePtr L, NodePtr R) {
+    Listener.foundMatch(L, R);
+    if (!L || !R)
+      return;
+    for (unsigned I = 0; I < std::max(L->getChildrenCount(),
+                                      R->getChildrenCount()); ++ I) {
+      auto Left = I < L->getChildrenCount() ? L->childAt(I) : nullptr;
+      auto Right = I < R->getChildrenCount() ? R->childAt(I): nullptr;
+      matchInternal(Left, Right);
+    }
+  }
+
+public:
+  SequentialRecursiveMatcher(NodePtr &Left, NodePtr &Right,
+                             MatchedNodeListener &Listener) : Left(Left),
+                              Right(Right), Listener(Listener) {}
+  virtual void match() override {
+    matchInternal(Left, Right);
+  }
+};
+
+
+// This is the interface of all passes on the given trees rooted at Left and Right.
+class SDKTreeDiffPass {
+public:
+  virtual void pass(NodePtr Left, NodePtr Right) = 0;
+  virtual ~SDKTreeDiffPass() {}
+};
+
+using NodePairVector = std::vector<std::pair<NodePtr, NodePtr>>;
+
+// This map keeps track of updated nodes; thus we can conveniently find out what
+// is the counterpart of a node before or after being updated.
+class UpdatedNodesMap : public MatchedNodeListener {
+  NodePairVector MapImpl;
+
+public:
+  virtual void foundMatch(NodePtr Left, NodePtr Right) {
+    assert(Left->getKind() != SDKNodeKind::Nil &&
+           Right->getKind() != SDKNodeKind::Nil &&
+           "Not update operation.");
+    MapImpl.push_back(std::make_pair(Left, Right));
+  }
+
+  NodePtr findUpdateCounterpart(NodePtr Node) const {
+    assert(Node->isAnnotatedAs(NodeAnnotation::Updated) && "Not update operation.");
+    auto FoundPair = std::find_if(MapImpl.begin(), MapImpl.end(),
+                        [&](std::pair<NodePtr, NodePtr> Pair) {
+      return Pair.second == Node || Pair.first == Node;
+    });
+    assert(FoundPair != MapImpl.end() && "Cannot find update counterpart.");
+    return Node == FoundPair->first ? FoundPair->second : FoundPair->first;
+  }
+};
+
+void detectThrowing(NodePtr L, NodePtr R) {
+  assert(L->getKind() == R->getKind());
+  if (auto LF = dyn_cast<SDKNodeAbstractFunc>(L)) {
+    auto RF = R->getAs<SDKNodeAbstractFunc>();
+    if (!LF->isThrowing() && RF->isThrowing()) {
+      LF->annotate(NodeAnnotation::NowThrowing);
+    }
+  }
+}
+
+void detectMutating(NodePtr L, NodePtr R) {
+  assert(L->getKind() == R->getKind());
+  if (auto LF = dyn_cast<SDKNodeAbstractFunc>(L)) {
+    auto RF = R->getAs<SDKNodeAbstractFunc>();
+    if (!LF->isMutating() && RF->isMutating()) {
+      LF->annotate(NodeAnnotation::NowMutating);
+    }
+  }
+}
+
+static void detectRename(NodePtr L, NodePtr R) {
+  assert(L->getKind() == R->getKind());
+  if (isa<SDKNodeDecl>(L) && L->getPrintedName() != R->getPrintedName()) {
+    L->annotate(NodeAnnotation::Rename);
+    L->annotate(NodeAnnotation::RenameOldName);
+    L->addAnnotateComment(NodeAnnotation::RenameOldName, L->getPrintedName());
+    L->annotate(NodeAnnotation::RenameNewName);
+    L->addAnnotateComment(NodeAnnotation::RenameNewName, R->getPrintedName());
+  }
+}
+
+// This is first pass on two given SDKNode trees. This pass removes the common part
+// of two versions of SDK, leaving only the changed part.
+class PrunePass : public MatchedNodeListener, public SDKTreeDiffPass {
+  static void removeCommonChildren(NodePtr Left, NodePtr Right) {
+    llvm::SmallPtrSet<NodePtr, 16> LeftToRemove;
+    llvm::SmallPtrSet<NodePtr, 16> RightToRemove;
+    for (auto &LC : Left->getChildren()) {
+      for (auto &RC : Right->getChildren()) {
+        if (*LC == *RC) {
+          LeftToRemove.insert(LC.get());
+          RightToRemove.insert(RC.get());
+          break;
+        }
+      }
+    }
+    for (NodePtr L : LeftToRemove)
+      Left->removeChild(L);
+    for (NodePtr R : RightToRemove)
+      Right->removeChild(R);
+  }
+
+  std::unique_ptr<UpdatedNodesMap> UpdateMap;
+
+public:
+  PrunePass() : UpdateMap(new UpdatedNodesMap()) {}
+
+  virtual void foundRemoveAddMatch(NodePtr Left, NodePtr Right) override {
+    if (Left->getKind() == SDKNodeKind::Nil)
+      Right->annotate(NodeAnnotation::Added);
+    else if (Right->getKind() == SDKNodeKind::Nil) {
+      Left->annotate(NodeAnnotation::Removed);
+    } else if (Right->getKind() == Left->getKind()) {
+      foundMatch(Left, Right);
+    } else {
+      Left->annotate(NodeAnnotation::Removed);
+      Right->annotate(NodeAnnotation::Added);
+    }
+  }
+
+  virtual void foundMatch(NodePtr Left, NodePtr Right) override {
+    assert(Left->getKind() == Right->getKind());
+    SDKNodeKind Kind = Left->getKind();
+    assert(Left->getKind() != SDKNodeKind::Nil &&
+           Right->getKind() != SDKNodeKind::Nil);
+    assert(Kind == SDKNodeKind::Root || *Left != *Right);
+
+    Left->annotate(NodeAnnotation::Updated);
+    Right->annotate(NodeAnnotation::Updated);
+    // Push the updated node to the map for future reference.
+    UpdateMap->foundMatch(Left, Right);
+    detectRename(Left, Right);
+    detectThrowing(Left, Right);
+    detectMutating(Left, Right);
+
+    switch(Kind) {
+    case SDKNodeKind::Root:
+    case SDKNodeKind::TypeDecl: {
+      // If the matched nodes are both modules, remove the contained
+      // type decls that are identical. If the matched nodes are both type decls,
+      // remove the contained function decls that are identical.
+      removeCommonChildren(Left, Right);
+      NodeVector LeftChildren;
+      NodeVector RightChildren;
+      Left->collectChildren(LeftChildren);
+      Right->collectChildren(RightChildren);
+      SameNameNodeMatcher(LeftChildren, RightChildren, *this).match();
+      break;
+    }
+
+    case SDKNodeKind::Function:
+    case SDKNodeKind::Setter:
+    case SDKNodeKind::Getter:
+    case SDKNodeKind::Constructor:
+    case SDKNodeKind::TypeAlias:
+    case SDKNodeKind::TypeFunc:
+    case SDKNodeKind::TypeNominal: {
+      // If matched nodes are both function/var/TypeAlias decls, mapping their
+      // parameters sequentially.
+      SequentialNodeMatcher(Left->getChildren(),
+                            Right->getChildren(), *this).match();
+      break;
+    }
+
+    case SDKNodeKind::Var: {
+      auto LC = Left->getChildren()[0].get();
+      auto RC = Right->getChildren()[0].get();
+      if (!(*LC == *RC))
+        foundMatch(LC, RC);
+      break;
+    }
+
+    case SDKNodeKind::Nil: {
+      llvm_unreachable("nil node cannot be matched.");
+    }
+    }
+  }
+
+  virtual void pass(NodePtr Left, NodePtr Right) override {
+    foundMatch(Left, Right);
+  }
+
+  std::unique_ptr<UpdatedNodesMap> getNodeUpdateMap() {
+    return std::move(UpdateMap);
+  }
+};
+
+// For a given SDK node tree, this will build up a mapping from USR to node
+using USRToNodeMap = llvm::StringMap<NodePtr, llvm::BumpPtrAllocator>;
+
+// Class to build up mappings from USR to SDKNode
+class MapUSRToNode : public SDKNodeVisitor {
+  friend class SDKNode; // for visit()
+  USRToNodeMap usrMap;
+
+  virtual void visit(NodePtr ptr) override {
+    if (auto D = dyn_cast<SDKNodeDecl>(ptr)) {
+      usrMap[D->getUsr()] = ptr;
+    }
+  }
+
+public:
+  MapUSRToNode() = default;
+
+  const USRToNodeMap &getMap() const { return usrMap; }
+
+  void map(NodePtr ptr) {
+    SDKNode::preorderVisit(ptr, *this);
+  }
+
+  void dump(llvm::raw_ostream &) const;
+  void dump() const { dump(llvm::errs()); }
+
+private:
+  MapUSRToNode(MapUSRToNode &) = delete;
+  MapUSRToNode &operator=(MapUSRToNode &) = delete;
+};
+
+// Class to build up a diff of structurally different nodes, based on the given
+// USR map for the left (original) side of the diff, based on parent types.
+class TypeMemberDiffFinder : public SDKNodeVisitor {
+  friend class SDKNode; // for visit()
+
+  const USRToNodeMap &diffAgainst;
+
+  // Vector of {givenNodePtr, diffAgainstPtr}
+  NodePairVector TypeMemberDiffs;
+
+  virtual void visit(NodePtr node) override {
+    // Skip nodes that we don't have a correlate for
+    auto declNode = dyn_cast<SDKNodeDecl>(node);
+    if (!declNode)
+      return;
+    auto usr = declNode->getUsr();
+    auto &usrName = usr;
+    if (!diffAgainst.count(usrName))
+      return;
+
+    auto diffNode = diffAgainst.lookup(usrName);
+    assert(node && diffNode && "nullptr visited?");
+    auto nodeParent = node->getParent();
+    auto diffParent = diffNode->getParent();
+    assert(nodeParent && diffParent && "trying to check Root?");
+
+    if (nodeParent->getKind() == SDKNodeKind::TypeDecl &&
+        diffParent->getKind() == SDKNodeKind::Root)
+      TypeMemberDiffs.push_back({diffNode, node});
+    else if (node->getKind() == SDKNodeKind::Getter &&
+             diffNode->getKind() == SDKNodeKind::Function &&
+             node->isNameValid()) {
+      diffNode->annotate(NodeAnnotation::Rename);
+      diffNode->annotate(NodeAnnotation::RenameOldName);
+      diffNode->addAnnotateComment(NodeAnnotation::RenameOldName,
+                                   diffNode->getPrintedName());
+      diffNode->annotate(NodeAnnotation::RenameNewName);
+      diffNode->addAnnotateComment(NodeAnnotation::RenameNewName,
+                                   node->getParent()->getPrintedName());
+    }
+  }
+
+public:
+  TypeMemberDiffFinder(const USRToNodeMap &rightUSRMap)
+      : diffAgainst(rightUSRMap) {}
+
+  void findDiffsFor(NodePtr ptr) { SDKNode::preorderVisit(ptr, *this); }
+
+  const NodePairVector &getDiffs() const {
+    return TypeMemberDiffs;
+  }
+
+  void dump(llvm::raw_ostream &) const;
+  void dump() const { dump(llvm::errs()); }
+
+private:
+  TypeMemberDiffFinder(const TypeMemberDiffFinder &) = delete;
+  TypeMemberDiffFinder &operator=(const TypeMemberDiffFinder &) = delete;
+
+};
+
+// Given a condition, search whether a node satisfies that condition exists
+// in a tree.
+class SearchVisitor : public SDKNodeVisitor {
+  bool isFound = false;
+  llvm::function_ref<bool(NodePtr)> Predicate;
+
+public:
+  SearchVisitor(llvm::function_ref<bool(NodePtr)> Predicate) :
+    Predicate(Predicate) {}
+
+  virtual void visit(NodePtr Node) override {
+    isFound |= Predicate(Node);
+  }
+
+  bool search(NodePtr Node) {
+    SDKNode::preorderVisit(Node, *this);
+    return isFound;
+  }
+};
+
+class ChangeRefinementPass : public SDKTreeDiffPass, public SDKNodeVisitor {
+  bool IsVisitingLeft;
+  std::unique_ptr<UpdatedNodesMap> UpdateMap;
+
+#define ANNOTATE(Node, Counter, X, Y)                                          \
+  auto ToAnnotate = IsVisitingLeft ? Node : Counter;                           \
+  ToAnnotate->annotate(IsVisitingLeft ? X : Y);
+
+  bool detectWrapOptional(SDKNodeType *Node, SDKNodeType *Counter) {
+    if (Node->getTypeKind() != KnownTypeKind::Optional &&
+        Node->getTypeKind() != KnownTypeKind::ImplicitlyUnwrappedOptional &&
+        Counter->getTypeKind() == KnownTypeKind::Optional &&
+        *Node == *Counter->getOnlyChild()) {
+      ANNOTATE(Node, Counter, NodeAnnotation::WrapOptional,
+               NodeAnnotation::UnwrapOptional)
+      return true;
+    }
+    return false;
+  }
+
+  bool detectWrapImplicitOptional(SDKNodeType *Node, SDKNodeType *Counter) {
+    if (Node->getTypeKind() != KnownTypeKind::Optional &&
+        Node->getTypeKind() != KnownTypeKind::ImplicitlyUnwrappedOptional &&
+        Counter->getTypeKind() == KnownTypeKind::ImplicitlyUnwrappedOptional &&
+        *Node == *Counter->getOnlyChild()) {
+      ANNOTATE(Node, Counter, NodeAnnotation::WrapImplicitOptional,
+               NodeAnnotation::UnwrapOptional)
+      return true;
+    }
+
+    return false;
+  }
+
+  bool detectOptionalUpdate(SDKNodeType *Node, SDKNodeType *Counter) {
+    if (Node->getTypeKind() == KnownTypeKind::Optional &&
+        Counter->getTypeKind() == KnownTypeKind::ImplicitlyUnwrappedOptional &&
+        *Node->getOnlyChild() == *Counter->getOnlyChild()) {
+      ANNOTATE(Node, Counter,
+               NodeAnnotation::OptionalToImplicitOptional,
+               NodeAnnotation::ImplicitOptionalToOptional)
+      return true;
+    }
+    return false;
+  }
+
+  bool detectUnmanagedUpdate(SDKNodeType *Node, SDKNodeType *Counter) {
+    if (IsVisitingLeft && Node->getTypeKind() == KnownTypeKind::Unmanaged &&
+        Counter->getTypeKind() != KnownTypeKind::Unmanaged &&
+        *Node->getOnlyChild() == *Counter) {
+      Node->annotate(NodeAnnotation::UnwrapUnmanaged);
+      return true;
+    }
+    return false;
+  }
+
+#undef ANNOTATE
+
+  bool detectTypeRewritten(SDKNodeType *Node, SDKNodeType *Counter) {
+    if (IsVisitingLeft &&
+        (Node->getName() != Counter->getName()||
+        Node->getChildrenCount() != Counter->getChildrenCount())) {
+      Node->annotate(NodeAnnotation::TypeRewritten);
+      Node->annotate(NodeAnnotation::TypeRewrittenLeft);
+      Node->annotate(NodeAnnotation::TypeRewrittenRight);
+      Node->addAnnotateComment(NodeAnnotation::TypeRewrittenLeft,
+                               Node->getPrintedName());
+      Node->addAnnotateComment(NodeAnnotation::TypeRewrittenRight,
+                               Counter->getPrintedName());
+      return true;
+    }
+    return false;
+  }
+
+  bool isUnhandledCase(SDKNodeType *Node) {
+    auto Counter = UpdateMap->findUpdateCounterpart(Node)->getAs<SDKNodeType>();
+    return Node->getTypeKind() == KnownTypeKind::Void ||
+           Counter->getTypeKind() == KnownTypeKind::Void;
+  }
+
+public:
+  ChangeRefinementPass(std::unique_ptr<UpdatedNodesMap> UpdateMap) :
+    UpdateMap(std::move(UpdateMap)) {}
+
+  virtual void pass(NodePtr Left, NodePtr Right) override {
+
+    // Post-order visit is necessary since we propagate annotations bottom-up
+    IsVisitingLeft = true;
+    SDKNode::postorderVisit(Left, *this);
+    IsVisitingLeft = false;
+    SDKNode::postorderVisit(Right, *this);
+  }
+
+  virtual void visit(NodePtr N) override {
+    auto Node = dyn_cast<SDKNodeType>(N);
+    if (!Node || !Node->isAnnotatedAs(NodeAnnotation::Updated) ||
+        isUnhandledCase(Node))
+      return;
+    auto Counter = const_cast<SDKNodeType*>(UpdateMap->
+      findUpdateCounterpart(Node)->getAs<SDKNodeType>());
+
+    bool Result = detectWrapOptional(Node, Counter)||
+                  detectOptionalUpdate(Node, Counter)||
+                  detectWrapImplicitOptional(Node, Counter)||
+                  detectUnmanagedUpdate(Node, Counter)||
+                  detectTypeRewritten(Node, Counter);
+    (void) Result;
+    return;
+  }
+
+  std::unique_ptr<UpdatedNodesMap> getNodeUpdateMap() {
+    return std::move(UpdateMap);
+  }
+};
+
+// DiffItem describes how an element in SDK evolves in a way that migrator can
+// read conveniently. Each DiffItem corresponds to one JSON element and contains
+// sub fields explaining how migrator can assist client code to cope with such
+// SDK change. For instance, the following first JSON element describes an unwrap
+// optional change in the first parameter of function "c:@F@CTTextTabGetOptions".
+// Similarly, the second JSON element describes a type parameter down cast in the
+// second parameter of function "c:objc(cs)NSXMLDocument(im)insertChildren:atIndex:".
+// We keep both usrs because in the future this may support auto-rename.
+class DiffItem {
+public:
+  SDKNodeKind NodeKind;
+  NodeAnnotation DiffKind;
+  StringRef ChildIndex;
+  StringRef LeftUsr;
+  StringRef RightUsr;
+  StringRef LeftComment;
+  StringRef RightComment;
+  StringRef ModuleName;
+
+  DiffItem(SDKNodeKind NodeKind, NodeAnnotation DiffKind, StringRef ChildIndex,
+           StringRef LeftUsr, StringRef RightUsr, StringRef LeftComment,
+           StringRef RightComment, StringRef ModuleName) : NodeKind(NodeKind),
+           DiffKind(DiffKind), ChildIndex(ChildIndex), LeftUsr(LeftUsr),
+           RightUsr(RightUsr), LeftComment(LeftComment),
+           RightComment(RightComment), ModuleName(ModuleName) {
+    assert(!ChildIndex.empty() && "Child index is empty.");
+  }
+
+  bool operator<(DiffItem Other) const {
+    if (auto UsrCompare = LeftUsr.compare(Other.LeftUsr))
+      return UsrCompare < 0;
+    if (NodeKind != Other.NodeKind)
+      return NodeKind < Other.NodeKind;
+    if (DiffKind != Other.DiffKind)
+      return DiffKind < Other.DiffKind;
+    if (auto ChildCompare = ChildIndex.compare(Other.ChildIndex))
+      return ChildCompare < 0;
+    return false;
+  }
+
+  static void describe(llvm::raw_ostream &os) {
+    os << "// SDK_CHANGE(node kind, diff kind, child index, left USR, "
+          "right USR, left comment, right comment)\n";
+  }
+
+  static void undef(llvm::raw_ostream &os) {
+    os << "#undef SDK_CHANGE\n";
+  }
+
+  void streamDef(llvm::raw_ostream &S) const {
+    S << "SDK_CHANGE(" << NodeKind << ", " << DiffKind << ", \"" << ChildIndex
+      << "\", \"" << LeftUsr << "\", \"" << RightUsr << "\", \""
+      << LeftComment << "\", \"" << RightComment
+      << "\", \"" << ModuleName << "\")";
+  }
+};
+
+typedef std::vector<DiffItem> DiffVector;
+
+// TypeMemberDiffItem stores info about movements of functions to type members
+//
+// Outputs:
+//
+// SDK_CHANGE_TYPE_MEMBER(USR, new type context name, new printed name, self
+//                        index, old printed name)
+//
+// Examples:
+//----------------------------------------------------------------------------//
+// Init:
+//
+//  CGAffineTransformMakeScale(_:_:)
+//    ==>
+//  SDK_CHANGE_TYPE_MEMBER("c:@F@CGAffineTransformMakeScale",
+//                         "CGAffineTransform", "init(scaleX:y:)", ,
+//                         "CGAffineTransformMakeScale(_:_:)")
+//
+//  Meaning that source should transform like:
+//  let myAffineTransform = CGAffineTransformMakeScale(myX, myY)
+//    ==>
+//  let myAffineTransform = CGAffineTransform(scaleX: myX, y: myY)
+//
+//
+//----------------------------------------------------------------------------//
+// Static/Class Method:
+//
+//  CGColorGetConstantColor(_:)
+//    ==>
+//  SDK_CHANGE_TYPE_MEMBER("c:@F@CGColorGetConstantColor", "CGColor",
+//                         "constantColor(forName:)", ,
+//                         "CGColorGetConstantColor(_:)")
+//
+// Meaning that source should transform like:
+//  CGColorGetConstantColor(nameOfWhiteColor)
+//    ==>
+//  CGColor.constantColor(forName: nameOfWhiteColor)
+//
+//
+//----------------------------------------------------------------------------//
+// Instance Method:
+//
+//  CGEventPost(_:_:)
+//    ==>
+//  SDK_CHANGE_TYPE_MEMBER("c:@F@CGEventPost", "CGEvent", "post(tap:)", 1,
+//  "CGEventPost(_:_:)")
+//
+// Meaning that source should transform like:
+//  CGEventPost(myTap, myEvent)
+//    ==>
+//  myEvent.post(tap: myTap)
+//
+//
+//----------------------------------------------------------------------------//
+// Static/Class Stored Variable:
+//
+//  kCGColorWhite
+//    ==>
+//  SDK_CHANGE_TYPE_MEMBER("c:@kCGColorWhite", "CGColor", "white", ,
+//                         "kCGColorWhite")
+//
+// Meaning that source should transform like:
+//  let colorName = kCGColorWhite
+//    ==>
+//  let colorName = CGColor.white
+//
+//
+//----------------------------------------------------------------------------//
+// Instance Computed Property
+//
+//
+//  CGColorGetComponents(_:)
+//    ==>
+//  SDK_CHANGE_TYPE_MEMBER("c:@F@CGColorGetComponents", "CGColor",
+//                         "components", 0, "CGColorGetComponents(_:)")
+//
+// Meaning that source should transform like:
+//  CGColorGetComponents(myColor)
+//    ==>
+//  myColor.components
+//
+//
+struct TypeMemberDiffItem {
+  StringRef usr;
+  StringRef newTypeName;
+  StringRef newPrintedName;
+  Optional<uint8_t> selfIndex;
+  StringRef oldPrintedName;
+
+  static void describe(llvm::raw_ostream &os) {
+    os << "// SDK_CHANGE_TYPE_MEMBER(USR, new typename, new printed name, "
+          "self index, old printed name)\n";
+  }
+
+  static void undef(llvm::raw_ostream &os) {
+    os << "#undef SDK_CHANGE_TYPE_MEMBER\n";
+  }
+
+  void streamDef(llvm::raw_ostream &os) const {
+    std::string IndexContent = selfIndex.hasValue() ?
+      std::to_string(selfIndex.getValue()) : "";
+
+    os << "SDK_CHANGE_TYPE_MEMBER("
+       << "\"" << usr << "\"" << ", "
+       << "\"" << newTypeName << "\"" << ", "
+       << "\"" << newPrintedName << "\"" << ", "
+       << "\"" << IndexContent << "\"" << ", "
+       << "\"" << oldPrintedName << "\""
+       << ")";
+  }
+
+  bool operator<(TypeMemberDiffItem Other) const {
+    return usr.compare(Other.usr) < 0;
+  }
+};
+typedef std::vector<TypeMemberDiffItem> TypeMemberDiffVector;
+
+} // End namespace
+
+
+static void printNode(llvm::raw_ostream &os, NodePtr node) {
+  os << "{" << node->getName() << " " << node->getKind() << " "
+            << node->getPrintedName();
+  if (auto F = dyn_cast<SDKNodeAbstractFunc>(node)) {
+    if (F->hasSelfIndex()) {
+      os << " selfIndex: ";
+      os << F->getSelfIndex();
+    }
+  }
+  os << "}";
+}
+
+void MapUSRToNode::dump(llvm::raw_ostream &os) const {
+  for (auto &elt : usrMap) {
+    auto &node = elt.getValue();
+    os << elt.getKey() << " ==> ";
+    printNode(os, node);
+    if (node->getParent()) {
+      os << "  parent: ";
+      printNode(os, node->getParent());
+    }
+    os << "\n";
+  }
+}
+
+void TypeMemberDiffFinder::dump(llvm::raw_ostream &os) const {
+  for (auto pair : getDiffs()) {
+    os << " - ";
+    printNode(os, pair.first);
+    os << " parent: ";
+    printNode(os, pair.first->getParent());
+
+    os << "\n + ";
+    printNode(os, pair.second);
+    os << " parent: ";
+    printNode(os, pair.second->getParent());
+    os << "\n\n";
+  }
+}
+
+namespace {
+template<typename T>
+
+void removeRedundantAndSort(std::vector<T> &Diffs) {
+  std::set<T> DiffSet(Diffs.begin(), Diffs.end());
+  Diffs.assign(DiffSet.begin(), DiffSet.end());
+  std::sort(Diffs.begin(), Diffs.end());
+}
+
+template<typename T>
+void serializeDiffs(llvm::raw_ostream &Fs, std::vector<T> &Diffs) {
+  removeRedundantAndSort(Diffs);
+  Fs << "\n";
+  T::describe(Fs);
+  for (auto &Diff : Diffs) {
+    Diff.streamDef(Fs);
+    Fs << "\n";
+  }
+  T::undef(Fs);
+  Fs << "\n";
+}
+
+static bool isTypeChangeInterestedFuncNode(NodePtr Decl) {
+  switch(Decl->getKind()) {
+    case SDKNodeKind::Constructor:
+    case SDKNodeKind::Function:
+      return true;
+    default:
+      return false;
+  }
+}
+
+static bool isInterested(SDKNodeDecl* Decl, NodeAnnotation Anno) {
+  switch (Anno) {
+    case NodeAnnotation::WrapOptional:
+    case NodeAnnotation::UnwrapOptional:
+    case NodeAnnotation::ImplicitOptionalToOptional:
+    case NodeAnnotation::OptionalToImplicitOptional:
+    case NodeAnnotation::UnwrapUnmanaged:
+    case NodeAnnotation::TypeRewritten:
+      return isTypeChangeInterestedFuncNode(Decl) &&
+        Decl->getParent()->getKind() == SDKNodeKind::TypeDecl;
+    default:
+      return true;
+  }
+}
+
+class DiffItemEmitter : public SDKNodeVisitor {
+  DiffVector &AllItems;
+
+  bool doesAncestorHaveTypeRewritten() {
+    return std::find_if(Ancestors.begin(), Ancestors.end(),[](NodePtr N) {
+      return N->isAnnotatedAs(NodeAnnotation::TypeRewritten);
+    }) != Ancestors.end();
+  }
+
+  StringRef getLeftComment(NodePtr Node, NodeAnnotation Anno) {
+    if (Anno == NodeAnnotation::TypeRewritten)
+      return Node->getAnnotateComment(NodeAnnotation::TypeRewrittenLeft);
+    else if (Anno == NodeAnnotation::Rename)
+      return Node->getAnnotateComment(NodeAnnotation::RenameOldName);
+    return StringRef();
+  }
+
+  StringRef getRightComment(NodePtr Node, NodeAnnotation Anno) {
+    if (Anno == NodeAnnotation::TypeRewritten)
+      return Node->getAnnotateComment(NodeAnnotation::TypeRewrittenRight);
+    else if (Anno == NodeAnnotation::ModernizeEnum)
+      return Node->getAnnotateComment(NodeAnnotation::ModernizeEnum);
+    else if (Anno == NodeAnnotation::Rename)
+      return Node->getAnnotateComment(NodeAnnotation::RenameNewName);
+    return StringRef();
+  }
+
+  bool handleAnnotation(NodePtr Node, SDKNodeDecl *NonTypeParent,
+                        StringRef Index, NodeAnnotation Annotation) {
+    if (isInterested(NonTypeParent, Annotation) &&
+        Node->isAnnotatedAs(Annotation)) {
+      auto Kind = NonTypeParent->getKind();
+      StringRef LC = getLeftComment(Node, Annotation);
+      StringRef RC = getRightComment(Node, Annotation);
+      AllItems.emplace_back(Kind, Annotation, Index,
+                            NonTypeParent->getUsr(), StringRef(), LC, RC,
+                            NonTypeParent->getModuleName());
+      return true;
+    }
+    return false;
+  }
+
+  virtual void visit(NodePtr Node) override {
+    SDKNodeDecl *Parent = dyn_cast<SDKNodeDecl>(Node);
+    if (!Parent) {
+      if (auto TN = dyn_cast<SDKNodeType>(Node)) {
+        Parent = TN->getClosestParentDecl();
+      }
+    }
+
+    if (!Parent)
+      return;
+    auto Index = isa<SDKNodeType>(Node) ? getIndexString(Node) : "0";
+
+    bool Result =
+      doesAncestorHaveTypeRewritten() ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::WrapOptional) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::UnwrapOptional) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::ImplicitOptionalToOptional) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::OptionalToImplicitOptional) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::UnwrapUnmanaged) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::TypeRewritten) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::SetterToProperty) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::GetterToProperty) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::ModernizeEnum) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::Rename) ||
+      handleAnnotation(Node, Parent, Index, NodeAnnotation::NowThrowing);
+    (void) Result;
+  }
+
+  StringRef getIndexString(NodePtr Node) {
+    llvm::SmallString<32> Builder;
+    std::vector<int> Indexes;
+    collectIndexes(Node, Indexes);
+    auto First = true;
+    for (auto I : Indexes) {
+      if (!First)
+        Builder.append(":");
+      else
+        First = false;
+      Builder.append(std::to_string(I));
+    }
+    return InsertToBuffer(Builder.str());
+  }
+
+  void collectIndexes(NodePtr Node, std::vector<int> &Indexes) {
+    for (unsigned I = Ancestors.size(); I > 0 && (I == Ancestors.size() ||
+        isa<SDKNodeType>(Ancestors[I])); -- I) {
+      auto Child = I == Ancestors.size() ? Node : Ancestors[I];
+      auto Parent = Ancestors[I - 1];
+      Indexes.insert(Indexes.begin(), Parent->getChildIndex(Child));
+    }
+  }
+  DiffItemEmitter(DiffVector &AllItems) : AllItems(AllItems) {}
+
+public:
+  static void collectDiffItems(NodePtr Root, DiffVector &DV) {
+    DiffItemEmitter Emitter(DV);
+    SDKNode::postorderVisit(Root, Emitter);
+  }
+};
+
+class DiagnosisEmitter : public SDKNodeVisitor {
+  void visitType(SDKNodeType *T);
+  void visitDecl(SDKNodeDecl *D);
+  void visit(NodePtr Node) override;
+  SDKNodeDecl *findAddedDecl(SDKNodeDecl *Node);
+  static StringRef printName(StringRef Name);
+  static StringRef printDiagKeyword(StringRef Name);
+  static void collectAddedDecls(NodePtr Root, std::set<SDKNodeDecl*> &Results);
+
+  template<typename T>
+  struct DiagBag {
+    std::vector<T> Diags;
+    ~DiagBag() {
+      llvm::outs() << "\n==================================================== ";
+      T::theme(llvm::outs());
+      llvm::outs() << " ====================================================\n";
+      removeRedundantAndSort(Diags);
+      std::for_each(Diags.begin(), Diags.end(), [](T &Diag) {
+        Diag.output();
+      });
+    }
+  };
+
+  struct RemovedDeclDiag {
+    DeclKind Kind;
+    StringRef Name;
+    bool IsDeprecated;
+    RemovedDeclDiag(DeclKind Kind, StringRef Name, bool IsDeprecated) :
+      Kind(Kind), Name(Name), IsDeprecated(IsDeprecated) {}
+    bool operator<(RemovedDeclDiag Other) const;
+    void output() const;
+    static void theme(raw_ostream &OS) { OS << "Removed Decls"; };
+  };
+
+  struct MovedDeclDiag {
+    DeclKind RemovedKind;
+    DeclKind AddedKind;
+    StringRef RemovedName;
+    StringRef AddedName;
+    MovedDeclDiag(DeclKind RemovedKind, DeclKind AddedKind,
+                  StringRef RemovedName, StringRef AddedName) :
+      RemovedKind(RemovedKind), AddedKind(AddedKind), RemovedName(RemovedName),
+      AddedName(AddedName) {}
+    bool operator<(MovedDeclDiag other) const;
+    void output() const;
+    static void theme(raw_ostream &OS) { OS << "Moved Decls"; };
+  };
+
+  struct RenamedDeclDiag {
+    DeclKind KindBefore;
+    DeclKind KindAfter;
+    StringRef NameBefore;
+    StringRef NameAfter;
+    RenamedDeclDiag(DeclKind KindBefore, DeclKind KindAfter,
+                    StringRef NameBefore, StringRef NameAfter) :
+                      KindBefore(KindBefore), KindAfter(KindAfter),
+                      NameBefore(NameBefore), NameAfter(NameAfter) {}
+    bool operator<(RenamedDeclDiag Other) const;
+    void output() const;
+    static void theme(raw_ostream &OS) { OS << "Renamed Decls"; };
+  };
+
+  struct DeclAttrDiag {
+    DeclKind Kind;
+    StringRef DeclName;
+    StringRef AttrName;
+    DeclAttrDiag(DeclKind Kind, StringRef DeclName, StringRef AttrName) :
+      Kind(Kind), DeclName(DeclName), AttrName(AttrName) {}
+    bool operator<(DeclAttrDiag Other) const;
+    void output() const;
+    static void theme(raw_ostream &OS) { OS << "Decl Attribute changes"; };
+  };
+
+  struct DeclTypeChangeDiag {
+    DeclKind Kind;
+    StringRef DeclName;
+    StringRef TypeNameBefore;
+    StringRef TypeNameAfter;
+    StringRef Description;
+    DeclTypeChangeDiag(DeclKind Kind, StringRef DeclName,
+                       StringRef TypeNameBefore, StringRef TypeNameAfter,
+                       StringRef Description) :
+      Kind(Kind), DeclName(DeclName), TypeNameBefore(TypeNameBefore),
+      TypeNameAfter(TypeNameAfter), Description(Description) {}
+    bool operator<(DeclTypeChangeDiag Other) const;
+    void output() const;
+    static void theme(raw_ostream &OS) { OS << "Type Changes"; };
+  };
+
+  std::set<SDKNodeDecl*> AddedDecls;
+  DiagBag<DeclAttrDiag> AttrChangedDecls;
+  DiagBag<DeclTypeChangeDiag> TypeChangedDecls;
+  DiagBag<RenamedDeclDiag> RenamedDecls;
+  DiagBag<MovedDeclDiag> MovedDecls;
+  DiagBag<RemovedDeclDiag> RemovedDecls;
+
+  UpdatedNodesMap UpdateMap;
+  DiagnosisEmitter(UpdatedNodesMap &UpdateMap) : UpdateMap(UpdateMap) {}
+public:
+  static void diagnosis(NodePtr LeftRoot, NodePtr RightRoot,
+                        UpdatedNodesMap &UpdateMap);
+};
+
+void DiagnosisEmitter::collectAddedDecls(NodePtr Root,
+                                         std::set<SDKNodeDecl*> &Results) {
+  if (auto *D = dyn_cast<SDKNodeDecl>(Root)) {
+    if (Root->isAnnotatedAs(NodeAnnotation::Added))
+      Results.insert(D);
+  }
+  for (auto &C : Root->getChildren())
+    collectAddedDecls(C.get(), Results);
+}
+
+SDKNodeDecl *DiagnosisEmitter::findAddedDecl(SDKNodeDecl *Root) {
+  for (auto *Added : AddedDecls) {
+    if (Root->getKind() == Added->getKind() &&
+        Root->getPrintedName() == Added->getPrintedName())
+      return Added;
+  }
+  return nullptr;
+}
+
+StringRef DiagnosisEmitter::printName(StringRef Name) {
+  OSColor Color(llvm::outs(), llvm::raw_ostream::CYAN);
+  Color << Name;
+  return StringRef();
+}
+
+StringRef DiagnosisEmitter::printDiagKeyword(StringRef Name) {
+  OSColor Color(llvm::outs(), llvm::raw_ostream::YELLOW);
+  Color << Name;
+  return StringRef();
+}
+
+bool DiagnosisEmitter::RemovedDeclDiag::
+operator<(RemovedDeclDiag Other) const {
+  if (Kind != Other.Kind)
+    return Kind < Other.Kind;
+  return Name.compare(Other.Name) < 0;
+}
+
+void DiagnosisEmitter::RemovedDeclDiag::output() const {
+  llvm::outs() << Kind << " " << printName(Name) << " has been "
+    << printDiagKeyword("removed");
+  if (IsDeprecated)
+    llvm::outs() << " (deprecated)";
+  llvm::outs() << "\n";
+}
+
+bool DiagnosisEmitter::MovedDeclDiag::
+operator<(MovedDeclDiag Other) const {
+  if (RemovedKind != Other.RemovedKind)
+    return RemovedKind < Other.RemovedKind;
+  return RemovedName.compare(Other.RemovedName) < 0;
+}
+
+void DiagnosisEmitter::MovedDeclDiag::output() const {
+  llvm::outs() << RemovedKind << " " << printName(RemovedName) << " has been "
+    << printDiagKeyword("moved") << " to " << AddedKind << " "
+    << printName(AddedName) << "\n";
+}
+
+bool DiagnosisEmitter::RenamedDeclDiag::
+operator<(RenamedDeclDiag Other) const {
+  if (KindBefore != Other.KindBefore)
+    return KindBefore < Other.KindBefore;
+  return NameBefore.compare(Other.NameBefore) < 0;
+}
+
+void DiagnosisEmitter::RenamedDeclDiag::output() const {
+  llvm::outs() << KindBefore << " " << printName(NameBefore)
+               << " has been " << printDiagKeyword("renamed") << " to "
+               << KindAfter << " " << printName(NameAfter) << "\n";
+}
+
+bool DiagnosisEmitter::DeclTypeChangeDiag::
+operator<(DeclTypeChangeDiag Other) const {
+  if (Kind != Other.Kind)
+    return Kind < Other.Kind;
+  return DeclName.compare(Other.DeclName) < 0;
+}
+
+void DiagnosisEmitter::DeclTypeChangeDiag::output() const {
+  llvm::outs() << Kind << " " << printName(DeclName) << " has "
+               << Description << " type change from "
+               << printName(TypeNameBefore) << " to "
+               << printName(TypeNameAfter) << "\n";
+}
+
+
+bool DiagnosisEmitter::DeclAttrDiag::operator<(DeclAttrDiag Other) const {
+  if (Kind != Other.Kind)
+    return Kind < Other.Kind;
+  return DeclName.compare_lower(Other.DeclName);
+}
+
+void DiagnosisEmitter::DeclAttrDiag::output() const {
+  llvm::outs() << Kind << "" << printName(DeclName) << " is now " <<
+    printDiagKeyword(AttrName) << "\n";
+}
+
+void DiagnosisEmitter::diagnosis(NodePtr LeftRoot, NodePtr RightRoot,
+                                 UpdatedNodesMap &UpdateMap) {
+  DiagnosisEmitter Emitter(UpdateMap);
+  collectAddedDecls(RightRoot, Emitter.AddedDecls);
+  SDKNode::postorderVisit(LeftRoot, Emitter);
+}
+
+void DiagnosisEmitter::visitDecl(SDKNodeDecl *Node) {
+  if (Node->isSDKPrivate())
+    return;
+  if (Node->isAnnotatedAs(NodeAnnotation::Removed) &&
+      !Node->isAnnotatedAs(NodeAnnotation::Rename)) {
+    if (auto *Added = findAddedDecl(Node)) {
+      MovedDecls.Diags.emplace_back(Node->getDeclKind(),
+                                    Added->getDeclKind(),
+                                    Node->getFullyQualifiedName(),
+                                    Added->getFullyQualifiedName());
+    } else {
+      RemovedDecls.Diags.emplace_back(Node->getDeclKind(),
+                                      Node->getFullyQualifiedName(),
+                                      Node->isDeprecated());
+    }
+  }
+  if (Node->isAnnotatedAs(NodeAnnotation::Rename)) {
+    auto *Count = UpdateMap.findUpdateCounterpart(Node)->getAs<SDKNodeDecl>();
+    RenamedDecls.Diags.emplace_back(Node->getDeclKind(), Count->getDeclKind(),
+                                    Node->getFullyQualifiedName(),
+                                    Count->getFullyQualifiedName());
+  }
+  if (Node->isAnnotatedAs(NodeAnnotation::NowMutating)) {
+    AttrChangedDecls.Diags.emplace_back(Node->getDeclKind(),
+                                        Node->getFullyQualifiedName(),
+                                        InsertToBuffer("mutating"));
+  }
+  if (Node->isAnnotatedAs(NodeAnnotation::NowThrowing)) {
+    AttrChangedDecls.Diags.emplace_back(Node->getDeclKind(),
+                                        Node->getFullyQualifiedName(),
+                                        InsertToBuffer("throwing"));
+  }
+}
+void DiagnosisEmitter::visitType(SDKNodeType *Node) {
+  auto *Parent = Node->getParent()->getAs<SDKNodeDecl>();
+  if (!Parent || Parent->isSDKPrivate())
+    return;
+
+  if (Node->isAnnotatedAs(NodeAnnotation::Updated)) {
+    auto *Count = UpdateMap.findUpdateCounterpart(Node)->getAs<SDKNodeType>();
+    StringRef Descriptor;
+    switch (Parent->getKind()) {
+    case SDKNodeKind::Function:
+    case SDKNodeKind::Var:
+      Descriptor = Parent->getKind() == SDKNodeKind::Function ?
+        SDKNodeFunction::getTypeRoleDescription(Parent->getChildIndex(Node)) :
+        InsertToBuffer("declared");
+      TypeChangedDecls.Diags.emplace_back(Parent->getDeclKind(),
+                                          Parent->getFullyQualifiedName(),
+                                          Node->getPrintedName(),
+                                          Count->getPrintedName(),
+                                          Descriptor);
+      break;
+    default:
+      break;
+    }
+  }
+}
+
+void DiagnosisEmitter::visit(NodePtr Node) {
+  if (auto *DNode = dyn_cast<SDKNodeDecl>(Node)) {
+    visitDecl(DNode);
+  }
+  if (auto *TNode = dyn_cast<SDKNodeType>(Node)) {
+    visitType(TNode);
+  }
+}
+
+struct NoEscapeFuncParam {
+  StringRef Usr;
+  unsigned Index;
+
+  NoEscapeFuncParam(StringRef Usr, unsigned Index) : Usr(Usr), Index(Index) {}
+
+  static void describe(llvm::raw_ostream &os) {
+    os << "// NOESCAPE_FUNC_PARAM(USR, Index)\n";
+  }
+
+  static void undef(llvm::raw_ostream &os) {
+    os << "#undef NOESCAPE_FUNC_PARAM\n";
+  }
+
+  void streamDef(llvm::raw_ostream &os) const {
+    os << "NOESCAPE_FUNC_PARAM("
+    << "\"" << Usr << "\"" << ", "
+    << "\"" << Index << "\"" << ")";
+  }
+
+  bool operator<(NoEscapeFuncParam Other) const {
+    if (Usr != Other.Usr)
+      return Usr.compare(Other.Usr) < 0;
+    return Index < Other.Index;
+  }
+};
+
+  typedef std::vector<NoEscapeFuncParam> NoEscapeFuncParamVector;
+
+class NoEscapingFuncEmitter : public SDKNodeVisitor {
+  NoEscapeFuncParamVector &AllItems;
+  NoEscapingFuncEmitter(NoEscapeFuncParamVector &AllItems) : AllItems(AllItems) {}
+
+  virtual void visit(NodePtr Node) override {
+    if (Node->getKind() != SDKNodeKind::TypeFunc)
+      return;
+    if (Node->getAs<SDKNodeTypeFunc>()->isEscaping())
+      return;
+    auto Parent = Node->getParent();
+    if (auto ParentFunc = dyn_cast<SDKNodeAbstractFunc>(Parent)) {
+      if (ParentFunc->isObjc()) {
+        unsigned Index = ParentFunc->getChildIndex(Node);
+        AllItems.emplace_back(ParentFunc->getUsr(), Index);
+      }
+    }
+  }
+
+public:
+  static void collectDiffItems(NodePtr Root, NoEscapeFuncParamVector &DV) {
+    NoEscapingFuncEmitter Emitter(DV);
+    SDKNode::postorderVisit(Root, Emitter);
+  }
+};
+
+/// This info is about functions meet the following criteria:
+///   - This function is a member function of a type.
+///   - This function is overloaded.
+struct OverloadedFuncInfo {
+  StringRef Usr;
+  OverloadedFuncInfo(StringRef Usr) : Usr(Usr) {}
+
+  static void describe(llvm::raw_ostream &os) {
+    os << "// OVERLOAD_FUNC_TRAILING_CLOSURE(USR)\n";
+  }
+
+  static void undef(llvm::raw_ostream &os) {
+    os << "#undef OVERLOAD_FUNC_TRAILING_CLOSURE\n";
+  }
+
+  void streamDef(llvm::raw_ostream &os) const {
+    os << "OVERLOAD_FUNC_TRAILING_CLOSURE("
+       << "\"" << Usr << "\"" << ")";
+  }
+
+  bool operator<(OverloadedFuncInfo Other) const {
+    return Usr.compare(Other.Usr) < 0;
+  }
+};
+
+/// This provides a utility to view a printed name by parsing the components
+/// of that name. The components include a base name and an array of argument
+/// labels.
+class DeclNameViewer {
+  StringRef BaseName;
+  SmallVector<StringRef, 4> Labels;
+
+public:
+  DeclNameViewer(StringRef Text) {
+    auto ArgStart = Text.find_first_of('(');
+    if (ArgStart == StringRef::npos) {
+      BaseName = Text;
+      return;
+    }
+    BaseName = Text.substr(0, ArgStart);
+    auto ArgEnd = Text.find_last_of(')');
+    assert(ArgEnd != StringRef::npos);
+    StringRef AllArgs = Text.substr(ArgStart + 1, ArgEnd - ArgStart - 1);
+    AllArgs.split(Labels, ":");
+    if (Labels.empty())
+      return;
+    assert(Labels.back().empty());
+    Labels.pop_back();
+  }
+
+  StringRef base() const { return BaseName; }
+
+  llvm::ArrayRef<StringRef> args() const { return llvm::makeArrayRef(Labels); }
+
+  unsigned partsCount() const { return 1 + Labels.size(); }
+
+  unsigned commonParts(DeclNameViewer &Other) const {
+    if (base() != Other.base())
+      return 0;
+    unsigned Result = 1;
+    unsigned Len = std::min(args().size(), Other.args().size());
+    for (unsigned I = 0; I < Len; ++ I) {
+      if (args()[I] == Other.args()[I])
+        Result ++;
+      else
+        return Result;
+    }
+    return Result;
+  }
+};
+
+class OverloadMemberFunctionEmitter : public SDKNodeVisitor {
+
+  std::vector<OverloadedFuncInfo> &AllItems;
+
+  virtual void visit(NodePtr Node) override {
+    if (Node->getKind() != SDKNodeKind::Function)
+      return;
+    auto Parent = Node->getParent();
+    if (Parent->getKind() != SDKNodeKind::TypeDecl)
+      return;
+    DeclNameViewer CurrentViewer(Node->getPrintedName());
+    if (CurrentViewer.args().empty())
+      return;
+    for (auto &C : Parent->getChildren()) {
+      if (C.get() == Node)
+        continue;
+      if (C->getKind() != SDKNodeKind::Function)
+        continue;
+      DeclNameViewer ChildViewer(C->getPrintedName());
+      if (ChildViewer.args().empty())
+        continue;
+      if (CurrentViewer.commonParts(ChildViewer) >=
+          CurrentViewer.partsCount() - 1) {
+        AllItems.emplace_back(Node->getAs<SDKNodeDecl>()->getUsr());
+        return;
+      }
+    }
+  }
+
+  OverloadMemberFunctionEmitter(std::vector<OverloadedFuncInfo> &AllItems) :
+    AllItems(AllItems) {}
+
+public:
+  static void collectDiffItems(NodePtr Root,
+                               std::vector<OverloadedFuncInfo> &AllItems) {
+    OverloadMemberFunctionEmitter Emitter(AllItems);
+    SDKNode::postorderVisit(Root, Emitter);
+  }
+};
+
+}// End of anonymous namespace
+
+namespace fs = llvm::sys::fs;
+namespace path = llvm::sys::path;
+
+static StringRef constructFullTypeName(NodePtr Node) {
+  assert(Node->getKind() == SDKNodeKind::TypeDecl);
+  std::vector<NodePtr> TypeChain;
+  for (auto C = Node; C->getKind() == SDKNodeKind::TypeDecl; C = C->getParent()) {
+    TypeChain.insert(TypeChain.begin(), C);
+  }
+  assert(TypeChain.front()->getParent()->getKind() == SDKNodeKind::Root);
+  llvm::SmallString<64> Buffer;
+  bool First = true;
+  for (auto N : TypeChain) {
+    if (First) {
+      First = false;
+    } else {
+      Buffer.append(".");
+    }
+    Buffer.append(N->getName());
+  }
+  return InsertToBuffer(Buffer.str());
+}
+
+struct RenameDetectorForMemberDiff : public MatchedNodeListener {
+  void foundMatch(NodePtr Left, NodePtr Right) {
+    detectRename(Left, Right);
+  }
+  void workOn(NodePtr Left, NodePtr Right) {
+    if (Left->getKind() == Right->getKind() &&
+        Left->getKind() == SDKNodeKind::TypeDecl) {
+      NodeVector LeftChildren;
+      NodeVector RightChildren;
+      Left->collectChildren(LeftChildren);
+      Right->collectChildren(RightChildren);
+      SameNameNodeMatcher Matcher(LeftChildren, RightChildren, *this);
+      Matcher.match();
+    }
+  }
+};
+
+static Optional<uint8_t> findSelfIndex(SDKNode* Node) {
+  if (auto func = dyn_cast<SDKNodeAbstractFunc>(Node)) {
+    return func->getSelfIndexOptional();
+  } else if (auto vd = dyn_cast<SDKNodeVar>(Node)) {
+    for (auto &C : vd->getChildren()) {
+      if (isa<SDKNodeAbstractFunc>(C.get())) {
+        if (auto Result = findSelfIndex(C.get()))
+          return Result;
+      }
+    }
+  }
+  return None;
+}
+
+/// Find cases where a diff is due to a change to being a type member
+static void findTypeMemberDiffs(NodePtr leftSDKRoot, NodePtr rightSDKRoot,
+                                TypeMemberDiffVector &out) {
+  // Mapping from USR to SDKNode
+  MapUSRToNode leftMapper;
+  leftMapper.map(leftSDKRoot);
+  auto &leftMap = leftMapper.getMap();
+
+  TypeMemberDiffFinder diffFinder(leftMap);
+  diffFinder.findDiffsFor(rightSDKRoot);
+  RenameDetectorForMemberDiff Detector;
+  for (auto pair : diffFinder.getDiffs()) {
+    auto left = pair.first;
+    auto right = pair.second;
+    auto rightParent = right->getParent();
+
+    // SDK_CHANGE_TYPE_MEMBER(USR, new type context name, new printed name, self
+    // index, old printed name)
+    TypeMemberDiffItem item = {
+        right->getAs<SDKNodeDecl>()->getUsr(), constructFullTypeName(rightParent),
+        right->getPrintedName(), findSelfIndex(right), left->getPrintedName()};
+    out.emplace_back(item);
+    Detector.workOn(left, right);
+  }
+}
+
+static int diagnoseModuleChange(StringRef LeftPath, StringRef RightPath) {
+  if (!fs::exists(LeftPath)) {
+    llvm::errs() << LeftPath << " does not exist\n";
+    return 1;
+  }
+  if (!fs::exists(RightPath)) {
+    llvm::errs() << RightPath << " does not exist\n";
+    return 1;
+  }
+  SwiftDeclCollector LeftCollector;
+  LeftCollector.deSerialize(LeftPath);
+  SwiftDeclCollector RightCollector;
+  RightCollector.deSerialize(RightPath);
+  auto LeftModule = LeftCollector.getSDKRoot();
+  auto RightModule = RightCollector.getSDKRoot();
+  PrunePass Prune;
+  Prune.pass(LeftModule, RightModule);
+  ChangeRefinementPass RefinementPass(Prune.getNodeUpdateMap());
+  RefinementPass.pass(LeftModule, RightModule);
+  DiagnosisEmitter::diagnosis(LeftModule, RightModule,
+                              *RefinementPass.getNodeUpdateMap());
+  return 0;
+}
+
+static int compareSDKs(StringRef LeftPath, StringRef RightPath,
+                       StringRef DiffPath,
+                       llvm::StringSet<> &IgnoredRemoveUsrs) {
+  if (!fs::exists(LeftPath)) {
+    llvm::errs() << LeftPath << " does not exist\n";
+    return 1;
+  }
+  if (!fs::exists(RightPath)) {
+    llvm::errs() << RightPath << " does not exist\n";
+    return 1;
+  }
+  llvm::errs() << "Diffing: " << LeftPath << " and " << RightPath << "\n";
+  SwiftDeclCollector LeftCollector;
+  LeftCollector.deSerialize(LeftPath);
+  SwiftDeclCollector RightCollector;
+  RightCollector.deSerialize(RightPath);
+  llvm::errs() << "Finished deserializing" << "\n";
+  auto LeftModule = LeftCollector.getSDKRoot();
+  auto RightModule = RightCollector.getSDKRoot();
+
+  // Structural diffs: not merely name changes but changes in SDK tree
+  // structure.
+  llvm::errs() << "Detecting type member diffs" << "\n";
+  TypeMemberDiffVector typeMemberDiffs;
+  findTypeMemberDiffs(LeftModule, RightModule, typeMemberDiffs);
+
+  PrunePass Prune;
+  Prune.pass(LeftModule, RightModule);
+  llvm::errs() << "Finished pruning" << "\n";
+  ChangeRefinementPass RefinementPass(Prune.getNodeUpdateMap());
+  RefinementPass.pass(LeftModule, RightModule);
+  DiffVector AllItems;
+  DiffItemEmitter::collectDiffItems(LeftModule, AllItems);
+  AllItems.erase(std::remove_if(AllItems.begin(), AllItems.end(), [&](DiffItem &Item) {
+    return Item.DiffKind == NodeAnnotation::RemovedDecl &&
+      IgnoredRemoveUsrs.find(Item.LeftUsr) != IgnoredRemoveUsrs.end();
+  }), AllItems.end());
+
+  NoEscapeFuncParamVector AllNoEscapingFuncs;
+  NoEscapingFuncEmitter::collectDiffItems(RightModule, AllNoEscapingFuncs);
+
+  llvm::errs() << "Dumping diff to " << DiffPath << '\n';
+  std::vector<OverloadedFuncInfo> Overloads;
+  OverloadMemberFunctionEmitter::collectDiffItems(RightModule, Overloads);
+
+  std::error_code EC;
+  llvm::raw_fd_ostream Fs(DiffPath, EC, llvm::sys::fs::F_None);
+
+  serializeDiffs(Fs, AllItems);
+  serializeDiffs(Fs, typeMemberDiffs);
+  serializeDiffs(Fs, AllNoEscapingFuncs);
+  serializeDiffs(Fs, Overloads);
+  return 0;
+}
+
+static std::string getDumpFilePath(StringRef OutputDir, StringRef FileName) {
+  std::string Path = OutputDir;
+  Path += "/";
+  Path += FileName;
+  int Suffix = 0;
+  auto ConstructPath = [&]() {
+    return Path + (Suffix == 0 ? "" : std::to_string(Suffix)) + ".js";
+  };
+  for (; fs::exists(ConstructPath()); Suffix ++);
+  return ConstructPath();
+}
+
+static int dumpSwiftModules(const CompilerInvocation &InitInvok,
+                            const llvm::StringSet<> &ModuleNames,
+                            StringRef OutputDir,
+                            const std::vector<std::string> PrintApis) {
+  if (!fs::exists(OutputDir)) {
+    llvm::errs() << "Output directory '" << OutputDir << "' does not exist.\n";
+    return 1;
+  }
+
+  std::vector<Module*> Modules;
+  CompilerInvocation Invocation(InitInvok);
+  CompilerInstance CI;
+  // Display diagnostics to stderr.
+  PrintingDiagnosticConsumer PrintDiags;
+  CI.addDiagnosticConsumer(&PrintDiags);
+  if (CI.setup(Invocation)) {
+    llvm::errs() << "Failed to setup the compiler instance\n";
+    return 1;
+  }
+
+  auto &Context = CI.getASTContext();
+
+  for (auto &Entry : ModuleNames) {
+    StringRef Name = Entry.first();
+    if (options::Verbose)
+      llvm::errs() << "Loading module: " << Name << "...\n";
+    auto *M = Context.getModuleByName(Name);
+    if (!M) {
+      if (options::Verbose)
+        llvm::errs() << "Failed to load module: " << Name << '\n';
+      if (options::AbortOnModuleLoadFailure)
+        return 1;
+    }
+    Modules.push_back(M);
+  }
+
+  for (auto M : Modules) {
+    SwiftDeclCollector Collector;
+    SmallVector<Decl*, 256> Decls;
+    M->getTopLevelDecls(Decls);
+    for (auto D : Decls) {
+      if (auto VD = dyn_cast<ValueDecl>(D))
+        Collector.foundDecl(VD, DeclVisibilityKind::VisibleAtTopLevel);
+    }
+    std::string Path = getDumpFilePath(OutputDir, M->getName().str());
+    Collector.serialize(Path);
+    if (options::Verbose)
+      llvm::errs() << "Dumped to "<< Path << "\n";
+  }
+  return 0;
+}
+
+static int dumpSDKContent(const CompilerInvocation &InitInvok,
+                          const llvm::StringSet<> &ModuleNames,
+                          StringRef OutputFile) {
+  CompilerInvocation Invocation(InitInvok);
+
+  CompilerInstance CI;
+  // Display diagnostics to stderr.
+  PrintingDiagnosticConsumer PrintDiags;
+  CI.addDiagnosticConsumer(&PrintDiags);
+  if (CI.setup(Invocation)) {
+    llvm::errs() << "Failed to setup the compiler instance\n";
+    return 1;
+  }
+
+  auto &Ctx = CI.getASTContext();
+
+
+  // Load standard library so that Clang importer can use it.
+  auto *Stdlib = Ctx.getStdlibModule(/*loadIfAbsent=*/true);
+  if (!Stdlib) {
+    llvm::errs() << "Failed to load Swift stdlib\n";
+    return 1;
+  }
+
+  std::vector<Module *> Modules;
+  for (auto &Entry : ModuleNames) {
+    StringRef Name = Entry.getKey();
+    if (options::Verbose)
+      llvm::errs() << "Loading module: " << Name << "...\n";
+    auto *M = Ctx.getModuleByName(Name);
+    if (!M) {
+      llvm::errs() << "Failed to load module: " << Name << '\n';
+      if (options::AbortOnModuleLoadFailure)
+        return 1;
+    } else {
+      Modules.push_back(M);
+    }
+  }
+  if (options::Verbose)
+    llvm::errs() << "Scanning symbols...\n";
+  SwiftDeclCollector Collector;
+  Collector.lookupVisibleDecls(Modules);
+  if (options::Verbose)
+    llvm::errs() << "Dumping SDK...\n";
+  Collector.serialize(OutputFile);
+  if (options::Verbose)
+    llvm::errs() << "Dumped to "<< OutputFile << "\n";
+  return 0;
+}
+
+static int readFileLineByLine(StringRef Path, llvm::StringSet<> &Lines) {
+  auto FileBufOrErr = llvm::MemoryBuffer::getFile(Path);
+  if (!FileBufOrErr) {
+    llvm::errs() << "error opening file: "
+      << FileBufOrErr.getError().message() << '\n';
+    return 1;
+  }
+
+  StringRef BufferText = FileBufOrErr.get()->getBuffer();
+  while (!BufferText.empty()) {
+    StringRef Line;
+    std::tie(Line, BufferText) = BufferText.split('\n');
+    Line = Line.trim();
+    if (!Line.empty())
+      Lines.insert(Line);
+  }
+  return 0;
+}
+
+// This function isn't referenced outside its translation unit, but it
+// can't use the "static" keyword because its address is used for
+// getMainExecutable (since some platforms don't support taking the
+// address of main, and some platforms can't implement getMainExecutable
+// without being given the address of a function in the main executable).
+void anchorForGetMainExecutable() {}
+
+static int prepareForDump(const char *Main,
+                          CompilerInvocation &InitInvok,
+                          llvm::StringSet<> &Modules) {
+  InitInvok.setMainExecutablePath(fs::getMainExecutable(Main,
+    reinterpret_cast<void *>(&anchorForGetMainExecutable)));
+  InitInvok.setModuleName("swift_ide_test");
+  if (!options::SDK.empty()) {
+    InitInvok.setSDKPath(options::SDK);
+  } else if (const char *SDKROOT = getenv("SDKROOT")) {
+    InitInvok.setSDKPath(SDKROOT);
+  } else {
+    llvm::errs() << "Provide '-sdk <path>' option or run with 'xcrun -sdk <..>\
+    swift-api-digester'\n";
+    return 1;
+  }
+
+  if (!options::Triple.empty())
+    InitInvok.setTargetTriple(options::Triple);
+  InitInvok.getClangImporterOptions().ModuleCachePath =
+  options::ModuleCachePath;
+
+  if (!options::SwiftVersion.empty()) {
+    if (auto Version = version::Version::
+        parseVersionString(options::SwiftVersion, SourceLoc(), nullptr)) {
+      if (Version.getValue().isValidEffectiveLanguageVersion())
+        InitInvok.getLangOptions().EffectiveLanguageVersion = Version.getValue();
+      else {
+        llvm::errs() << "Unsupported Swift Version.\n";
+        return 1;
+      }
+    }
+  }
+
+  if (!options::ResourceDir.empty()) {
+    InitInvok.setRuntimeResourcePath(options::ResourceDir);
+  }
+  InitInvok.setFrameworkSearchPaths(options::FrameworkPaths);
+  InitInvok.setImportSearchPaths(options::ModuleInputPaths);
+  for (auto CCFrameworkPath : options::CCSystemFrameworkPaths) {
+    InitInvok.getClangImporterOptions().ExtraArgs.push_back("-iframework");
+    InitInvok.getClangImporterOptions().ExtraArgs.push_back(CCFrameworkPath);
+  }
+
+  if (!options::ModuleList.empty()) {
+    if (readFileLineByLine(options::ModuleList, Modules))
+        return 1;
+  }
+
+  for (auto M : options::ModuleNames) {
+    Modules.insert(M);
+  }
+
+  if (Modules.empty()) {
+    llvm::errs() << "Need to specify -include-all or -module <name>\n";
+    return 1;
+  }
+  return 0;
+}
+
+static void readIgnoredUsrs(llvm::StringSet<> &IgnoredUsrs) {
+  StringRef Path = options::IgnoreRemovedDeclUSRs;
+  if (Path.empty())
+    return;
+  if (!fs::exists(Path)) {
+    llvm::errs() << Path << " does not exist.\n";
+    return;
+  }
+  readFileLineByLine(Path, IgnoredUsrs);
+}
+
+int main(int argc, char *argv[]) {
+  INITIALIZE_LLVM(argc, argv);
+
+  llvm::cl::ParseCommandLineOptions(argc, argv, "Swift SDK Digester\n");
+  CompilerInvocation InitInvok;
+
+  ClangImporterOptions &ImporterOpts = InitInvok.getClangImporterOptions();
+  ImporterOpts.DetailedPreprocessingRecord = true;
+
+  llvm::StringSet<> Modules;
+  std::vector<std::string> PrintApis;
+  llvm::StringSet<> IgnoredUsrs;
+  readIgnoredUsrs(IgnoredUsrs);
+  for (auto Name : options::ApisPrintUsrs)
+    PrintApis.push_back(Name);
+  switch (options::Action) {
+  case ActionType::DumpSwiftModules:
+    return (prepareForDump(argv[0], InitInvok, Modules)) ? 1 :
+      dumpSwiftModules(InitInvok, Modules, options::OutputFile, PrintApis);
+  case ActionType::DumpSDK:
+    return (prepareForDump(argv[0], InitInvok, Modules)) ? 1 :
+      dumpSDKContent(InitInvok, Modules, options::OutputFile);
+  case ActionType::CompareSDKs:
+  case ActionType::DiagnoseSDKs:
+    if (options::SDKJsonPaths.size() != 2) {
+      llvm::errs() << "Only two SDK versions can be compared\n";
+      llvm::cl::PrintHelpMessage();
+      return 1;
+    }
+    if (options::Action == ActionType::CompareSDKs)
+      return compareSDKs(options::SDKJsonPaths[0], options::SDKJsonPaths[1],
+                         options::OutputFile, IgnoredUsrs);
+    else
+      return diagnoseModuleChange(options::SDKJsonPaths[0],
+                                  options::SDKJsonPaths[1]);
+  case ActionType::None:
+    llvm::errs() << "Action required\n";
+    llvm::cl::PrintHelpMessage();
+    return 1;
+  }
+}
diff --git a/tools/swift-ide-test/KnownObjCMethods.def b/tools/swift-ide-test/KnownObjCMethods.def
deleted file mode 100644
index f37e315..0000000
--- a/tools/swift-ide-test/KnownObjCMethods.def
+++ /dev/null
@@ -1,481 +0,0 @@
-//===--- KnownObjCMethods.def - Designated Initializers ---------*- C++ -*-===//
-//
-// This source file is part of the Swift.org open source project
-//
-// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
-// Licensed under Apache License v2.0 with Runtime Library Exception
-//
-// See http://swift.org/LICENSE.txt for license information
-// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the database of known methods for various
-// Objective-C classes, along with flags that describe how their
-// import into Swift should be altered.
-//===----------------------------------------------------------------------===//
-
-// INSTANCE_METHOD(ClassName, Selector, Options)
-// CLASS_METHOD(ClassName, Selector, Options)
-// 
-//   Describes an instance or class method.
-//
-//   ClassName: The name of the class.
-//
-//   Selector: A parenthesized sequence containing the # of selector
-//   pieces followed by strings containing the selector pieces.
-//
-//   Options: A set of OR'd options describing what specific behavior
-//   should be applied to this method. The possibilities are:
-//     DesignatedInit: Mark this as a designated initializer of its class.
-//     FactoryAsClassMethod: Don't import this factory method as an initializer.
-//     Unavailable(Msg): Mark this method as being unavailable, with the given
-//       message.
-//     OptionalTypeAdjustment: Specifies the optionality of types in the API.
-//       Takes variadic arguments. The first argument specifies the # of types
-//       followed by the values from OptionalTypeKind enum specifying the
-//       optionality of each type. We assume that the first encoded type is the
-//       method's return type. Pass '0' as the first argument for a method with
-//       only non-optional (OTK_None) types.
-//
-// OBJC_CLASS(ClassName, Options)
-//
-//   Describes default method options in a class. This can be used
-//   to list options common to all/most methods of the audited class. These
-//   defaults can be overwritten by using INSTANCE_METHOD and CLASS_METHOD.
-//
-// OBJC_PROTOCOL(ClassName, Options)
-//
-//   Describes default method options in a class. This can be used
-//   to list options common to all/most methods of the audited class. These
-//   defaults can be overwritten by using INSTANCE_METHOD and CLASS_METHOD.
-//
-// OBJC_PROPERTY(ContextName, PropertyName, OptionalTypeKind)
-//
-//   Describes the optionality if the type of the Objective-C property.
-//
-
-#ifndef INSTANCE_METHOD
-#  error define INSTANCE_METHOD before including KnownMethods.def
-#endif
-
-#ifndef PROTOCOL_INSTANCE_METHOD
-#  error define PROTOCOL_INSTANCE_METHOD before including KnownMethods.def
-#endif
-
-#ifndef CLASS_METHOD
-#  error define CLASS_METHOD before including KnownMethods.def
-#endif
-
-#ifndef OBJC_CLASS
-#  error define OBJC_CLASS before including KnownMethods.def
-#endif
-
-#ifndef OBJC_PROTOCOL
-#  error define OBJC_PROTOCOL before including KnownMethods.def
-#endif
-
-#ifndef START_MODULE
-#  define START_MODULE(Name)
-#endif
-
-START_MODULE(ObjectiveC)
-INSTANCE_METHOD(NSObject, (0, "dealloc"), 
-                Unavailable("use 'deinit' to define a de-initializer"))
-
-INSTANCE_METHOD(NSObject, (0, "init"), DesignatedInit)
-CLASS_METHOD(NSObject, (0, "class"), Unavailable("use 'self' instead"))
-
-// NSObject protocol
-PROTOCOL_INSTANCE_METHOD(NSObject, (0, "class"),
-                         Unavailable("use 'type(of:)' instead"))
-
-START_MODULE(Foundation)
-INSTANCE_METHOD(NSArray, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSArray, (1, "initWithObjects"), DesignatedInit)
-INSTANCE_METHOD(NSArray, (2, "initWithObjects", "count"), DesignatedInit)
-
-INSTANCE_METHOD(NSCountedSet, (1, "initWithCapacity"), DesignatedInit)
-
-INSTANCE_METHOD(NSDate, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSDate, (1, "initWithTimeIntervalSinceReferenceDate"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSDecimalNumber, (1, "initWithDecimal"), DesignatedInit)
-
-INSTANCE_METHOD(NSDictionary, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSDictionary, (3, "initWithObjects", "forKeys", "count"),
-                DesignatedInit)
-
-CLASS_METHOD(NSDistributedNotificationCenter, (1, "notificationCenterForType"),
-             FactoryAsClassMethod)
-
-INSTANCE_METHOD(NSError, (3, "initWithDomain", "code", "userInfo"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(NSException, (3, "initWithName", "reason", "userInfo"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSExpression, (1, "initWithExpressionType"), DesignatedInit)
-
-INSTANCE_METHOD(NSExtensionContext, (2, "openURL", "completion"),
-                Unavailable("call openURL:completionHandler:"))
-
-INSTANCE_METHOD(NSFileWrapper, (3, "initWithURL", "options", "error"), 
-                DesignatedInit)
-INSTANCE_METHOD(NSFileWrapper, (1, "initDirectoryWithFileWrappers"),
-                DesignatedInit)
-INSTANCE_METHOD(NSFileWrapper, (1, "initRegularFileWithContents"), 
-                DesignatedInit)
-INSTANCE_METHOD(NSFileWrapper, (1, "initSymbolicLinkWithDestinationURL"),
-                DesignatedInit)
-INSTANCE_METHOD(NSFileWrapper, (1, "initWithSerializedRepresentation"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(NSIndexPath, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSIndexPath, (2, "initWithIndexes", "length"), DesignatedInit)
-
-INSTANCE_METHOD(NSIndexSet, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSIndexSet, (1, "initWithIndexesInRange"), DesignatedInit)
-INSTANCE_METHOD(NSIndexSet, (1, "initWithIndexSet"), DesignatedInit)
-
-OBJC_CLASS(NSInvocation, Unavailable(""))
-
-INSTANCE_METHOD(NSInvocationOperation, (1, "initWithInvocation"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(NSMachPort, (1, "initWithMachPort"), DesignatedInit)
-
-INSTANCE_METHOD(NSMutableArray, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSMutableArray, (1, "initWithCapacity"), DesignatedInit)
-
-INSTANCE_METHOD(NSMutableDictionary, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSMutableDictionary, (1, "initWithCapacity"), DesignatedInit)
-
-INSTANCE_METHOD(NSMutableOrderedSet, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSMutableOrderedSet, (1, "initWithCapacity"), DesignatedInit)
-
-INSTANCE_METHOD(NSMutableSet, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSMutableSet, (1, "initWithCapacity"), DesignatedInit)
-
-INSTANCE_METHOD(NSNetService, (4, "initWithDomain", "type", "name", "port"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSNotificationQueue, (1, "initWithNotificationCenter"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSOrderedSet, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSOrderedSet, (2, "initWithObjects", "count"), DesignatedInit)
-
-INSTANCE_METHOD(NSPortMessage, 
-                (3, "initWithSendPort", "receivePort", "components"),
-                DesignatedInit)
-
-CLASS_METHOD(NSProcessInfo, (0, "processInfo"), FactoryAsClassMethod)
-
-INSTANCE_METHOD(NSScriptObjectSpecifier, 
-                (3, "initWithContainerClassDescription", "containerSpecifier",
-                 "key"), DesignatedInit)
-
-INSTANCE_METHOD(NSSet, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSSet, (2, "initWithObjects", "count"), DesignatedInit)
-
-INSTANCE_METHOD(NSThread, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSURL, (2, "initWithString", "relativeToURL"), DesignatedInit)
-
-INSTANCE_METHOD(NSURLProtocol, 
-                (3, "initWithRequest", "cachedResponse", "client"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(NSURLRequest, 
-                (3, "initWithURL", "cachePolicy", "timeoutInterval"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSURLResponse, 
-                (4, "initWithURL", "MIMEType", "expectedContentLength", 
-                 "textEncodingName"), DesignatedInit)
-
-INSTANCE_METHOD(NSValue, (2, "initWithBytes", "objCType"), DesignatedInit)
-
-INSTANCE_METHOD(NSXMLDocument, (3, "initWithData", "options", "error"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSXMLDTD, (3, "initWithData", "options", "error"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSXMLParser, (1, "initWithData"), DesignatedInit)
-
-START_MODULE(AppKit)
-INSTANCE_METHOD(NSCell, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSCell, (1, "initWithCoder"), DesignatedInit)
-INSTANCE_METHOD(NSCell, (1, "initTextCell"), DesignatedInit)
-INSTANCE_METHOD(NSCell, (1, "initImageCell"), DesignatedInit)
-
-INSTANCE_METHOD(NSControl, (1, "initWithFrame"), DesignatedInit)
-
-INSTANCE_METHOD(NSCursor, (2, "initWithImage", "hotSpot"), DesignatedInit)
-
-INSTANCE_METHOD(NSDocument, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSDocumentController, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSDraggingImageComponent, (1, "initWithKey"), DesignatedInit)
-
-INSTANCE_METHOD(NSDraggingItem, (1, "initWithPasteboardWriter"), DesignatedInit)
-
-INSTANCE_METHOD(NSFontManager, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSFormCell, (1, "initTextCell"), DesignatedInit)
-
-INSTANCE_METHOD(NSGradient, (3, "initWithColors", "atLocations", "colorSpace"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSImageCell, (0, "init"), DesignatedInit)
-INSTANCE_METHOD(NSImageCell, (1, "initWithCoder"), DesignatedInit)
-INSTANCE_METHOD(NSImageCell, (1, "initTextCell"), DesignatedInit)
-INSTANCE_METHOD(NSImageCell, (1, "initImageCell"), DesignatedInit)
-
-INSTANCE_METHOD(NSLayoutManager, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSMatrix, 
-                (5, "initWithFrame", "mode", "cellClass", "numberOfRows", 
-                    "numberOfColumns"), DesignatedInit)
-INSTANCE_METHOD(NSMatrix, 
-                (5, "initWithFrame", "prototype", "cellClass", "numberOfRows", 
-                    "numberOfColumns"), DesignatedInit)
-
-INSTANCE_METHOD(NSMenu, (1, "initWithTitle"), DesignatedInit)
-
-INSTANCE_METHOD(NSMenuView, (1, "initWithFrame"), DesignatedInit)
-
-INSTANCE_METHOD(NSPopUpButtonCell, (2, "initTextCell", "pullsDown"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSPrintInfo, (1, "initWithDictionary"), DesignatedInit)
-
-INSTANCE_METHOD(NSRulerMarker, 
-                (4, "initWithRulerView", "markerLocation", "image", 
-                 "imageOrigin"), DesignatedInit)
-
-INSTANCE_METHOD(NSRulerView, (2, "initWithScrollView", "orientation"),
-                DesignatedInit)
-
-INSTANCE_METHOD(NSTableColumn, (1, "initWithIdentifier"), DesignatedInit)
-
-// FIXME: Differs from UIKit
-// INSTANCE_METHOD(NSTextAttachment, (1, "initWithFileWrapper"), DesignatedInit)
-
-INSTANCE_METHOD(NSTextBlock, (0, "init"), DesignatedInit)
-
-// FIXME: Differs from UIKit
-// INSTANCE_METHOD(NSTextContainer, (1, "initWithContainerSize"), 
-//                 DesignatedInit)
-
-INSTANCE_METHOD(NSTextFieldCell, (1, "initWithCoder"), DesignatedInit)
-INSTANCE_METHOD(NSTextFieldCell, (1, "initTextCell"), DesignatedInit)
-INSTANCE_METHOD(NSTextFieldCell, (1, "initImageCell"), DesignatedInit)
-
-INSTANCE_METHOD(NSTextFinder, (0, "init"), DesignatedInit)
-
-INSTANCE_METHOD(NSTextInputContext, (1, "initWithClient"), DesignatedInit)
-
-INSTANCE_METHOD(NSTextTableBlock, 
-                (5, "initWithTable", "startingRow", "rowSpan", 
-                 "startingColumn", "columnSpan"), DesignatedInit)
-
-INSTANCE_METHOD(NSTextView, (2, "initWithFrame", "textContainer"), 
-                DesignatedInit)
-INSTANCE_METHOD(NSTextView, (1, "initWithFrame"), DesignatedInit)
-
-INSTANCE_METHOD(NSUserDefaultsController, 
-                (2, "initWithDefaults", "initialValues"), DesignatedInit)
-
-
-INSTANCE_METHOD(NSWindow, 
-                (4, "initWithContentRect", "styleMask", "backing", "defer"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(NSWindowController, (1, "initWithWindow"), DesignatedInit)
-
-// Optional type annotations for NSView.
-// Consider all parameter types in NSView methods to be non-optional and
-// the return optional.
-OBJC_CLASS(NSView, OptionalTypeAdjustment(1, OTK_Optional))
-INSTANCE_METHOD(NSView, (1, "setSubviews"),
-                OptionalTypeAdjustment(2, OTK_None, OTK_None))
-INSTANCE_METHOD(NSView, (1, "addSubview"), OptionalTypeAdjustment(0))
-INSTANCE_METHOD(NSView, (3, "addSubview", "positioned", "relativeTo"),
-                OptionalTypeAdjustment(4, OTK_None, OTK_None, OTK_None,
-                                          OTK_Optional));
-INSTANCE_METHOD(NSView,
-                (1, "viewWillMoveToSuperview"),
-                OptionalTypeAdjustment(2, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView,
-                (1, "viewWillMoveToWindow"),
-                OptionalTypeAdjustment(2, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertPoint", "fromView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertPoint", "toView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertSize", "fromView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertSize", "toView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertRect", "fromView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "convertRect", "toView"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional))
-INSTANCE_METHOD(NSView, (3, "beginDraggingSessionWithItems", "event", "source"),
-                OptionalTypeAdjustment(3, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional))
-INSTANCE_METHOD(NSView,
-                (7, "dragImage", "at", "offset", "event", "pasteboard",
-                    "source", "slideBack"),
-                OptionalTypeAdjustment(6, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_None,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional))
-INSTANCE_METHOD(NSView, (4, "dragFile", "fromRect", "slideBack", "event"),
-                OptionalTypeAdjustment(5, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_None,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional))
-INSTANCE_METHOD(NSView,
-                (5, "dragPromisedFilesOfTypes", "fromRect", "source",
-                    "slideBack", "event"),
-                OptionalTypeAdjustment(6, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_None,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_ImplicitlyUnwrappedOptional))
-INSTANCE_METHOD(NSView, (2, "enterFullScreenMode", "withOptions"),
-                OptionalTypeAdjustment(3, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_Optional, OTK_Optional))
-INSTANCE_METHOD(NSView, (1, "exitFullScreenModeWithOptions"),
-                OptionalTypeAdjustment(2, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_Optional))
-INSTANCE_METHOD(NSView, (2, "showDefinitionForAttributedString", "atPoint"),
-                OptionalTypeAdjustment(2, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_Optional))
-INSTANCE_METHOD(NSView,
-                (4, "showDefinitionForAttributedString", "range", "options",
-                    "baselineOriginProvider"),
-                OptionalTypeAdjustment(4, OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_Optional,
-                                          OTK_ImplicitlyUnwrappedOptional,
-                                          OTK_Optional))
-INSTANCE_METHOD(NSView,
-                (1, "constraintsAffectingLayoutForOrientation"),
-                OptionalTypeAdjustment(1, OTK_None))
-
-OBJC_PROPERTY(NSView, window, OTK_Optional)
-OBJC_PROPERTY(NSView, superview, OTK_Optional)
-OBJC_PROPERTY(NSView, subviews, OTK_None)
-OBJC_PROPERTY(NSView, opaqueAncestor, OTK_Optional)
-OBJC_PROPERTY(NSView, makeBackingLayer, OTK_None)
-OBJC_PROPERTY(NSView, trackingAreas, OTK_None)
-OBJC_PROPERTY(NSView, enclosingScrollView, OTK_Optional)
-OBJC_PROPERTY(NSView, toolTip, OTK_Optional)
-OBJC_PROPERTY(NSView, nextKeyView, OTK_Optional)
-OBJC_PROPERTY(NSView, previousKeyView, OTK_Optional)
-OBJC_PROPERTY(NSView, nextValidKeyView, OTK_Optional)
-OBJC_PROPERTY(NSView, previousValidKeyView, OTK_Optional)
-OBJC_PROPERTY(NSView, printJobTitle, OTK_None)
-OBJC_PROPERTY(NSView, registeredDraggedTypes, OTK_Optional)
-
-START_MODULE(NotificationCenter)
-CLASS_METHOD(NCWidgetController, (0, "widgetController"), FactoryAsClassMethod)
-
-START_MODULE(UIKit)
-
-// FIXME: Differs from AppKit
-// INSTANCE_METHOD(NSTextAttachment, (2, "initWithData", "ofType"), 
-//                 DesignatedInit)
-
-INSTANCE_METHOD(NSTextContainer, (1, "initWithSize"), DesignatedInit)
-
-INSTANCE_METHOD(UIAttachmentBehavior, 
-                (4, "initWithItem", "offsetFromCenter", "attachedToItem", 
-                 "offsetFromCenter"), DesignatedInit)
-
-INSTANCE_METHOD(UICollectionView, (2, "initWithFrame", "collectionViewLayout"),
-                DesignatedInit)
-
-INSTANCE_METHOD(UIDocument, (1, "initWithFileURL"), DesignatedInit)
-
-INSTANCE_METHOD(UIGestureRecognizer, (2, "initWithTarget", "action"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(UIInputView, (2, "initWithFrame", "inputViewStyle"),
-                DesignatedInit)
-
-INSTANCE_METHOD(UINavigationItem, (1, "initWithTitle"), DesignatedInit)
-
-INSTANCE_METHOD(UIStoryboardSegue, 
-                (3, "initWithIdentifier", "source", "destination"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(UITableViewCell, (2, "initWithStyle", "reuseIdentifier"), 
-                DesignatedInit)
-
-INSTANCE_METHOD(UITextView, (2, "initWithFrame", "textContainer"),
-                DesignatedInit)
-
-INSTANCE_METHOD(UIView, (1, "initWithFrame"), DesignatedInit)
-
-INSTANCE_METHOD(UIViewController, (2, "initWithNibName", "bundle"), 
-                DesignatedInit)
-
-// Consider all types in UIFont methods to be non-optional.
-OBJC_CLASS(UIFont, OptionalTypeAdjustment(0))
-CLASS_METHOD(UIFont, (2, "fontWithName", "size"),
-             OptionalTypeAdjustment(1, OTK_ImplicitlyUnwrappedOptional));
-OBJC_PROPERTY(UIFont, familyName, OTK_None)
-OBJC_PROPERTY(UIFont, fontName, OTK_None)
-
-
-// Consider all parameter types in NSView methods to be non-optional and the
-// return optional.
-OBJC_PROTOCOL(UIApplicationDelegate, OptionalTypeAdjustment(1, OTK_None))
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (2, "application", "willFinishLaunchingWithOptions"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None,
-                                          OTK_ImplicitlyUnwrappedOptional));
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (2, "application", "didFinishLaunchingWithOptions"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None,
-                                          OTK_ImplicitlyUnwrappedOptional));
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (4,"application", "openURL", "sourceApplication", "annotation"),
-                OptionalTypeAdjustment(4, OTK_None, OTK_None, OTK_None,
-                                       OTK_ImplicitlyUnwrappedOptional));
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (4, "application", "handleActionWithIdentifier",
-                    "forLocalNotification", "completionHandler"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional));
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (4, "application", "handleActionWithIdentifier",
-                    "forRemoteNotification", "completionHandler"),
-                OptionalTypeAdjustment(3, OTK_None, OTK_None, OTK_Optional));
-PROTOCOL_INSTANCE_METHOD(UIApplicationDelegate,
-                (3, "application",
-                    "viewControllerWithRestorationIdentifierPath",
-                    "coder"),
-                OptionalTypeAdjustment(4, OTK_Optional,
-                                          OTK_None, OTK_None, OTK_None));
-OBJC_PROTOCOL_PROPERTY(UIApplicationDelegate, window, OTK_Optional)
-
-#undef INSTANCE_METHOD
-#undef PROTOCOL_INSTANCE_METHOD
-#undef CLASS_METHOD
-#undef OBJC_PROPERTY
-#undef OBJC_PROTOCOL_PROPERTY
-#undef OBJC_CLASS
-#undef OBJC_PROTOCOL
-#undef START_MODULE
diff --git a/tools/swift-ide-test/swift-ide-test.cpp b/tools/swift-ide-test/swift-ide-test.cpp
index 358b9a6..b8f0330 100644
--- a/tools/swift-ide-test/swift-ide-test.cpp
+++ b/tools/swift-ide-test/swift-ide-test.cpp
@@ -246,6 +246,9 @@
 static llvm::cl::list<std::string>
 FrameworkPaths("F", llvm::cl::desc("add a directory to the framework search path"));
 
+static llvm::cl::list<std::string>
+SystemFrameworkPaths("iframework", llvm::cl::desc("add a directory to the system framework search path"));
+
 static llvm::cl::opt<std::string>
 ResourceDir("resource-dir",
             llvm::cl::desc("The directory that holds the compiler resource files"));
@@ -2719,7 +2722,7 @@
 
   if (options::Action == ActionType::DumpCompletionCache) {
     if (options::InputFilenames.empty()) {
-      llvm::errs() << "-dump-completin-cache requires an input file\n";
+      llvm::errs() << "-dump-completion-cache requires an input file\n";
       return 1;
     }
 
@@ -2783,6 +2786,11 @@
     options::ModuleCachePath;
   InitInvok.setImportSearchPaths(options::ImportPaths);
   InitInvok.setFrameworkSearchPaths(options::FrameworkPaths);
+  for (const auto &systemFrameworkPath : options::SystemFrameworkPaths) {
+    auto &extraArgs = InitInvok.getClangImporterOptions().ExtraArgs;
+    extraArgs.push_back("-iframework");
+    extraArgs.push_back(systemFrameworkPath);
+  }
   InitInvok.getFrontendOptions().EnableSourceImport |=
     options::EnableSourceImport;
   InitInvok.getFrontendOptions().ImplicitObjCHeaderPath =
diff --git a/unittests/AST/SourceLocTests.cpp b/unittests/AST/SourceLocTests.cpp
index a9a2fb3..9b701a4 100644
--- a/unittests/AST/SourceLocTests.cpp
+++ b/unittests/AST/SourceLocTests.cpp
@@ -48,6 +48,12 @@
       C.Ctx.getIdentifier("bb"),
       DeclNameLoc(start.getAdvancedLoc(3)),
       /*implicit*/false);
+  auto destImplicit = new (C.Ctx) UnresolvedDotExpr(
+      destBase,
+      start.getAdvancedLoc(2),
+      C.Ctx.getIdentifier("bb"),
+      DeclNameLoc(start.getAdvancedLoc(3)),
+      /*implicit*/true);
 
   auto sourceBase = new (C.Ctx) UnresolvedDeclRefExpr(
       C.Ctx.getIdentifier("cc"),
@@ -59,6 +65,13 @@
       C.Ctx.getIdentifier("dd"),
       DeclNameLoc(start.getAdvancedLoc(11)),
       /*implicit*/false);
+  auto sourceImplicit = new (C.Ctx) UnresolvedDotExpr(
+      sourceBase,
+      start.getAdvancedLoc(10),
+      C.Ctx.getIdentifier("dd"),
+      DeclNameLoc(start.getAdvancedLoc(11)),
+      /*implicit*/true);
+
 
   auto invalid = new (C.Ctx) UnresolvedDeclRefExpr(
       C.Ctx.getIdentifier("invalid"),
@@ -74,8 +87,30 @@
   EXPECT_EQ(SourceRange(start, start.getAdvancedLoc(11)),
             complete->getSourceRange());
 
+  // Implicit dest should not change the source range.
+  auto completeImplDest = new (C.Ctx) AssignExpr( destImplicit
+                                                , start.getAdvancedLoc(6)
+                                                , source, /*implicit*/false);
+  EXPECT_EQ(start, completeImplDest->getStartLoc());
+  EXPECT_EQ(start.getAdvancedLoc(6), completeImplDest->getEqualLoc());
+  EXPECT_EQ(start.getAdvancedLoc(6), completeImplDest->getLoc());
+  EXPECT_EQ(start.getAdvancedLoc(11), completeImplDest->getEndLoc());
+  EXPECT_EQ(SourceRange(start, start.getAdvancedLoc(11)),
+            completeImplDest->getSourceRange());
+
+  // Implicit source should not change the source range.
+  auto completeImplSrc = new (C.Ctx) AssignExpr( dest, start.getAdvancedLoc(6)
+                                               , sourceImplicit
+                                               , /*implicit*/false);
+  EXPECT_EQ(start, completeImplSrc->getStartLoc());
+  EXPECT_EQ(start.getAdvancedLoc(6), completeImplSrc->getEqualLoc());
+  EXPECT_EQ(start.getAdvancedLoc(6), completeImplSrc->getLoc());
+  EXPECT_EQ(start.getAdvancedLoc(11), completeImplSrc->getEndLoc());
+  EXPECT_EQ(SourceRange(start, start.getAdvancedLoc(11)),
+            completeImplSrc->getSourceRange());
+
   auto invalidSource = new (C.Ctx) AssignExpr(dest, SourceLoc(), invalid,
-                                              /*implicit*/true);
+                                              /*implicit*/false);
   EXPECT_EQ(start, invalidSource->getStartLoc());
   EXPECT_EQ(SourceLoc(), invalidSource->getEqualLoc());
   EXPECT_EQ(SourceLoc(), invalidSource->getLoc());
@@ -84,7 +119,7 @@
             invalidSource->getSourceRange());
 
   auto invalidDest = new (C.Ctx) AssignExpr(invalid, SourceLoc(), source,
-                                            /*implicit*/true);
+                                            /*implicit*/false);
   EXPECT_EQ(start.getAdvancedLoc(8), invalidDest->getStartLoc());
   EXPECT_EQ(SourceLoc(), invalidDest->getEqualLoc());
   EXPECT_EQ(SourceLoc(), invalidDest->getLoc());
@@ -93,10 +128,62 @@
             invalidDest->getSourceRange());
 
   auto invalidAll = new (C.Ctx) AssignExpr(invalid, SourceLoc(), invalid,
-                                           /*implicit*/true);
+                                           /*implicit*/false);
   EXPECT_EQ(SourceLoc(), invalidAll->getStartLoc());
   EXPECT_EQ(SourceLoc(), invalidAll->getEqualLoc());
   EXPECT_EQ(SourceLoc(), invalidAll->getLoc());
   EXPECT_EQ(SourceLoc(), invalidAll->getEndLoc());
   EXPECT_EQ(SourceRange(), invalidAll->getSourceRange());
 }
+
+TEST(SourceLoc, TupleExpr) {
+  TestContext C;
+  
+  // In a TupleExpr, if the parens are both invalid, then you can only have a
+  // valid range iff both the first element and last element have valid ranges.
+  // Source ranges also have the property:
+  //   Start.isValid() == End.isValid()
+  // For example, given the buffer "one", of the form:
+  // (tuple_expr
+  //   (declref_expr range=[test.swift:1:0 - line:1:2] ...)
+  //   (declref_expr range=invalid ...))
+  // the range of this TupleExpr is SourceLoc() (invalid).
+  //       v invalid                v invalid
+  //       (     one,         two   )
+  //       valid ^    invalid ^
+  // COL:  xxxxxx012xxxxxxxxxxxxxxxxx
+  // but the SourceRange of 'one' is 1:0 - 1:2.
+  
+  //                                                012
+  auto bufferID = C.Ctx.SourceMgr.addMemBufferCopy("one");
+  SourceLoc start = C.Ctx.SourceMgr.getLocForBufferStart(bufferID);
+  
+  auto one = new (C.Ctx) UnresolvedDeclRefExpr(
+      C.Ctx.getIdentifier("one"),
+      DeclRefKind::Ordinary,
+      DeclNameLoc(start));
+  
+  auto two = new (C.Ctx) UnresolvedDeclRefExpr(
+      C.Ctx.getIdentifier("two"),
+      DeclRefKind::Ordinary,
+      DeclNameLoc());
+  
+  // the tuple from the example
+  SmallVector<Expr *, 2> subExprsRight({ one, two });
+  SmallVector<Identifier, 2> subExprNamesRight(2, Identifier());
+  auto rightInvalidTuple = TupleExpr::createImplicit(C.Ctx, subExprsRight, subExprNamesRight);
+  
+  EXPECT_EQ(start, one->getStartLoc());
+  EXPECT_EQ(SourceLoc(), rightInvalidTuple->getStartLoc());
+  EXPECT_EQ(SourceLoc(), rightInvalidTuple->getEndLoc());
+  EXPECT_EQ(SourceRange(), rightInvalidTuple->getSourceRange());
+
+  SmallVector<Expr *, 2> subExprsLeft({ two, one });
+  SmallVector<Identifier, 2> subExprNamesLeft(2, Identifier());
+  auto leftInvalidTuple = TupleExpr::createImplicit(C.Ctx, subExprsLeft, subExprNamesLeft);
+  
+  EXPECT_EQ(start, one->getStartLoc());
+  EXPECT_EQ(SourceLoc(), leftInvalidTuple->getStartLoc());
+  EXPECT_EQ(SourceLoc(), leftInvalidTuple->getEndLoc());
+  EXPECT_EQ(SourceRange(), leftInvalidTuple->getSourceRange());
+}
diff --git a/utils/build-presets.ini b/utils/build-presets.ini
index 21b5d55..a0027bf 100644
--- a/utils/build-presets.ini
+++ b/utils/build-presets.ini
@@ -258,6 +258,12 @@
 skip-test-tvos-host
 skip-test-watchos-host
 
+[preset: buildbot,tools=RA,stdlib=RDA,sil-ownership]
+mixin-preset=
+    buildbot,tools=RA,stdlib=RDA
+build-subdir=Ninja-ReleaseAssert+stdlib-RelWithDebInfo+sil-ownership
+enable-sil-ownership
+dash-dash
 
 #===------------------------------------------------------------------------===#
 # Incremental buildbots for Darwin OSes
@@ -317,6 +323,80 @@
 skip-test-tvos
 skip-test-watchos
 
+[preset: buildbot_incremental,tools=RA,stdlib=RA,build]
+mixin-preset=buildbot_incremental,tools=RA,stdlib=RA
+mixin-preset=buildbot_incremental_base_all_platforms
+
+build-subdir=buildbot_incremental
+
+# Build Release without debug info, because it is faster to build.
+release
+assertions
+
+# Build llbuild & swiftpm here
+llbuild
+swiftpm
+
+# Build Playground support
+playgroundlogger
+playgroundsupport
+
+dash-dash
+
+skip-test-swift
+
+[preset: buildbot_incremental,tools=RA,stdlib=RA,test=macOS]
+mixin-preset=buildbot_incremental,tools=RA,stdlib=RA,build
+
+dash-dash
+
+skip-test-ios
+skip-test-tvos
+skip-test-watchos
+skip-test-llbuild
+skip-test-swiftpm
+skip-test-playgroundlogger
+skip-test-playgroundsupport
+
+[preset: buildbot_incremental,tools=RA,stdlib=RA,test=iOS]
+mixin-preset=buildbot_incremental,tools=RA,stdlib=RA,build
+
+dash-dash
+
+skip-test-osx
+skip-test-tvos
+skip-test-watchos
+skip-test-llbuild
+skip-test-swiftpm
+skip-test-playgroundlogger
+skip-test-playgroundsupport
+
+[preset: buildbot_incremental,tools=RA,stdlib=RA,test=watchOS]
+mixin-preset=buildbot_incremental,tools=RA,stdlib=RA,build
+
+dash-dash
+
+skip-test-osx
+skip-test-tvos
+skip-test-ios
+skip-test-llbuild
+skip-test-swiftpm
+skip-test-playgroundlogger
+skip-test-playgroundsupport
+
+[preset: buildbot_incremental,tools=RA,stdlib=RA,test=tvOS]
+mixin-preset=buildbot_incremental,tools=RA,stdlib=RA,build
+
+dash-dash
+
+skip-test-osx
+skip-test-watchos
+skip-test-ios
+skip-test-llbuild
+skip-test-swiftpm
+skip-test-playgroundlogger
+skip-test-playgroundsupport
+
 [preset: buildbot_incremental,tools=RA,stdlib=RA,xcode]
 mixin-preset=buildbot_incremental,tools=RA,stdlib=RA
 build-subdir=buildbot_incremental_xcode
@@ -719,6 +799,10 @@
 install-libdispatch
 reconfigure
 
+# Ubuntu 16.10 preset for backwards compat and future customizations.
+[preset: buildbot_linux_1610]
+mixin-preset=buildbot_linux
+
 # Ubuntu 16.04 preset for backwards compat and future customizations.
 [preset: buildbot_linux_1604]
 mixin-preset=buildbot_linux
@@ -986,6 +1070,9 @@
 
 dash-dash
 
+# Run the SIL verifier after each transform when building swift files
+sil-verify-all
+
 # Don't run host tests for iOS, tvOS and watchOS platforms to make the build
 # faster.
 skip-test-ios-host
diff --git a/utils/build-script b/utils/build-script
index a5ecd83..1f62d61 100755
--- a/utils/build-script
+++ b/utils/build-script
@@ -2023,6 +2023,10 @@
         metavar="COUNT",
         default=default_max_lto_link_job_counts['swift'])
 
+    parser.add_argument("--enable-sil-ownership",
+                        help="Enable the SIL ownership model",
+                        action='store_true')
+
     parser.add_argument(
         # Explicitly unavailable options here.
         "--build-jobs",
diff --git a/utils/pass-pipeline/src/passes.py b/utils/pass-pipeline/src/passes.py
index 0c6f397..da7b4fa 100644
--- a/utils/pass-pipeline/src/passes.py
+++ b/utils/pass-pipeline/src/passes.py
@@ -27,7 +27,6 @@
 GlobalLoadStoreOpts = Pass('GlobalLoadStoreOpts')
 GlobalOpt = Pass('GlobalOpt')
 IVInfoPrinter = Pass('IVInfoPrinter')
-InOutDeshadowing = Pass('InOutDeshadowing')
 InstCount = Pass('InstCount')
 LICM = Pass('LICM')
 LateInliner = Pass('LateInliner')
@@ -76,7 +75,6 @@
     GlobalLoadStoreOpts,
     GlobalOpt,
     IVInfoPrinter,
-    InOutDeshadowing,
     InstCount,
     LICM,
     LateInliner,
diff --git a/utils/scale-test b/utils/scale-test
new file mode 100755
index 0000000..939b304
--- /dev/null
+++ b/utils/scale-test
@@ -0,0 +1,179 @@
+#!/usr/bin/env python
+#
+# -*- python -*-
+#
+# Runs a .gyb scale-testing file repeatedly through swiftc while varying a
+# scaling variable 'N', collects json stats from the compiler, transforms the
+# problem to log-space and runs a linear regression to estimate the exponent on
+# the stat's growth curve relative to N.
+#
+# The estimate will be more accurate as N increases, so if you get a
+# not-terribly-convincing estimate, try increasing --begin and --end to larger
+# values.
+#
+
+import gyb, os, os.path, subprocess
+
+def find_which(p):
+    for d in os.environ["PATH"].split(os.pathsep):
+        full = os.path.join(d,p)
+        if os.path.isfile(full) and os.access(full, os.X_OK):
+            return full
+    return p
+
+# Evidently the debug-symbol reader in dtrace is sufficiently slow and/or buggy
+# that attempting to inject probes into a binary w/ debuginfo is asking for a
+# failed run (possibly racing with probe insertion, or probing the stabs
+# entries, see rdar://problem/7037927 or rdar://problem/11490861 respectively),
+# so we sniff the presence of debug symbols here.
+def has_debuginfo(swiftc):
+    swiftc = find_which(swiftc)
+    for line in subprocess.check_output(["dwarfdump", "--file-stats", swiftc]).splitlines():
+        if '%' not in line:
+            continue
+        fields = line.split()
+        if fields[8] != '0.00%' or fields[10] != '0.00%':
+            return True
+    return False
+
+
+def write_input_file(args, ast, d, n):
+    ifile = os.path.join(d, "in%d.swift" % n)
+    with open(ifile,'w+') as f:
+        f.write(gyb.execute_template(ast, '', N=n))
+    return ifile
+
+
+def run_once(args, ast, rng):
+    import sys, shutil, tempfile, json
+    r = {}
+    try:
+        d = tempfile.mkdtemp()
+        inputs = [write_input_file(args, ast, d, i) for i in rng]
+        primary = inputs[-1]
+        ofile = os.path.join(d, "out.o")
+        mode = "-c"
+        if args.parse:
+            mode = "-parse"
+        command = [args.swiftc_binary,
+                   "-frontend", mode,
+                   "-o", ofile,
+                   "-primary-file", primary] + inputs
+        if args.dtrace:
+            trace = os.path.join(d, "trace.txt")
+            script = "pid$target:swiftc:*%s*:entry { @[probefunc] = count() }" % args.select
+            subprocess.check_call(
+                ["sudo", "dtrace", "-q",
+                 "-o", trace,
+                 "-b", "256",
+                 "-n", script,
+                 "-c", " ".join(command)])
+            r = {fields[0]: int(fields[1]) for fields in
+                 [line.split() for line in open(trace)]
+                 if len(fields) == 2}
+        else:
+            stats = os.path.join(d, "stats.json")
+            subprocess.check_call(
+                command + ["-Xllvm", "-stats",
+                           "-Xllvm", "-stats-json",
+                           "-Xllvm", "-info-output-file=" + stats])
+            with open(stats) as f:
+                r = json.load(f)
+    finally:
+        shutil.rmtree(d)
+
+    return {k:v for (k,v) in r.items() if args.select in k}
+
+
+def run_many(args):
+
+    if args.dtrace and has_debuginfo(args.swiftc_binary):
+        print ""
+        print "**************************************************"
+        print ""
+        print "dtrace is unreliable on binaries w/ debug symbols"
+        print "please run 'strip -S %s'" % args.swiftc_binary
+        print "or pass a different --swiftc-binary"
+        print ""
+        print "**************************************************"
+        print ""
+        exit(1)
+
+    ast = gyb.parse_template(args.file.name, args.file.read())
+    rng = range(args.begin, args.end, args.step)
+    if args.multi_file:
+        return (rng, [run_once(args, ast, rng[0:i+1]) for i in range(len(rng))])
+    else:
+        return (rng, [run_once(args, ast, [r]) for r in rng])
+
+
+def report(args, rng, runs):
+    import numpy as np
+    bad = False
+    keys = set.intersection(*[set(j.keys()) for j in runs])
+    A = np.vstack([np.log(rng), np.ones(len(rng))]).T
+    rows = []
+    for k in keys:
+        vals = [r[k] for r in runs]
+        bounded = [max(v, 1) for v in vals]
+        b, a = np.linalg.lstsq(A, np.log(bounded))[0]
+        b = 0 if np.isclose(b, 0) else b
+        rows.append((b, k, vals))
+    rows.sort()
+    tolerance = 1.2
+    for (b, k, vals) in rows:
+        if b >= tolerance:
+            bad = True
+        if not args.quiet or b >= tolerance:
+            print "O(n^%1.1f) : %s" % (b, k)
+            if args.values:
+                print "                = ", vals
+    return bad
+
+
+def main():
+    import argparse, sys
+    parser = argparse.ArgumentParser()
+    parser.add_argument(
+        'file', type=argparse.FileType(),
+        help='Path to GYB template file (defaults to stdin)', nargs='?',
+        default=sys.stdin)
+    parser.add_argument(
+        '--values', action='store_true',
+        default=False, help='print stat values')
+    parser.add_argument(
+        '--quiet', action='store_true',
+        default=False, help='only print superlinear stats')
+    parser.add_argument(
+        '--parse', action='store_true',
+        default=False, help='only run compiler with -parse')
+    parser.add_argument(
+        '--dtrace', action='store_true',
+        default=False, help='use dtrace to sample all functions')
+    parser.add_argument(
+        '--multi-file', action='store_true',
+        default=False, help='vary number of input files as well')
+    parser.add_argument(
+        '--begin', type=int,
+        default=10, help='first value for N')
+    parser.add_argument(
+        '--end', type=int,
+        default=100, help='last value for N')
+    parser.add_argument(
+        '--step', type=int,
+        default=10, help='step value for N')
+    parser.add_argument(
+        '--swiftc-binary',
+        default="swiftc", help='swift binary to execute')
+    parser.add_argument(
+        '--select',
+        default="", help='substring of counters/symbols to restrict attention to')
+
+    args = parser.parse_args(sys.argv[1:])
+    (rng, runs) = run_many(args)
+    if report(args, rng, runs):
+        exit(1)
+    exit(0)
+
+if __name__ == '__main__':
+    main()
diff --git a/utils/swift-api-dump.py b/utils/swift-api-dump.py
index b988d30..338f09f 100755
--- a/utils/swift-api-dump.py
+++ b/utils/swift-api-dump.py
@@ -1,23 +1,24 @@
 #!/usr/bin/env python
 
 # This tool dumps imported Swift APIs to help validate changes in the
-# Clang importer and its heuristics. One can execute it to dump the
-# API of a given module within a particular SDK, e.g., UIKit from the
-# iOS SDK as seen in Swift 3 after the "grand renaming":
+# projection of (Objective-)C APIs into Swift, which is a function of the
+# (Objective-)C APIs, any API notes added on top of those APIs, and the
+# Clang importer itself. One can execute it to dump the API of a given
+# module within a particular SDK, e.g., UIKit from the iOS SDK as seen in
+# Swift 3 compatibility mode:
 #
-#   /path/to/bin/dir/swift-api-dump.py -3 -o output-dir -m UIKit -s iphoneos
+#   /path/to/bin/dir/swift-api-dump.py -swift-version 3 -o output-dir \
+#       -m UIKit -s iphoneos
 #
-# The -3 argument indicates that we're using the Swift 3 Clang
-# importer rules. The "-m" argument can be omitted, in which case the
-# script will collect all of the frameworks in the named SDK(s) and
-# dump their APIs.
+# The "-m" argument can be omitted, in which case the script will collect
+# all of the frameworks in the named SDK(s) and dump their APIs.
 #
 # One can supply multiple SDKs, written as a list. For example, to
-# dump the API for all frameworks across OS X, iOS, watchOS, and tvOS,
-# with the Swift 3 rules, use:
+# dump the API for all frameworks across macOS, iOS, watchOS, and tvOS,
+# in Swift 4, use:
 #
-#  /path/to/bin/dir/swift-api-dump.py -3 -o output-dir -s macosx iphoneos \
-#      watchos appletvos
+#  /path/to/bin/dir/swift-api-dump.py -swift-version 4 -o output-dir \
+#      -s macosx iphoneos watchos appletvos
 #
 
 from __future__ import print_function
@@ -93,11 +94,16 @@
                         help='Print extra information.')
     parser.add_argument('-F', '--framework-dir', action='append',
                         help='Add additional framework directories')
+    parser.add_argument('-iframework', '--system-framework-dir',
+                        action='append',
+                        help='Add additional system framework directories')
     parser.add_argument('-I', '--include-dir', action='append',
                         help='Add additional include directories')
     parser.add_argument('--enable-infer-import-as-member', action='store_true',
                         help='Infer when a global could be imported as a ' +
                         'member.')
+    parser.add_argument('-swift-version', type=int, metavar='N',
+                        help='the Swift version to use')
     return parser
 
 
@@ -187,7 +193,7 @@
 
 def pretty_sdk_name(sdk):
     if sdk.find("macosx") == 0:
-        return 'OSX'
+        return 'macOS'
     if sdk.find("iphoneos") == 0:
         return 'iOS'
     if sdk.find("watchos") == 0:
@@ -277,14 +283,16 @@
         '-module-print-skip-overlay',
         '-skip-unavailable',
         '-skip-print-doc-comments',
-        '-always-argument-labels',
         '-skip-overrides'
     ]
 
-    # Add -F / -I arguments.
+    # Add -F / -iframework / -I arguments.
     if args.framework_dir:
         for path in args.framework_dir:
             cmd_common = cmd_common + ['-F', path]
+    if args.system_framework_dir:
+        for path in args.system_framework_dir:
+            cmd_common = cmd_common + ['-iframework', path]
     if args.include_dir:
         for path in args.include_dir:
             cmd_common = cmd_common + ['-I', path]
@@ -293,6 +301,9 @@
     extra_args = ['-skip-imports']
     if args.enable_infer_import_as_member:
         extra_args = extra_args + ['-enable-infer-import-as-member']
+    if args.swift_version:
+        extra_args = extra_args + ['-swift-version', '%d' % args.swift_version]
+
     # Create a .swift file we can feed into swift-ide-test
     subprocess.call(['touch', source_filename])
 
diff --git a/utils/swift_build_support/swift_build_support/products/swift.py b/utils/swift_build_support/swift_build_support/products/swift.py
index cf40863..6f115a1 100644
--- a/utils/swift_build_support/swift_build_support/products/swift.py
+++ b/utils/swift_build_support/swift_build_support/products/swift.py
@@ -30,6 +30,9 @@
         # Add benchmark specific flags.
         self.cmake_options.extend(self._benchmark_flags)
 
+        # Add any sil ownership flags.
+        self.cmake_options.extend(self._sil_ownership_flags)
+
     @property
     def _runtime_sanitizer_flags(self):
         sanitizer_list = []
@@ -92,3 +95,9 @@
             "-DSWIFT_BENCHMARK_NUM_ONONE_ITERATIONS={}".format(onone_iters),
             "-DSWIFT_BENCHMARK_NUM_O_ITERATIONS={}".format(o_iters)
         ]
+
+    @property
+    def _sil_ownership_flags(self):
+        if not self.args.enable_sil_ownership:
+            return []
+        return ["-DSWIFT_STDLIB_ENABLE_SIL_OWNERSHIP=TRUE"]
diff --git a/utils/swift_build_support/tests/products/test_swift.py b/utils/swift_build_support/tests/products/test_swift.py
index 718cda8..c581a59 100644
--- a/utils/swift_build_support/tests/products/test_swift.py
+++ b/utils/swift_build_support/tests/products/test_swift.py
@@ -54,7 +54,8 @@
             darwin_deployment_version_osx="10.9",
             benchmark=False,
             benchmark_num_onone_iterations=3,
-            benchmark_num_o_iterations=3)
+            benchmark_num_o_iterations=3,
+            enable_sil_ownership=False)
 
         # Setup shell
         shell.dry_run = True
@@ -264,3 +265,14 @@
             ['-DSWIFT_BENCHMARK_NUM_ONONE_ITERATIONS=10',
              '-DSWIFT_BENCHMARK_NUM_O_ITERATIONS=25'],
             swift.cmake_options)
+
+    def test_sil_ownership_flags(self):
+        self.args.enable_sil_ownership = True
+        swift = Swift(
+            args=self.args,
+            toolchain=self.toolchain,
+            source_dir='/path/to/src',
+            build_dir='/path/to/build')
+        self.assertEqual(
+            ['-DSWIFT_STDLIB_ENABLE_SIL_OWNERSHIP=TRUE'],
+            swift.cmake_options)
diff --git a/utils/update-checkout b/utils/update-checkout
index 060f08e..7e3eb4c 100755
--- a/utils/update-checkout
+++ b/utils/update-checkout
@@ -82,42 +82,74 @@
                    echo=True)
 
 
-def update_all_repositories(args, config, scheme_name, cross_repos_pr):
+def update_repository_to_tag(args, repo_name, repo_path, tag_name):
+    with shell.pushd(repo_path, dry_run=False, echo=False):
+        tag_exists = shell.capture(['git', 'ls-remote', '--tags',
+                                    'origin', tag_name], echo=False)
+        if not tag_exists:
+            print("--- Skipping '" + repo_name + "' ---")
+            return
+        update_single_repository(repo_path,
+                                 tag_name,
+                                 args.reset_to_remote,
+                                 args.clean,
+                                 cross_repo=True)
+
+
+def update_repository_to_scheme(
+        args, config, repo_name, repo_path, scheme_name, cross_repos_pr):
+    cross_repo = False
     repo_branch = scheme_name
+    # This loop is only correct, since we know that each alias set has
+    # unique contents. This is checked by verify config. Thus the first
+    # branch scheme data that has scheme_name as one of its aliases is
+    # the only possible correct answer.
+    for v in config['branch-schemes'].values():
+        if scheme_name not in v['aliases']:
+            continue
+        repo_branch = v['repos'][repo_name]
+        remote_repo_id = config['repos'][repo_name]['remote']['id']
+        if remote_repo_id in cross_repos_pr:
+            cross_repo = True
+            pr_id = cross_repos_pr[remote_repo_id]
+            repo_branch = "ci_pr_{0}".format(pr_id)
+            with shell.pushd(repo_path, dry_run=False, echo=False):
+                shell.call(["git", "checkout", v['repos'][repo_name]],
+                           echo=True)
+                shell.capture(["git", "branch", "-D", repo_branch],
+                              echo=True, allow_non_zero_exit=True)
+                shell.call(["git", "fetch", "origin",
+                            "pull/{0}/merge:{1}"
+                            .format(pr_id, repo_branch)], echo=True)
+        break
+    update_single_repository(repo_path,
+                             repo_branch,
+                             args.reset_to_remote,
+                             args.clean,
+                             cross_repo)
+
+
+def update_all_repositories(args, config, scheme_name, cross_repos_pr):
     for repo_name in config['repos'].keys():
-        cross_repo = False
         if repo_name in args.skip_repository_list:
             print("--- Skipping '" + repo_name + "' ---")
             continue
         repo_path = os.path.join(SWIFT_SOURCE_ROOT, repo_name)
-        if scheme_name:
-            # This loop is only correct, since we know that each alias set has
-            # unique contents. This is checked by verify config. Thus the first
-            # branch scheme data that has scheme_name as one of its aliases is
-            # the only possible correct answer.
-            for v in config['branch-schemes'].values():
-                if scheme_name not in v['aliases']:
-                    continue
-                repo_branch = v['repos'][repo_name]
-                remote_repo_id = config['repos'][repo_name]['remote']['id']
-                if remote_repo_id in cross_repos_pr:
-                    cross_repo = True
-                    pr_id = cross_repos_pr[remote_repo_id]
-                    repo_branch = "ci_pr_{0}".format(pr_id)
-                    with shell.pushd(repo_path, dry_run=False, echo=False):
-                        shell.call(["git", "checkout", v['repos'][repo_name]],
-                                   echo=True)
-                        shell.capture(["git", "branch", "-D", repo_branch],
-                                      echo=True, allow_non_zero_exit=True)
-                        shell.call(["git", "fetch", "origin",
-                                    "pull/{0}/merge:{1}"
-                                    .format(pr_id, repo_branch)], echo=True)
-                break
-        update_single_repository(repo_path,
-                                 repo_branch,
-                                 args.reset_to_remote,
-                                 args.clean,
-                                 cross_repo)
+        if args.tag:
+            update_repository_to_tag(args, repo_name, repo_path, args.tag)
+        elif scheme_name:
+            update_repository_to_scheme(args,
+                                        config,
+                                        repo_name,
+                                        repo_path,
+                                        scheme_name,
+                                        cross_repos_pr)
+        else:
+            update_single_repository(repo_path,
+                                     branch=None,
+                                     reset_to_remote=args.reset_to_remote,
+                                     should_clean=args.clean,
+                                     cross_repo=False)
 
 
 def obtain_additional_swift_sources(
@@ -255,11 +287,15 @@
         help="""Check out related pull requests referenced in the given
         free-form GitHub-style comment.""",
         metavar='GITHUB-COMMENT',
-        dest='github_comment'),
+        dest='github_comment')
     parser.add_argument(
         '--dump-hashes',
         action='store_true',
         help='Dump the git hashes of all repositories being tracked')
+    parser.add_argument(
+        "--tag",
+        help="""Check out each repository to the specified tag.""",
+        metavar='TAG-NAME')
     args = parser.parse_args()
 
     clone = args.clone
diff --git a/validation-test/IDE/crashers/104-swift-gettypeofcompletioncontextexpr.swift b/validation-test/IDE/crashers/104-swift-gettypeofcompletioncontextexpr.swift
new file mode 100644
index 0000000..078c2eb
--- /dev/null
+++ b/validation-test/IDE/crashers/104-swift-gettypeofcompletioncontextexpr.swift
@@ -0,0 +1,3 @@
+// RUN: not --crash %target-swift-ide-test -code-completion -code-completion-token=A -source-filename=%s
+// REQUIRES: asserts
+{let:e(var d#^A^#
\ No newline at end of file
diff --git a/validation-test/IDE/crashers/105-swift-derivedconformance-deriverawrepresentable.swift b/validation-test/IDE/crashers/105-swift-derivedconformance-deriverawrepresentable.swift
new file mode 100644
index 0000000..27e7c73
--- /dev/null
+++ b/validation-test/IDE/crashers/105-swift-derivedconformance-deriverawrepresentable.swift
@@ -0,0 +1,3 @@
+// RUN: not --crash %target-swift-ide-test -code-completion -code-completion-token=A -source-filename=%s
+// REQUIRES: asserts
+let a{func j<T{enum b:T{case#^A^#
\ No newline at end of file
diff --git a/validation-test/IDE/crashers/106-swift-moduledecl-lookupconformance.swift b/validation-test/IDE/crashers/106-swift-moduledecl-lookupconformance.swift
new file mode 100644
index 0000000..fc4f673
--- /dev/null
+++ b/validation-test/IDE/crashers/106-swift-moduledecl-lookupconformance.swift
@@ -0,0 +1,4 @@
+// RUN: not --crash %target-swift-ide-test -code-completion -code-completion-token=A -source-filename=%s
+// REQUIRES: asserts
+protocol c{#^A^#class B<d,g:T>:c
+class T
\ No newline at end of file
diff --git a/validation-test/IDE/crashers/107-swift-typechecker-typecheckabstractfunctionbodyuntil.swift b/validation-test/IDE/crashers/107-swift-typechecker-typecheckabstractfunctionbodyuntil.swift
new file mode 100644
index 0000000..7bc0cc8
--- /dev/null
+++ b/validation-test/IDE/crashers/107-swift-typechecker-typecheckabstractfunctionbodyuntil.swift
@@ -0,0 +1,3 @@
+// RUN: not --crash %target-swift-ide-test -code-completion -code-completion-token=A -source-filename=%s
+// REQUIRES: asserts
+let a{func i(={#^A^#
\ No newline at end of file
diff --git a/validation-test/IDE/crashers/108-swift-typechecker-typecheckcompletionsequence.swift b/validation-test/IDE/crashers/108-swift-typechecker-typecheckcompletionsequence.swift
new file mode 100644
index 0000000..4a610df
--- /dev/null
+++ b/validation-test/IDE/crashers/108-swift-typechecker-typecheckcompletionsequence.swift
@@ -0,0 +1,4 @@
+// RUN: not --crash %target-swift-ide-test -code-completion -code-completion-token=A -source-filename=%s
+// REQUIRES: asserts
+func c{case
+let a#^A^#}
\ No newline at end of file
diff --git a/validation-test/SIL/crashers/045-swift-parser-parseidentifier.sil b/validation-test/SIL/crashers/045-swift-parser-parseidentifier.sil
new file mode 100644
index 0000000..c8b8f83
--- /dev/null
+++ b/validation-test/SIL/crashers/045-swift-parser-parseidentifier.sil
@@ -0,0 +1,3 @@
+// RUN: not --crash %target-sil-opt %s
+// REQUIRES: asserts
+class j<rethrows
\ No newline at end of file
diff --git a/validation-test/Sema/type_checker_crashers/rdar27017206.swift b/validation-test/Sema/type_checker_crashers/rdar27017206.swift
new file mode 100644
index 0000000..2da6527
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar27017206.swift
@@ -0,0 +1,6 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+// REQUIRES: asserts
+
+var str = "Hello"
+String(str.characters.subscript(
+    str.characters.startIndex..<str.characters.endIndex))
diff --git a/validation-test/Sema/type_checker_crashers/rdar27249691.swift b/validation-test/Sema/type_checker_crashers/rdar27249691.swift
new file mode 100644
index 0000000..c1cd231
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar27249691.swift
@@ -0,0 +1,16 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+// REQUIRES: asserts
+
+infix operator ~> : BitwiseShiftPrecedence
+
+struct F {}
+
+protocol P {
+  associatedtype R
+  func X() -> R
+  static func ~> (: Self, _: F) -> R
+}
+
+func ~> <T:P> (: T, _: F) -> T.R {
+  return X()
+}
diff --git a/validation-test/Sema/type_checker_crashers/rdar28023899.swift b/validation-test/Sema/type_checker_crashers/rdar28023899.swift
new file mode 100644
index 0000000..3cd31db
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar28023899.swift
@@ -0,0 +1,13 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+// REQUIRES: asserts
+
+class B : Equatable {
+  static func == (lhs: B, rhs: B) -> Bool { return true }
+}
+
+class C : B {
+  static var v: C { return C() }
+}
+
+let c: C! = nil
+_ = c == .v
diff --git a/validation-test/Sema/type_checker_crashers/rdar28145033.swift b/validation-test/Sema/type_checker_crashers/rdar28145033.swift
new file mode 100644
index 0000000..1e2d06b
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar28145033.swift
@@ -0,0 +1,4 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+
+let a = [1]
+_ = a.index(of: a.min()) // a.min() returns an optional
diff --git a/validation-test/Sema/type_checker_crashers/rdar28221883.swift b/validation-test/Sema/type_checker_crashers/rdar28221883.swift
new file mode 100644
index 0000000..1b470c5
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar28221883.swift
@@ -0,0 +1,13 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+
+typealias F = (inout Int?) -> Void
+
+class C {
+  var s: [String : Any?] = [:]
+}
+
+class K<T> {
+  init(with: @escaping (T, F) -> Void) {}
+}
+
+_ = K{ (c: C?, fn: F) in fn(&(c.s["hi"])) }
diff --git a/validation-test/Sema/type_checker_crashers/rdar28235248.swift b/validation-test/Sema/type_checker_crashers/rdar28235248.swift
new file mode 100644
index 0000000..d804f10
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar28235248.swift
@@ -0,0 +1,12 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+
+protocol II {
+  associatedtype E
+}
+
+protocol P {
+  associatedtype I : II
+  associatedtype X
+}
+
+extension P where I.E : P, I.E.X.D == Int, I.E.X == Int {}
diff --git a/validation-test/Sema/type_checker_crashers/rdar28619118.swift b/validation-test/Sema/type_checker_crashers/rdar28619118.swift
new file mode 100644
index 0000000..98f5797
--- /dev/null
+++ b/validation-test/Sema/type_checker_crashers/rdar28619118.swift
@@ -0,0 +1,5 @@
+// RUN: not --crash %target-swift-frontend %s -parse
+
+_ = [1].reduce( [Int:Int]() ) {
+  (dict, num) in dict[num] = num * num
+}
diff --git a/validation-test/Sema/type_checker_crashers/rdar27261929.swift b/validation-test/Sema/type_checker_crashers_fixed/rdar27261929.swift
similarity index 85%
rename from validation-test/Sema/type_checker_crashers/rdar27261929.swift
rename to validation-test/Sema/type_checker_crashers_fixed/rdar27261929.swift
index 116f6c7..3207aca 100644
--- a/validation-test/Sema/type_checker_crashers/rdar27261929.swift
+++ b/validation-test/Sema/type_checker_crashers_fixed/rdar27261929.swift
@@ -1,4 +1,4 @@
-// RUN: not --crash %target-swift-frontend %s -parse
+// RUN: %target-swift-frontend %s -parse
 
 public enum R<V> {
   case value(V)
diff --git a/validation-test/compiler_crashers/00046-swift-archetypebuilder-potentialarchetype-getnestedtype.timeout.swift b/validation-test/compiler_crashers/00046-swift-archetypebuilder-potentialarchetype-getnestedtype.timeout.swift
index 59d5185..1c5e340 100644
--- a/validation-test/compiler_crashers/00046-swift-archetypebuilder-potentialarchetype-getnestedtype.timeout.swift
+++ b/validation-test/compiler_crashers/00046-swift-archetypebuilder-potentialarchetype-getnestedtype.timeout.swift
@@ -6,9 +6,8 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-protocol P{
-protocol A
-typealias e=b
-typealias e
-typealias e=A
-typealias b
+protocol a{
+protocol b
+typealias c=d
+typealias c
+typealias c=b
diff --git a/validation-test/compiler_crashers/09650-swift-typebase-getcanonicaltype.swift b/validation-test/compiler_crashers/09650-swift-typebase-getcanonicaltype.swift
index 65d7c44..e59dc7d 100644
--- a/validation-test/compiler_crashers/09650-swift-typebase-getcanonicaltype.swift
+++ b/validation-test/compiler_crashers/09650-swift-typebase-getcanonicaltype.swift
@@ -6,6 +6,4 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-class B<I
-func g<T{enum A:T
-enum S<b:B<T.j>
+func a<b{enum c:b
diff --git a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift b/validation-test/compiler_crashers/28438-swift-typebase-getcanonicaltype.swift
similarity index 68%
copy from validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
copy to validation-test/compiler_crashers/28438-swift-typebase-getcanonicaltype.swift
index e1a6791..2ea5dbb 100644
--- a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
+++ b/validation-test/compiler_crashers/28438-swift-typebase-getcanonicaltype.swift
@@ -1,5 +1,4 @@
 // This source file is part of the Swift.org open source project
-//
 // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
 // Licensed under Apache License v2.0 with Runtime Library Exception
 //
@@ -7,14 +6,5 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-
-// Issue found by https://github.com/austinzheng (Austin Zheng)
-
-enum A<T> {
-    case Just(T)
-    case Error
-}
-
-func foo() -> A<(String, String?)> {
-    return A.Just("abc", "def")
-}
+// REQUIRES: asserts
+protocol A{typealias e}struct B:A{var f=e
diff --git a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift b/validation-test/compiler_crashers/28439-swift-type-transform.swift
similarity index 68%
copy from validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
copy to validation-test/compiler_crashers/28439-swift-type-transform.swift
index e1a6791..b0f3075 100644
--- a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
+++ b/validation-test/compiler_crashers/28439-swift-type-transform.swift
@@ -1,5 +1,4 @@
 // This source file is part of the Swift.org open source project
-//
 // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
 // Licensed under Apache License v2.0 with Runtime Library Exception
 //
@@ -7,14 +6,6 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-
-// Issue found by https://github.com/austinzheng (Austin Zheng)
-
-enum A<T> {
-    case Just(T)
-    case Error
-}
-
-func foo() -> A<(String, String?)> {
-    return A.Just("abc", "def")
-}
+func b<T{
+typealias e:T.h{return[.E == e
+var(
diff --git a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift b/validation-test/compiler_crashers/28440-swift-typechecker-resolveidentifiertype.swift
similarity index 68%
copy from validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
copy to validation-test/compiler_crashers/28440-swift-typechecker-resolveidentifiertype.swift
index e1a6791..f6eab4f 100644
--- a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
+++ b/validation-test/compiler_crashers/28440-swift-typechecker-resolveidentifiertype.swift
@@ -1,5 +1,4 @@
 // This source file is part of the Swift.org open source project
-//
 // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
 // Licensed under Apache License v2.0 with Runtime Library Exception
 //
@@ -7,14 +6,5 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-
-// Issue found by https://github.com/austinzheng (Austin Zheng)
-
-enum A<T> {
-    case Just(T)
-    case Error
-}
-
-func foo() -> A<(String, String?)> {
-    return A.Just("abc", "def")
-}
+// REQUIRES: asserts
+typealias f=(let a{let a={var:f.t
diff --git a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift b/validation-test/compiler_crashers/28441-swift-typerepr-walk.swift
similarity index 68%
copy from validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
copy to validation-test/compiler_crashers/28441-swift-typerepr-walk.swift
index e1a6791..0210692 100644
--- a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
+++ b/validation-test/compiler_crashers/28441-swift-typerepr-walk.swift
@@ -1,5 +1,4 @@
 // This source file is part of the Swift.org open source project
-//
 // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
 // Licensed under Apache License v2.0 with Runtime Library Exception
 //
@@ -7,14 +6,4 @@
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
 // RUN: not --crash %target-swift-frontend %s -parse
-
-// Issue found by https://github.com/austinzheng (Austin Zheng)
-
-enum A<T> {
-    case Just(T)
-    case Error
-}
-
-func foo() -> A<(String, String?)> {
-    return A.Just("abc", "def")
-}
+func a<T{{var _=[T:b}class b<A>
diff --git a/validation-test/compiler_crashers_fixed/00058-get-self-type-for-container.swift b/validation-test/compiler_crashers_fixed/00058-get-self-type-for-container.swift
index 3dc8661..5389406 100644
--- a/validation-test/compiler_crashers_fixed/00058-get-self-type-for-container.swift
+++ b/validation-test/compiler_crashers_fixed/00058-get-self-type-for-container.swift
@@ -5,7 +5,6 @@
 // See http://swift.org/LICENSE.txt for license information
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
-// RUN: %target-swift-frontend %s -parse -verify
-protocol c : b { // expected-error {{use of undeclared type 'b'}} expected-note {{in declaration of 'c'}}
-	func b // expected-error {{expected '(' in argument list of function declaration}}
-// expected-error@+1 {{expected declaration}}
+// RUN: not %target-swift-frontend %s -parse
+protocol c : b {
+	func b
diff --git a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift b/validation-test/compiler_crashers_fixed/26813-generic-enum-tuple-optional-payload.swift
similarity index 90%
rename from validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
rename to validation-test/compiler_crashers_fixed/26813-generic-enum-tuple-optional-payload.swift
index e1a6791..2d4ecdd 100644
--- a/validation-test/compiler_crashers/26813-generic-enum-tuple-optional-payload.swift
+++ b/validation-test/compiler_crashers_fixed/26813-generic-enum-tuple-optional-payload.swift
@@ -6,7 +6,7 @@
 // See http://swift.org/LICENSE.txt for license information
 // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
 
-// RUN: not --crash %target-swift-frontend %s -parse
+// RUN: %target-swift-frontend %s -parse
 
 // Issue found by https://github.com/austinzheng (Austin Zheng)
 
diff --git a/validation-test/stdlib/SpriteKit.swift b/validation-test/stdlib/SpriteKit.swift
index fe13789..9d7ade3 100644
--- a/validation-test/stdlib/SpriteKit.swift
+++ b/validation-test/stdlib/SpriteKit.swift
@@ -52,9 +52,8 @@
     expectEqual(node.attributeValues["test"], attrVal)
   }
 
-  SpriteKitTests.test("SKWarpGeometryGrid/1") {
+  SpriteKitTests.test("SKWarpGeometryGrid/init") {
     var warpGrid = SKWarpGeometryGrid(columns: 1, rows: 1)
-    expectEqual(warpGrid.numberOfColumns, 1)
 
     expectEqual(warpGrid.sourcePosition(at: 0).x, 0.0)
     warpGrid = warpGrid.replacingBySourcePositions(positions: [float2(1.0), float2(2.0), float2(3.0), float2(4.0)])
@@ -77,17 +76,11 @@
     expectEqual(warpGrid.sourcePosition(at: 0).x, 2.0)
   }
 
-  SpriteKitTests.test("SKWarpGeometryGrid/2") {
-    var warpGrid = SKWarpGeometryGrid(columns: 3, rows: 4)
-    expectEqual(warpGrid.numberOfColumns, 3)
-
-    expectEqual(warpGrid.sourcePosition(at: 0).x, 0.0)
-    warpGrid = warpGrid.replacingBySourcePositions(positions: [float2(30.0)])
-    expectEqual(warpGrid.sourcePosition(at: 0).x, 30.0)
-
-    expectEqual(warpGrid.destPosition(at: 0).x, 0.0)
-    warpGrid = warpGrid.replacingByDestinationPositions(positions: [float2(30.0)])
-    expectEqual(warpGrid.destPosition(at: 0).x, 30.0)
+  SpriteKitTests.test("SKWarpGeometryGrid/properties") {
+    func checkTheAPIsAreAvailable(grid: SKWarpGeometryGrid) {
+      _ = grid.replacingBySourcePositions(positions: [])
+      _ = grid.replacingByDestinationPositions(positions: [])
+    }
   }
 }