import SwiftOnoneSupport

public func fromSwiftFramework()


// MARK: - BystandingLibrary Additions


// Available when BystandingLibrary is imported with SwiftFramework
public func fromSwiftFrameworkCrossImport()


[
  {
    key.kind: source.lang.swift.syntaxtype.keyword,
    key.offset: 0,
    key.length: 6
  },
  {
    key.kind: source.lang.swift.syntaxtype.identifier,
    key.offset: 7,
    key.length: 17
  },
  {
    key.kind: source.lang.swift.syntaxtype.attribute.builtin,
    key.offset: 26,
    key.length: 6
  },
  {
    key.kind: source.lang.swift.syntaxtype.keyword,
    key.offset: 33,
    key.length: 4
  },
  {
    key.kind: source.lang.swift.syntaxtype.identifier,
    key.offset: 38,
    key.length: 18
  },
  {
    key.kind: source.lang.swift.syntaxtype.comment,
    key.offset: 61,
    key.length: 39
  },
  {
    key.kind: source.lang.swift.syntaxtype.comment.mark,
    key.offset: 64,
    key.length: 35
  },
  {
    key.kind: source.lang.swift.syntaxtype.comment,
    key.offset: 102,
    key.length: 68
  },
  {
    key.kind: source.lang.swift.syntaxtype.attribute.builtin,
    key.offset: 170,
    key.length: 6
  },
  {
    key.kind: source.lang.swift.syntaxtype.keyword,
    key.offset: 177,
    key.length: 4
  },
  {
    key.kind: source.lang.swift.syntaxtype.identifier,
    key.offset: 182,
    key.length: 29
  }
]
[
  {
    key.kind: source.lang.swift.ref.module,
    key.offset: 7,
    key.length: 17,
    key.is_system: 1
  }
]
[
  {
    key.kind: source.lang.swift.decl.function.free,
    key.accessibility: source.lang.swift.accessibility.public,
    key.name: "fromSwiftFramework()",
    key.offset: 33,
    key.length: 25,
    key.nameoffset: 38,
    key.namelength: 20,
    key.attributes: [
      {
        key.offset: 26,
        key.length: 6,
        key.attribute: source.decl.attribute.public
      }
    ]
  },
  {
    key.kind: source.lang.swift.decl.function.free,
    key.accessibility: source.lang.swift.accessibility.public,
    key.name: "fromSwiftFrameworkCrossImport()",
    key.offset: 177,
    key.length: 36,
    key.nameoffset: 182,
    key.namelength: 31,
    key.attributes: [
      {
        key.offset: 170,
        key.length: 6,
        key.attribute: source.decl.attribute.public
      }
    ]
  }
]
