-- main.mcl --
# send/recv of value1.any into test.msg works!
value "value1" {
	any => "i am value1",
}
test "test1" {
	sendvalue => "hello from test",

	Meta:autogroup => false,
}
value "value2" {
	any => "",	# gets value from send_value above
}
value "value3" {
	# XXX: This works because this value gets overwritten, but it really
	# should get caught at type unification if possible. It is caught at
	# runtime and we allow it for now since we want the escape hatch with
	# the `any` types for the moment. The error looks like:
	# print[print1]: Error: could not SendRecv:
	# mismatch: value[value3].any (ptr) -> print[print1].msg (string):
	# cannot Into() 42 of type int into string
	any => "NOPE",	# gets 42
}
print "print1" {}

Value["value1"].any -> Test["test1"].anotherstr
Test["test1"].hello -> Value["value2"].any
Test["test1"].answer -> Value["value3"].any
Value["value3"].any -> Print["print1"].msg
-- OUTPUT --
Edge: test[test1] -> value[value2] # test[test1] -> value[value2]
Edge: test[test1] -> value[value3] # test[test1] -> value[value3]
Edge: value[value1] -> test[test1] # value[value1] -> test[test1]
Edge: value[value3] -> print[print1] # value[value3] -> print[print1]
Field: test[test1].AnotherStr = "i am value1"
Field: test[test1].SendValue = "hello from test"
Field: value[value1].Any = "i am value1"
Field: value[value2].Any = "hello from test"
Field: value[value3].Any = 42
Vertex: print[print1]
Vertex: test[test1]
Vertex: value[value1]
Vertex: value[value2]
Vertex: value[value3]
