-- 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
