func DefaultButtons(c Controller) (start, end bar.Output) {
	if c.Expanded() {
		return outputs.Text(">").OnClick(click.Left(c.Collapse)),
			outputs.Text("<").OnClick(click.Left(c.Collapse))
	}
	return outputs.Text("+").OnClick(click.Left(c.Expand)), nil
}
DefaultButtons returns the default button outputs:
- When expanded, a '>' and '<' on either side.
- When collapsed, a single '+'.
package collapsing  
import (
	"sync"
	"sync/atomic"
	"barista.run/bar"
	"barista.run/base/click"
	"barista.run/base/notifier"
	"barista.run/group"
	l "barista.run/logging"
	"barista.run/outputs"
)
type ButtonFunc func(Controller) (start, end bar.Output)
type Controller interface {
	Expanded() bool
	Collapse()
	Expand()
	Toggle()
	ButtonFunc(ButtonFunc)
}
type grouper struct {
	expanded   atomic.Value  
	buttonFunc ButtonFunc
	sync.Mutex
	notifyCh <-chan struct{}
	notifyFn func()
}
func Group(m ...bar.Module) (bar.Module, Controller) {
	g := &grouper{buttonFunc: DefaultButtons}
	g.expanded.Store(false)
	g.notifyFn, g.notifyCh = notifier.New()
	return group.New(g, m...), g
}