Add trace info

This produces output like:

```
Found answer ((1 2) ()) by passing through
	(_.0 _.1) => ((_.0 . _.1) _.2)
	((_.0 . _.1) _.2) => ((1 . _.0) _.1)
	((1 . _.0) _.1) => ((1 _.0 . _.1) _.2)
	((1 _.0 . _.1) _.2) => ((1 2 . _.0) _.1)
	((1 2 . _.0) _.1) => ((1 2) ())
Found answer ((1) (2)) by passing through
	(_.0 _.1) => ((_.0 . _.1) _.2)
	((_.0 . _.1) _.2) => ((1 . _.0) _.1)
	((1 . _.0) _.1) => ((1) (2))
Found answer (() (1 2)) by passing through
```