Structure of an Mlist tree: --- p.answer pointers | along members of the same array The end of the array is a structure with p.mv & MV_LAST being nonzero. 0-9: Depth number (0 is root node) A: Side to move first B: Side to move second a-z: Alternate moves with same move number For possible mate in 1 0---1Aa | 1Ab | 1Ac Printed for white to move first as 1. a 1. b 1. c Printed for black to move first as 1. ... a 1. ... b 1. ... c For impossible mate in 1 0---1Aa---2Bd | | | 2Be | 1Ab---2Bf | 1Ac---2Bg | 2Bh Printed for white to move first as 1. a d e 1. b f 1. c g h Printed for black to move first as 1. ... a 2. d e 1. ... b 2. f 1. ... c 2. g h For possible mate in 2 0---1Aa---2Bd---3Ae | | | 2Bf---3Ag | 1Ab---2Bh---3Ai | 1Ac---2Bj---3Ak | 2Bl---3Am Printed for white as 1. a d 2. e f 2. g 1. b h 2. i 1. c j 2. k l 2. m