[debug] ?- check_diagonal([['.','.','.','.'], ['.','.','.','.']], elem(0, 1)). T Call: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) * Call: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) ? creep Call: (10) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 1, 2, _2712) ? creep Call: (11) lists:nth0(1, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2710) ? creep Exit: (11) lists:nth0(1, [['.', '.', '.', '.'], ['.', '.', '.', '.']], ['.', '.', '.', '.']) ? creep Call: (11) lists:nth0(2, ['.', '.', '.', '.'], _2710) ? creep Exit: (11) lists:nth0(2, ['.', '.', '.', '.'], '.') ? creep Exit: (10) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 1, 2, '.') ? creep Call: (10) ('.')\=('.') ? creep Fail: (10) ('.')\=('.') ? creep * Redo: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) ? creep Call: (10) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 1, 2, _2712) ? creep Call: (11) lists:nth0(1, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2710) ? creep Exit: (11) lists:nth0(1, [['.', '.', '.', '.'], ['.', '.', '.', '.']], ['.', '.', '.', '.']) ? creep Call: (11) lists:nth0(2, ['.', '.', '.', '.'], _2710) ? creep Exit: (11) lists:nth0(2, ['.', '.', '.', '.'], '.') ? creep Exit: (10) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 1, 2, '.') ? creep Call: (10) ('.')==('.') ? creep Exit: (10) ('.')==('.') ? creep Call: (10) _2712 is 1+1 ? creep Exit: (10) 2 is 1+1 ? creep Call: (10) _2718 is 2+1 ? creep Exit: (10) 3 is 2+1 ? creep Call: (10) 2=<8 ? creep Exit: (10) 2=<8 ? creep Call: (10) 2>=0 ? creep Exit: (10) 2>=0 ? creep Call: (10) 3=<8 ? creep Exit: (10) 3=<8 ? creep Call: (10) 3>=0 ? creep Exit: (10) 3>=0 ? creep T Call: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) * Call: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) ? creep Call: (11) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 2, 3, _2736) ? creep Call: (12) lists:nth0(2, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2734) ? creep Fail: (12) lists:nth0(2, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2734) ? creep Fail: (11) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 2, 3, _2736) ? creep * Redo: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) ? creep Call: (11) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 2, 3, _2736) ? creep Call: (12) lists:nth0(2, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2734) ? creep Fail: (12) lists:nth0(2, [['.', '.', '.', '.'], ['.', '.', '.', '.']], _2734) ? creep Fail: (11) elem_at([['.', '.', '.', '.'], ['.', '.', '.', '.']], 2, 3, _2736) ? creep * Redo: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) ? creep Call: (11) 2>8 ? creep Fail: (11) 2>8 ? creep T Fail: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) * Fail: (10) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(2, 3), dir(1, 1)) ? creep * Redo: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) ? creep Call: (10) 1>8 ? creep Fail: (10) 1>8 ? creep T Fail: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) * Fail: (9) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(1, 2), dir(1, 1)) ? creep Fail: (8) check_diagonal([['.', '.', '.', '.'], ['.', '.', '.', '.']], elem(0, 1)) ? creep false.