Wenn ich einen Aufzeichnungstyp mit Linsen habe, ist es möglich, eine neue Aufzeichnung zu konstruieren, ohne die zugrunde liegenden Aufzeichnungszugriffe zu verwenden?
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
import Control.Lens.TH
data Foo = Foo { _s :: String
, _b :: Bool
} deriving (Show, Eq)
makeLenses ''Foo
Ich könnte Foo
zu einer Instanz von Data.Default
machen und dann def
mit Linsen modifizieren, aber nicht alle Aufzeichnungstypen haben vernünftige Standardwerte. Hat Control.Lens eine eigene Möglichkeit, dies zu tun?