This file is a list of the people responsible for ensuring that patches for a
particular part of Swift are reviewed, either by themselves or by someone else.
They are also the gatekeepers for their part of Swift, with the final word on
what goes in or not.

The list is sorted by surname and formatted to allow easy grepping and
beautification by scripts.  The fields are: name (N), email (E), web-address
(W), description (D).

N: Ben Cohen
E: ben_cohen@apple.com
D: Swift standard library

N: Erik Eckstein
E: eeckstein@apple.com
D: SILOptimizer

N: Xi Ge
E: xi_ge@apple.com
D: Markup, Migrator, lib/Syntax

N: Doug Gregor
E: dgregor@apple.com
D: AST, Basic, Parse, Sema

N: Joe Groff
E: jgroff@apple.com
D: SIL, SILGen, everything in Swift not covered by someone else

N: Argyrios Kyrzidis
E: kyrtzidis@apple.com
D: IDE, SourceKit, swift-ide-test

N: Luke Larson
E: llarson@apple.com
D: Swift Benchmark Suite

N: John McCall
E: rjmccall@apple.com
D: Demangler, IRGen, Runtime

N: Slava Pestov
E: spestov@apple.com
D: Reflection, SwiftRemoteMirror

N: Jordan Rose
E: jordan_rose@apple.com
D: ClangImporter, Serialization, (Objective-)C printer, Driver

N: Anna Zaks
E: ganna@apple.com
D: SIL diagnostics passes
