+literal_eval

    
      
diff --git a/pythonetc/README.md b/pythonetc/README.md
index 0950b5e..32734f8 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -36,6 +36,7 @@ More:
 1. ./license.md
 1. ./fnmatch.md
 1. ./snippets/hamming.md
+1. ./literal-eval.md
 1. ./zen.md
 1. ./nan.md
 1. ./snippets/itertools.md
diff --git a/pythonetc/literal-eval.md b/pythonetc/literal-eval.md
new file mode 100644
index 0000000..f350e33
--- /dev/null
+++ b/pythonetc/literal-eval.md
@@ -0,0 +1,17 @@
+`ast.literal_eval` is a restricted version of `eval` that evaluates only literals:
+
+```python
+ast.literal_eval('[1, True, "three"]')
+# [1, True, 'three']
+
+ast.literal_eval('1+2')
+# ValueError: malformed node or string: <_ast.BinOp object ...>
+```
+
+This can be used for safely evaluating strings containing Python values from untrusted sources. For example, to support types for environment variables. However, be aware that too large and complex string can crash the interpreter:
+
+```python
+>>> import ast
+>>> ast.literal_eval('1+1'*1000000)
+[1]    32177 segmentation fault  python3
+```