 }
 
 #endif
+
+// Wrappers around unsafe continuation builtins
+@_alwaysEmitIntoClient
+public func withUnsafeContinuation<T>(
+  _ fn: (UnsafeContinuation<T>) -> Void
+) async -> T {
+  return await Builtin.withUnsafeContinuation {
+    fn(UnsafeContinuation<T>($0))
+  }
+}
+
+@_alwaysEmitIntoClient
+public func withUnsafeThrowingContinuation<T>(
+  _ fn: (UnsafeThrowingContinuation<T>) -> Void
+) async throws -> T {
+  return try await Builtin.withUnsafeThrowingContinuation {
+    fn(UnsafeThrowingContinuation<T>($0))
+  }
+}
}

@_alwaysEmitIntoClient
@usableFromInline
internal func _resumeUnsafeThrowingContinuationWithError<T>(
  _ continuation: UnsafeThrowingContinuation<T>,
  _ error: __owned Error

// Intrinsics used by SILGen to resume or fail continuations
// for
@_alwaysEmitIntoClient
internal func _resumeUnsafeContinuation<T>(
  _ continuation: UnsafeContinuation<T>,
  _ value: __owned T
