如果我有带镜头的记录类型,是否可以在不使用基础记录存取器的情况下构建新记录?
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
import Control.Lens.TH
data Foo = Foo { _s :: String
, _b :: Bool
} deriving (Show, Eq)
makeLenses ''Foo
我可以使Foo
成为Data.Default
的实例,然后使用镜头修改def
,但并非所有记录类型都有合理的默认值。 Control.Lens有自己的方法吗?