-------- @describe ref-pkg-import --------
import of package "lib"
	const Const  untyped int = 3
	func  Func   func()
	type  Outer  struct{...}
	type  Sorter interface{...}
		method (Sorter) Len() int
		method (Sorter) Less(i int, j int) bool
		method (Sorter) Swap(i int, j int)
	type  Type   int
		method (Type) Method(x *int) *int
	var   Var    int

-------- @describe ref-pkg-import2 --------
import of package "lib/sublib"
	const C untyped int = 0

-------- @describe ref-const --------
reference to const lib.Const untyped int of value 3
defined here

-------- @describe ref-func --------
reference to func lib.Func()
defined here

-------- @describe ref-var --------
reference to var lib.Var int
defined here

-------- @describe ref-type --------
reference to type lib.Type (size 8, align 8)
defined as int
Methods:
	method (Type) Method(x *int) *int

-------- @describe ref-method --------
reference to method func (lib.Type).Method(x *int) *int
defined here

-------- @pointsto p --------
this *int may point to these objects:
	imports.a

-------- @describe ref-pkg --------
reference to package "lib"
	const Const  untyped int = 3
	func  Func   func()
	type  Outer  struct{...}
	type  Sorter interface{...}
		method (Sorter) Len() int
		method (Sorter) Less(i int, j int) bool
		method (Sorter) Swap(i int, j int)
	type  Type   int
		method (Type) Method(x *int) *int
	var   Var    int

