Haskell 的一个美妙之处在于:函数的类型几乎决定了它的实现方式。但是对于这个函数,我的大脑似乎无法理解嵌套的函数语法:
mkDyn :: (Typeable a) => ((a -> IO()) -> IO ()) -> ((Dynamic -> IO()) -> IO ())
唯一的问题是如何处理 fromDynamic 调用中所需的错误处理,但是...一旦我弄清楚了其他事情,我就可以处理它。我猜需要在某个地方添加以下内容。但我似乎无法弄清楚包装器 lambda 的东西。
case fromDynamic x of
Just x -> f x
Nothing -> undefined -- TODO