+# Class with generics
+class E
+ auto_serializable
+
+ var a = new Array[Object].with_items("hello", 1234, 123.4)
+ var b = new Array[nullable Serializable].with_items("hella", 2345, 234.5)
+ init do end
+
+ redef fun to_s do return "<E: a: {a.join(", ")}; b: {b.join(", ")}>"
+end
+
+# Parameterized class
+class F[N: Numeric]
+ auto_serializable
+
+ var n: N
+ init(n: N) do self.n = n
+
+ redef fun to_s do return "<E: {n}>"
+end
+
+# Other collections
+class G
+ auto_serializable
+
+ var hs = new HashSet[Int]
+ var s: Set[String] = new ArraySet[String]
+ var hm = new HashMap[String, Int]
+ var am = new ArrayMap[String, String]
+
+ init
+ do
+ hs.add -1
+ hs.add 0
+ s.add "one"
+ s.add "two"
+ hm["one"] = 1
+ hm["two"] = 2
+ am["three"] = 3.to_s
+ am["four"] = 4.to_s
+ end
+
+ redef fun to_s do return "<G: hs: {hs.join(", ")}; s: {s.join(", ")}; "+
+ "hm: {hm.join(", ", ". ")}; am: {am.join(", ", ". ")}>"
+end
+