/* Debug functions. Version 1.0.5 Ronny Wichers Schreur ronny@cs.ru.nl */ definition module Debug :: DebugShowFunction a :== a -> [{#Char}] // print (show a), then evaluate b debugBefore :: !.a !(DebugShowFunction .a) .b -> .b // evaluate b, then print (show a) debugAfter :: .a !(DebugShowFunction .a) !.b -> .b // evaluate and print (show a) debugValue :: !(DebugShowFunction .a) !.a -> .a // generic show function debugShowWithOptions :: [DebugShowOption] .a -> [{#Char}] :: DebugShowOption = DebugMaxDepth !Int // default no limit | DebugMaxBreadth !Int // default no limit | DebugMaxChars !Int // default no limit | DebugTerminator !{#Char} // default "\n"