在Haskell中输出一个值,默认情况下它的类型不是Show的实例

时间:2013-08-23 18:53:14

标签: debugging haskell

我试图调试一些箭头,这真的很难。我最终在这里和那里坚持trace,但它确实需要一个Show实例作为其参数,这限制了它的用途。如果它是Show的一个实例,有什么方法可以show,如果不是,可以使用某种默认输出值吗?我保证只用于调试; - )

无论如何人们如何调试箭头......

1 个答案:

答案 0 :(得分:0)

你最好的选择就是把踪迹写进你的箭头:

strace x = trace (show x) x

something :: (Num c, Show c, Arrow cat) => cat c c
something = arr (+1) <<< arr strace

-- > something 1
-- 1
-- 2