fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let mut items = self.children.iter().collect::<Vec<_>>();
        items.sort_by(|a, b| a.0.cmp(b.0));
        for (c, child) in items {
            let prefix = String::from("|-");

            writeln!(f, "{}{}", prefix, c)?;
            if !child.children.is_empty() && !prefix.is_empty() {
                let child_text = format!("{}", child);
                writeln!(f, "{}{}", prefix, child_text.trim())?;
            }
        }

        Ok(())
    }
Return a nested tree structure.

For example:
```ignore
|-h
|-|-e
|-|-l
|-|-l
|-|-o
|-w
|-|-o
|-|-r
|-|-l
|-|-d
```
autocorrect/src/keyword.rs