func (g Graph) Text(selection []string, showType bool) string {
	var result string
	filter := set.New(selection)
	cs := make([]string, len(g.edges))
	for c := range g.edges {
		cs = append(cs, c)
	}
	sort.Strings(cs)
	for _, c := range cs {
		if !filter.Has(c) {
			continue
		}
		d := g.edges[c]
		names := make([]string, 0, len(d))
		for _, v := range d {
			if !filter.Has(v.Label) {
				continue
			}
			label := v.Label
			if showType && v.Colour == Strong {
				label = "!" + v.Label
			}
			names = append(names, label)
		}
		result += fmt.Sprintf("%s: %s\n", c, strings.Join(names, ", "))
	}
	return result
}
Text returns graph as text suitable for output
package graph
import (
	"fmt"
	"sort"
	"strings"
	"github.com/charypar/monobuild/set"
)
var Weak = 1
var Strong = 2