In the interest of full disclosure, I am a Sage developer. I'm preparing a patch that affects the Dancing Links interface in Sage. The scores of some of my solutions past and future will be impacted by this. For example,
[[p[i]for i in x]for x in DLXCPP(p)]
sum(1 for x in DLXCPP(...))
by a side-effect of the function definition
I think, as both a Sage developer and a researcher using this function, that this is the right interface for the Dancing Links algorithm. I put the old interface in, and it's time to fix it.