This predicate does not perform any type testing functions.
Success:
[eclipse]: flatten(0, [[1,2,[3,4],5],6,[7]], L).
L = [[1, 2, [3, 4], 5], 6, [7]]
yes.
[eclipse]: flatten(1, [[1,2,[3,4],5],6,[7]], L).
L = [1, 2, [3, 4], 5, 6, 7]
yes.
[eclipse]: flatten(2, [[1,2,[3,4],5],6,[7]], L).
L = [1, 2, 3, 4, 5, 6, 7]
yes.
[eclipse]: flatten(3, [[1,2,[3,4],5],6,[7]], L).
L = [1, 2, 3, 4, 5, 6, 7]
yes.
Fail:
[eclipse]: flatten(2, [1,[3],2], [1,2,3]).
no.