如果我有一个带镜头的记录类型,是否可以在不使用底层记录访问器的情况下构造一个新记录?
{-# 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 有自己的方法吗?