8 | trace : (msg : String) -> (result : a) -> a
9 | trace x val = unsafePerformIO (do putStrLn x;
pure val)
12 | traceValBy : (msgF : a -> String) -> (result : a) -> a
13 | traceValBy f v = trace (f v) v
16 | traceVal : Show a => a -> a
17 | traceVal = traceValBy show