-- main.mcl --
import "iter"
import "golang"

$fn = func($x) { # notable because concrete type is fn(t1) t2, where t1 != t2
	len($x)
}

$in1 = ["a", "bb", "ccc"]

$out1 = iter.map($in1, $fn)

$s = golang.template("out1: {{ . }}", $out1)

test [$s] {}
-- OUTPUT --
Edge: FuncValue -> call # fn
Edge: FuncValue -> call # fn
Edge: call -> callSubgraphOutput # dummy
Edge: call -> callSubgraphOutput # dummy
Edge: callSubgraphOutput -> composite: []str # 0
Edge: const: str("a") -> composite: []str # 0
Edge: const: str("bb") -> composite: []str # 1
Edge: const: str("ccc") -> composite: []str # 2
Vertex: FuncValue
Vertex: FuncValue
Vertex: FuncValue
Vertex: call
Vertex: call
Vertex: callSubgraphOutput
Vertex: callSubgraphOutput
Vertex: composite: []str
Vertex: composite: []str
Vertex: const: str("a")
Vertex: const: str("bb")
Vertex: const: str("ccc")
Vertex: const: str("out1: {{ . }}")
