diff --git a/pythonetc/3.9/unparse.md b/pythonetc/3.9/unparse.md
new file mode 100644
index 0000000..fadb155
--- /dev/null
+++ b/pythonetc/3.9/unparse.md
@@ -0,0 +1,10 @@
+Python 3.9 introduces a new function [ast.unparse](https://docs.python.org/3.9/library/ast.html#ast.unparse). It accepts a parsed AST and produces a Python code. This code if parsed will produce the same AST:
+
+```python
+import ast
+tree = ast.parse('a=(1+2)+3 # example')
+ast.unparse(tree)
+# '\na = 1 + 2 + 3'
+```
+
+It knows nothing about the initial formatting and comments. So, it's not a code formatter but a tool to simplify analyzing AST. Also, it can be used for code generation.
diff --git a/pythonetc/README.md b/pythonetc/README.md
index 791f0a7..6617ae0 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -9,6 +9,7 @@ A bit of history and 3.9:
1. ./3.9/merge-dicts.md
1. ./3.9/generic-types.md
1. ./hist/types.md
+1. ./3.9/unparse.md
Frames: