úÎL*deriveAccessors n where n is the name of a data type  declared with data' looks through all the declared fields > of the data type, and for each field ending in an underscore @ generates an accessor of the same name without the underscore. It is nameDeriveAccessors n f where f satisfies   f (s ++ "_") = Just s ( f x = Nothing -- otherwise "For example, given the data type:  & data Score = Score { p1Score_ :: Int & , p2Score_ :: Int & , rounds :: Int  } deriveAccessors& will generate the following objects:   p1Score :: Accessor Score Int : p1Score = Accessor p1Score_ (\x s -> s { p1Score_ = x })  p2Score :: Accessor Score Int : p2Score = Accessor p2Score_ (\x s -> s { p2Score_ = x }) .It is used with Template Haskell syntax like:  ! $( deriveAccessors ''TypeName ) 7And will generate accessors when TypeName was declared  using data or newtype. nameDeriveAccessors n f where n is the name of a data type  declared with data and f$ is a function from names of fields A in that data type to the name of the corresponding accessor. If  f returns Nothing), then no accessor is generated for that  field. data-accessor-template-0.2Data.Accessor.TemplatederiveAccessorsnameDeriveAccessors