readCol=映射自Sql非类型变量参数


:i fromSql 
fromSql ::
convertible-1.1.1.0:Data.Convertible.Base.Convertible SqlValue a =>
SqlValue -> a
-- Defined in ‘Database.HDBC.SqlValue’

如果我运行例如map fromSql (EXAMPLESQL),它输出正常。但如果我将其重新定义为readCol = map fromSql,我会得到错误:

readCol = map fromSql
<interactive>:23:1: error:
• Non type-variable argument
in the constraint: convertible-1.1.1.0:Data.Convertible.Base.Convertible
SqlValue b
(Use FlexibleContexts to permit this)
• When checking the inferred type
readCol :: forall b.
convertible-1.1.1.0:Data.Convertible.Base.Convertible SqlValue b =>
[SqlValue] -> [b]

如何解决这个问题?

我使用了以下解决方案:

在ghci中,您可以设置FlexibleContexts,如下所示:

:set -XFlexibleContexts

在源文件中,在开始时,您应该使用:

{-# LANGUAGE FlexibleContexts #-}

最新更新