import Std/Lists; pub fun main() ! Io -> Unit { buildList!(); buildSameListTwice!(); buildListThenExtend!(); extendThenBuildPrefixAndList!(); buildListThenPrefix!(); buildDivergentLists!(); } fun buildList() ! Io -> Unit { print!("buildList()\n"); var builder = Lists.listBuilder[String](); set builder = builder.add("hello"); set builder = builder.add(" world\n"); val list = builder.build(); list.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); } fun buildSameListTwice() ! Io -> Unit { print!("buildSameListTwice()\n"); var builder = Lists.listBuilder[String](); set builder = builder.add("hello"); set builder = builder.add(" world\n"); val list1 = builder.build(); val list2 = builder.build(); list1.forEach!(fn (element) ! Io { print!(element); }); list2.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); } fun buildListThenExtend() ! Io -> Unit { print!("buildListThenExtend()\n"); var builder1 = Lists.listBuilder[String](); set builder1 = builder1.add("hello"); val list1 = builder1.build(); val builder2 = builder1.add(" world\n"); val list2 = builder2.build(); list1.forEach!(fn (element) ! Io { print!(element); }); list2.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); } fun extendThenBuildPrefixAndList() ! Io -> Unit { print!("extendThenBuildPrefixAndList()\n"); var builder1 = Lists.listBuilder[String](); set builder1 = builder1.add("hello"); val builder2 = builder1.add(" world\n"); val list1 = builder1.build(); val list2 = builder2.build(); list1.forEach!(fn (element) ! Io { print!(element); }); list2.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); } fun buildListThenPrefix() ! Io -> Unit { print!("buildListThenPrefix()\n"); var builder1 = Lists.listBuilder[String](); set builder1 = builder1.add("hello"); val builder2 = builder1.add(" world\n"); val list1 = builder2.build(); val list2 = builder1.build(); list1.forEach!(fn (element) ! Io { print!(element); }); list2.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); } fun buildDivergentLists() ! Io -> Unit { print!("buildDivergentLists()\n"); var builder1 = Lists.listBuilder[String](); set builder1 = builder1.add("hello"); val builder2 = builder1.add(" world\n"); val builder3 = builder1.add(" universe\n"); val list1 = builder2.build(); val list2 = builder3.build(); list1.forEach!(fn (element) ! Io { print!(element); }); list2.forEach!(fn (element) ! Io { print!(element); }); print!("\n"); }