Haskell 没有(Num(可能是Size))的实例

Haskell 没有(Num(可能是Size))的实例,haskell,types,Haskell,Types,我正在编译一个Yesod站点,我正在构建该站点,以确保在出现以下编译器错误时一切正常: Foundation.hs:164:15: No instance for (Num (Maybe Size)) arising from the literal `140' Possible fix: add an instance declaration for (Num (Maybe Size)) In the `gSize' field of a record

我正在编译一个Yesod站点,我正在构建该站点,以确保在出现以下编译器错误时一切正常:

Foundation.hs:164:15:
    No instance for (Num (Maybe Size))
      arising from the literal `140'
    Possible fix: add an instance declaration for (Num (Maybe Size))
    In the `gSize' field of a record
    In the expression:
      GravatarOptions
        {gSize = 140, gDefault = Identicon, gForceDefault = False,
         gRating = PG}
    In an equation for `gs':
        gs
          = GravatarOptions
              {gSize = 140, gDefault = Identicon, gForceDefault = False,
               gRating = PG}
阅读了haddock文档后,我知道gSize采用了一个可能的大小,该大小定义为:

newtype Size = Size Int
如果有帮助的话,这里是有问题的函数

import Yesod.Goodies.Gravatar
import Data.Text

gravatar :: Text -> Text
gravatar email =
  gravatarImg email gs
  where
    gs = GravatarOptions {
      gSize = 140
      , gDefault = Identicon
      , gForceDefault = False
      , gRating = PG
      }

我不知道从哪里开始寻找解决方案,有人能给我指出正确的方向吗?感谢您的时间和考虑。

如果
gSize
可能大小
,那么您需要使用一个
可能
构造函数-您可以对无值使用
,或对指定值使用
仅x
。在代码片段中,它应该是
刚好(大小140)
,如中所示

gs = GravatarOptions {
  gSize = Just (Size 140)
  , gDefault = Identicon
  , gForceDefault = False
  , gRating = PG
  }

如果
gSize
Maybe Size
,那么您需要使用一个
Maybe
构造函数-您可以对无值使用
Nothing
,或对指定值使用
Just x
。在代码片段中,它应该是
刚好(大小140)
,如中所示

gs = GravatarOptions {
  gSize = Just (Size 140)
  , gDefault = Identicon
  , gForceDefault = False
  , gRating = PG
  }

它说它不能(通过
Num
class)“140”转换为
可能大小
。你应该使用
gSize=Just(Size 140)
我猜它说它不能(通过
Num
类)“140”转换为
可能的大小。我想你应该使用
gSize=Just(尺寸140)