diff --git a/.gitignore b/.gitignore
index d86f2fe..d45c3d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -93,6 +93,10 @@ test/facts_test_log_remove.facts
test/facts_test_open_file.1.facts
test/facts_test_open_file.3.facts
test/facts_test_save.facts
+test/http/*.diff
+test/http/*.err
+test/http/*.out
+test/http/*.ret
test/ikc3/.ikc3_history
test/ikc3/*.diff
test/ikc3/*.err
diff --git a/lib/kc3/0.1/s16.facts b/lib/kc3/0.1/s16.facts
index 08ec873..ff24ede 100644
--- a/lib/kc3/0.1/s16.facts
+++ b/lib/kc3/0.1/s16.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S16, :is_a, :module}
replace {S16, :symbol, S16.cast}
-replace {S16.cast, :symbol_value, cfn S16 "s16_init_cast" (Result, Tag)}
+replace {S16.cast, :symbol_value, cfn S16 "s16_init_cast" (Result, Sym, Tag)}
diff --git a/lib/kc3/0.1/s16.kc3 b/lib/kc3/0.1/s16.kc3
deleted file mode 100644
index 93d15ab..0000000
--- a/lib/kc3/0.1/s16.kc3
+++ /dev/null
@@ -1,5 +0,0 @@
-defmodule S16 do
-
- def cast = cfn S16 "s16_init_cast" (Result, Sym, Tag)
-
-end
diff --git a/lib/kc3/0.1/s32.facts b/lib/kc3/0.1/s32.facts
new file mode 100644
index 0000000..2d27cd0
--- /dev/null
+++ b/lib/kc3/0.1/s32.facts
@@ -0,0 +1,5 @@
+%{module: KC3.Facts.Dump,
+ version: 1}
+replace {S32, :is_a, :module}
+replace {S32, :symbol, S32.cast}
+replace {S32.cast, :symbol_value, cfn S32 "s32_init_cast" (Result, Sym, Tag)}
diff --git a/lib/kc3/0.1/s32.kc3 b/lib/kc3/0.1/s32.kc3
deleted file mode 100644
index 2b66032..0000000
--- a/lib/kc3/0.1/s32.kc3
+++ /dev/null
@@ -1,5 +0,0 @@
-defmodule S32 do
-
- def cast = cfn S32 "s32_init_cast" (Result, Sym, Tag)
-
-end
diff --git a/lib/kc3/0.1/s64.facts b/lib/kc3/0.1/s64.facts
index 7bb761e..72772fb 100644
--- a/lib/kc3/0.1/s64.facts
+++ b/lib/kc3/0.1/s64.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S64, :is_a, :module}
replace {S64, :symbol, S64.cast}
-replace {S64.cast, :symbol_value, cfn S64 "s64_init_cast" (Result, Tag)}
+replace {S64.cast, :symbol_value, cfn S64 "s64_init_cast" (Result, Sym, Tag)}
diff --git a/lib/kc3/0.1/s64.kc3 b/lib/kc3/0.1/s64.kc3
deleted file mode 100644
index 97f7a09..0000000
--- a/lib/kc3/0.1/s64.kc3
+++ /dev/null
@@ -1,5 +0,0 @@
-defmodule S64 do
-
- def cast = cfn S64 "s64_init_cast" (Result, Sym, Tag)
-
-end
diff --git a/lib/kc3/0.1/s8.facts b/lib/kc3/0.1/s8.facts
new file mode 100644
index 0000000..2a05c2c
--- /dev/null
+++ b/lib/kc3/0.1/s8.facts
@@ -0,0 +1,5 @@
+%{module: KC3.Facts.Dump,
+ version: 1}
+replace {S8, :is_a, :module}
+replace {S8, :symbol, S8.cast}
+replace {S8.cast, :symbol_value, cfn S8 "s8_init_cast" (Result, Sym, Tag)}
diff --git a/lib/kc3/0.1/s8.kc3 b/lib/kc3/0.1/s8.kc3
deleted file mode 100644
index 83b79f6..0000000
--- a/lib/kc3/0.1/s8.kc3
+++ /dev/null
@@ -1,5 +0,0 @@
-defmodule S8 do
-
- def cast = cfn S8 "s8_init_cast" (Result, Sym, Tag)
-
-end
diff --git a/lib/kc3/0.1/sw.facts b/lib/kc3/0.1/sw.facts
new file mode 100644
index 0000000..d16e07f
--- /dev/null
+++ b/lib/kc3/0.1/sw.facts
@@ -0,0 +1,5 @@
+%{module: KC3.Facts.Dump,
+ version: 1}
+replace {Sw, :is_a, :module}
+replace {Sw, :symbol, Sw.cast}
+replace {Sw.cast, :symbol_value, cfn Sw "sw_init_cast" (Result, Sym, Tag)}
diff --git a/lib/kc3/0.1/sw.kc3 b/lib/kc3/0.1/sw.kc3
deleted file mode 100644
index a880eb9..0000000
--- a/lib/kc3/0.1/sw.kc3
+++ /dev/null
@@ -1,5 +0,0 @@
-defmodule Sw do
-
- def cast = cfn Sw "sw_init_cast" (Result, Sym, Tag)
-
-end
diff --git a/test/http/server.diff b/test/http/server.diff
deleted file mode 100644
index 07f3065..0000000
--- a/test/http/server.diff
+++ /dev/null
@@ -1,194 +0,0 @@
---- server.out.expected Fri Jul 19 23:18:10 2024
-+++ server.out Sat Jul 20 18:56:53 2024
-@@ -0,0 +1,186 @@
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+buf_parse_block_inner: line 6: missing separator:
-+ S32 do
-+
-+ def cast
-+buf_parse_block: buf_parse_block_inner
-+tag_to_ffi_pointer: cannot cast Ident to Block
-+env_module_load: S32: env_load
-+env_module_ensure_loaded: module not found: S32
-+env_eval_call: could not resolve call S32.cast
-+env_eval_call_arguments: invalid argument: [fd: (S32) -1]
-+Segmentation fault (core dumped)
---- server.ret.expected Sat Jul 20 00:53:32 2024
-+++ server.ret Sat Jul 20 18:56:53 2024
-@@ -1 +1 @@
--0
-+139
diff --git a/test/http/server.out b/test/http/server.out
deleted file mode 100644
index e69de29..0000000
--- a/test/http/server.out
+++ /dev/null