diff --git a/pythonetc/README.md b/pythonetc/README.md
index 149978e..f301925 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -83,6 +83,8 @@ More:
1. ./is-warning.md
1. ./float.md
1. ./inf.md
+1. ./typed-dict.md
+1. ./getattr-annotation.md
Out of order:
diff --git a/pythonetc/getattr-annotation.md b/pythonetc/getattr-annotation.md
new file mode 100644
index 0000000..751b185
--- /dev/null
+++ b/pythonetc/getattr-annotation.md
@@ -0,0 +1,40 @@
+[PEP-526](https://www.python.org/dev/peps/pep-0526/), introducing syntax for variable annotations (laded in Python 3.6) allows annotating any valid assignment target:
+
+```python
+c.x: int = 0
+c.y: int
+
+d = {}
+d['a']: int = 0
+d['b']: int
+```
+
+The last line is the most interesting one. Adding annotations to the expression suppresses it's execution:
+
+```python
+d = {}
+
+# fails
+d[1]
+# KeyError: 1
+
+# nothing happens
+d[1]: 1
+```
+
+However, it's not supported by mypy:
+
+```bash
+$ cat tmp.py
+d = {}
+d['a']: int
+d['b']: str
+reveal_type(d['a'])
+reveal_type(d['b'])
+
+$ mypy tmp.py
+tmp.py:2: error: Unexpected type declaration
+tmp.py:3: error: Unexpected type declaration
+tmp.py:4: note: Revealed type is 'Any'
+tmp.py:5: note: Revealed type is 'Any'
+```
diff --git a/pythonetc/typed-dict.md b/pythonetc/typed-dict.md
new file mode 100644
index 0000000..efaca41
--- /dev/null
+++ b/pythonetc/typed-dict.md
@@ -0,0 +1,36 @@
+[PEP-589](https://www.python.org/dev/peps/pep-0589/) (landed in Python 3.8) introduced `typing.TypedDict` as a way to annotate dicts:
+
+```python
+from typing import TypedDict
+
+class Movie(TypedDict):
+ name: str
+ year: int
+
+movie: Movie = {
+ 'name': 'Blade Runner',
+ 'year': 1982,
+}
+```
+
+It cannot have keys that aren't explicitly specified in the type:
+
+```python
+movie: Movie = {
+ 'name': 'Blade Runner',
+ 'year': 1982,
+ 'director': 'Ridley Scott', # fails type checking
+}
+```
+
+Also, all specified keys are required by default but it can be changed by passing `total=False`:
+
+```python
+movie: Movie = {} # fails type checking
+
+class Movie2(TypedDict, total=False):
+ name: str
+ year: int
+
+movie2: Movie2 = {} # ok
+```