feck, groups do need some kind of stackful handling, since something like

	guard c err ok {
		if c {
			ok
		} {
			err
		}
	}

has a hierarhcy, where if we just linearly go through it we mark `ok` as used
and then `err` gets used as well, not ideal. Luckily easily fixed, just create a
new stack element for each closure and run stuff locally within it, no need to
merge results (yet)
