-- main.mcl -- import "fmt" # note that the class can have two separate types for $b include c1("t1", "hello") # len is 5 include c1("t2", [13, 42, 0, -37,]) # len is 4 class c1($a, $b) { test "${a}" { anotherstr => fmt.printf("len is: %d", len($b)), } } -- OUTPUT -- Edge: composite: []int -> len # 0 Edge: const: int(-37) -> composite: []int # 3 Edge: const: int(0) -> composite: []int # 2 Edge: const: int(13) -> composite: []int # 0 Edge: const: int(42) -> composite: []int # 1 Edge: const: str("hello") -> len # 0 Edge: const: str("len is: %d") -> printf: func(format str, a int) str # format Edge: const: str("len is: %d") -> printf: func(format str, a int) str # format Edge: len -> printf: func(format str, a int) str # a Edge: len -> printf: func(format str, a int) str # a Vertex: composite: []int Vertex: const: int(-37) Vertex: const: int(0) Vertex: const: int(13) Vertex: const: int(42) Vertex: const: str("hello") Vertex: const: str("len is: %d") Vertex: const: str("len is: %d") Vertex: const: str("t1") Vertex: const: str("t2") Vertex: len Vertex: len Vertex: printf: func(format str, a int) str Vertex: printf: func(format str, a int) str