class Foo {
  

  func methodWithParameters(param1: Foo, param2: Foo) {
  }

  @discardableResult
  private func privateMethodWithAnnotation() -> Foo? {
    return nil
  }

  var anInstanceVariable: String?

  func justAnotherMethod() {
  }
}

extension Foo {
/// This is just some documentation
  func methodWithoutParameters() {
  }
}

class OtherClass {
  func foo() {
  }

  var computedVariable: Int {
    return 0
  }

  var computedVariable2: Int {
    get { return 0 }
    set { }
  }

  deinit { print("deinit") }
}

enum MyEnum {
  case foo, bar
  case baz
}

