【发布时间】:2012-12-03 22:21:31
【问题描述】:
在the tutorial for using the HDBC Snaplet 中,它说“设计 HDBC snaplet 时的目标之一是将函数与 Handler monad 或任何与 Snap 相关的 monad 分离,以便相同的查询也可以在捕捉上下文,例如在命令行工具中。”
我正在努力实现这一点。
类型类 HasHdbc 有定义
class ( IConnection c
, ConnSrc s
, MonadCatchIO m
)
=> HasHdbc m c s | m -> c s where
getHdbcState :: m (HdbcSnaplet c s)
可以这样定义 Snap 应用的这种类型类的实例:
instance HasHdbc (Handler App App) Connection IO where
getHdbcState = with dbLens get
有人能画出如何使用 HasHdbc 类型类在 Snap 上下文之外制作这个命令行工具吗?我对类型类有基本的了解,但是类型签名getHdbcState :: m (HdbcSnaplet c s) 对我来说是一个挑战,比如为 IO Monad 定义一个实例。
【问题讨论】:
标签: haskell haskell-snap-framework