Improve visualization/printing of `ArgsToNf`
Whereas the meaning of toNf
in trace outputs is comprehensible, the occurrences of ArgsToNf
look strange.
Consider the following evaluation:
> [not True,False]
Task 0: Call: toNf main
(RET|h)? g -1
Task 0: Call: toNf main
Task 0: Call: main
Task 0: Call: toNf [not True, False]
Task 0: Call: ArgsToNf (toNf (not True)) (toNf [False]) [not True, False]
Task 0: Call: toNf (not True)
Task 0: Call: not True
Task 0: Call: toNf False
Task 0: Call: ArgsToNf False (toNf [False]) [False, False]
Task 0: Call: ArgsToNf False (toNf [False]) [False, False]
Task 0: Call: toNf [False]
Task 0: Call: ArgsToNf False (ArgsToNf (toNf False) (toNf []) [False]) [False, False]
Task 0: Call: ArgsToNf (toNf False) (toNf []) [False]
Task 0: Call: toNf False
Task 0: Call: ArgsToNf False (toNf []) [False]
Task 0: Call: ArgsToNf False (ArgsToNf False (toNf []) [False]) [False, False]
Task 0: Call: ArgsToNf False (toNf []) [False]
Task 0: Call: toNf []
Task 0: Call: ArgsToNf False [] [False]
Task 0: Call: ArgsToNf False [False] [False, False]
Task 0: Result: [False, False]
Think about a better presentation of ArgsToNf
terms.