private TokenTree createUseStatement(TokenTree id, TreeCursor lineComment, List<TreeCursor> trailingComments) {
            TokenTree result = TokenTree.of(TreeType.USE_STATEMENT);

            CapturedToken useToken = CapturedToken.builder().token(IdlToken.IDENTIFIER).lexeme("use").build();
            result.appendChild(TokenTree.of(useToken));

            TokenTree sp = TokenTree.of(TreeType.SP);
            sp.appendChild(TokenTree.of(CapturedToken.builder().token(IdlToken.SPACE).lexeme(" ").build()));
            result.appendChild(sp);

            result.appendChild(id);

            TokenTree br = TokenTree.of(TreeType.BR);
            result.appendChild(br);

            if (lineComment != null) {
                br.appendChild(sp);
                br.appendChild(lineComment.getTree());
            } else {
                br.appendChild(TokenTree.of(CapturedToken.builder()
                        .token(IdlToken.NEWLINE)
                        .lexeme("\n")
                        // Set the start line to be the start line of the use statement
                        // so the formatter  knows it's a line comment.
                        .startLine(id.getStartLine())
                        .endLine(id.getStartLine() + 1)
                        .build()));
            }

            TokenTree ws = TokenTree.of(TreeType.WS);
            trailingComments.forEach(tc -> ws.appendChild(tc.getTree()));
            br.appendChild(ws);

            return result;
        }
Sorts use statements in models alphabetically, case-sensitively.
smithy-syntax/src/main/java/software/amazon/smithy/syntax/SortUseStatements.java