Haskell 类型的前缀

Haskell 类型的前缀,haskell,haskell-lens,lenses,Haskell,Haskell Lens,Lenses,我申报了以下数据: data Something = Something { self :: String , id :: String , description :: Maybe String , name :: String } deriving (Generic, Show) instance FromJSON Something makeLensesFor [ ("

我申报了以下数据:

data Something = Something
  { self              :: String
  , id                :: String
  , description       :: Maybe String
  , name              :: String
  } deriving (Generic, Show)

instance FromJSON Something

makeLensesFor
  [ ("self", "somethingSelf")
  , ("id", "somethingId")
  , ("description", "somethingDescription")
  , ("name", "somethingName")
  ]
  ''Something
有没有可能自动创建镜头,因为命名约定遵循的是非常简单的规则

在浏览了源代码之后,我可以看到有一个LensRules实例,称为缩写字段,但遗憾的是,将它与
makeLensesWith缩写字段“Something
完全不生成镜头。我做错什么了吗


以下是源代码:

I要调用这个东西。反对意见:)还请注意,
id
Prelude.id
冲突,并且(明确地!)与
Control.Category.id
冲突。如果我是你的话,我会使用类似于
ident
的东西。我使用的是Data.Aeson,它根据字段名生成解析器,所以我有义务使用这些标识符。当然,Aeson很有可能为我提供了一种重命名标识符的方法,但这对我的主要问题仍然没有帮助。:)我反对称之为这件事还请注意,
id
Prelude.id
冲突,并且(明确地!)与
Control.Category.id
冲突。如果我是你的话,我会使用类似于
ident
的东西。我使用的是Data.Aeson,它根据字段名生成解析器,所以我有义务使用这些标识符。当然,Aeson很有可能为我提供了一种重命名标识符的方法,但这对我的主要问题仍然没有帮助。:)