((# make)(# mon)(# left0) ((*make?[left](# right)(mon![left,right]|make![right])) |(*make?[left](mon![left,left0])) |make![left0]))