úÎ7d6     None$+,9:;<=DILQRTbhMake  definitions for each of the type„ synonyms in the given block of declarations. The proxies have the same names as the synonyms but with the first letter lowercased. For example: 7 withProxies [d| type FFoo = "foo" :-> Int |] Is equivalent to: @ type FFoo = "foo" :-> Int fFoo :: Proxy FFoo fFoo = Proxy Note: the trailing |]K of the quasi quote bracket has to be indented or a parse error will occur.Make  and  definitions for each of the type± synonyms in the given block of declarations. The lenses have the same names as the synonyms but with the first letter lowercased. The proxies have that name but with _ suffix. For example: @ withLensesAndProxies [d| type FFoo = "foo" :-> Int |] Is equivalent to: ™ type FFoo = "foo" :-> Int fFoo :: RElem FFoo rs (RIndex FFoo rs) => Lens' (Record rs) Int fFoo = rlens fFoo_ fFoo_ :: Proxy FFoo fFoo_ = Proxy Note: the trailing |]K of the quasi quote bracket has to be indented or a parse error will occur.None$+,9:;<=DILQRTbh !Bidirectional pattern unwrapping Identity (s :-> a) to a. ABidirectional pattern matching the first field of a record using  values and any functor._This pattern is bidirectional meaning you can use it either as a pattern or a constructor, e.g. V let rec = Just 123 :^: Just "foo" :^: Nil Just foo :^: Just bar :^: Nil = rec  Mnemonic: ^- for products (record) of products (functor). ABidirectional pattern matching the first field of a record using  values and the  functor._This pattern is bidirectional meaning you can use it either as a pattern or a constructor, e.g. G let rec = 123 :*: Just "foo" :*: Nil foo :*: bar :*: Nil = rec  Mnemonic: * for products. /Pattern synonym equivalent to the empty record ._This pattern is bidirectional meaning you can use it either a pattern or as a constructor, e.g.  let Nil = Nil ::  '[]  is valid. 1Lens to a particular field of a record using the  functor.For example, given: k type FFoo = "foo" :-> Int type FBar = "bar" :-> String fBar_ :: Proxy FBar fBar_ = Proxy rec ::  0 '[FFoo, FBar] rec = 123 :*: "hello!" :*: Nil Then: ½ view (rlens fBar_) rec == "hello!" set (rlens fBar_) "goodbye!" rec == 123 :*: "goodbye!" :*: Nil over (rlens fBar_) (map toUpper) rec == 123 :*: "HELLO!" :*: Nil 9Lens to a particular field of a record using any functor.For example, given: k type FFoo = "foo" :-> Int type FBar = "bar" :-> String fBar_ :: Proxy FBar fBar_ = Proxy rec ::  : '[FFoo, FBar] rec = Just 123 :^: Just "hello!" :^: Nil Then: ê view (rlens' fBar_) rec == Just "hello!" set (rlens' fBar_) Nothing rec == Just 123 :^: Nothing :^: Nil over (rlens' fBar_) (fmap (map toUpper)) rec == Just 123 :^: Just "HELLO!" :^: Nil         5 5None$+,9:;<=DILQRTbhvClass of types which represent fields which can be named statically (i.e. via their type only) and contain some value.!Reflect the name of the field as Text( given some proxy representing the type.;Extract the value and reflect the name of some named field.None$+,9:;<=DILQRTbh      ! "#$%&-composite-base-0.2.0.0-JfqqJUJbBDE3SWcflcTO6RComposite.Record Composite.THComposite.Base Composite"vinyl-0.5.3-AlVcFvvXpE6Bz1gmYs9V5fData.Vinyl.FunctorIdentityData.Vinyl.CoreRec#Frames-0.1.9-13aclEyweKn4r9RH74EnId Frames.RecRecord Frames.ColgetColCol:-> withProxieswithLensesAndProxiesVal:^::*:Nilrlensrlens' NamedField fieldName fieldAsPair$fNamedField:->$fRewrapped:->t $fWrapped:->base Data.ProxyProxyFrames.RecLensRNilGHC.BaseMaybe