diff --git a/doc/1 KC3/1.6 Variable.en.md b/doc/1 KC3/1.6 Variable.en.md
index 0536c0e..7c38729 100644
--- a/doc/1 KC3/1.6 Variable.en.md
+++ b/doc/1 KC3/1.6 Variable.en.md
@@ -17,10 +17,6 @@ currently defined in the environment. So `?` is exactly equivalent to
`(Tag) ?` and they will both accept to be set once to one value of any
type.
-Actually all variables are allocated as tags and in the end the typing
-is dynamic but it could be made static through JIT compilation of
-functions.
-
A variable is settable once and cannot be changed afterwards (there is
an exception if you write C code and link to it but it is not easy nor
silent).
@@ -29,20 +25,6 @@ This way you do not need to lock or trust any behaviour, once your
variable is set to a value the value of the variable will never change,
it really is read-only.
-
-## Init and C interoperatbility
-
-To set the value of a variable in the end you need to call a C function
-that should accept this C function definition :
-`quote cfn unquote(type) unquote("init_#{variable_type}#{init_suffix}") (Result, ...)`.
-There are many functions for this, here is a quick list :
- - `tag_init_1` takes a C string as an argument and returns a value of
- any type currently defined in the KC3 environment.
- - `#{type}_init_1` C functions take a C string as an argument and return
- a value of type `type`.
- - `tag_init_copy` takes a tag as an argument and returns a deep copy
- of it.
-
You can also use the assignment operator which is `<-` which in turn calls
`tag_init_copy`. It works like the C assignment operator (`=`).