úÎ/Õ.T     ?Instances of this class can be combined with the functions and  operators in this package. 4The source type of the field. I.e. the record type. >The destination type of the field. I.e. the type of the field  in question.  Return an fclabels# lens corresponding to this field. 3Return the value of the field in the given record. Infix assignment lookalike.   r.#f =: v returns a modified version of r$ so that the field corresponding to  f are set to v. Infix modification lookalike.   r.#f =~ g returns a modified version of r% so that the fields corresponding to  f are modified with the function g. &Convenience function for use with the  ViewPatterns extension.  case r of 6 (match int -> 5) -> "It's 5!" ) (match (int,str#$length) -> (i,l)) = | i == l -> "They're equal!" 9 | otherwise -> "Not equal." > _ -> "Something else." 4Class of collection types that can be indexed into. ETODO: This should probably be a single-parameter type class with two  associated types instead. Compose a field with an  collection safely.   r .# coll #! idx returns Nothing if idx( was not found from the collection, and  Just v if v was found.   r .# coll #! idx =: Just v sets the value at idx in the collection to be v. If the value  wasn't in the collection, it'#s inserted. The exact semantics of 8 insertion depend on the actual collection in question.   r .# coll #! idx =: Nothing removes the value at idx# from the collection, if possible. As (#!):, but reading a nonexistent value will likely result in a G bottom value being returned. Also, the resulting field cannot be used  to remove values.     Identity lens. 3Field composition with arguments in OO-like order. BCompose fields with ordinary functions. As functions are one-way, 3 the resulting field cannot be used to set values. Infix  for fields.  Examples:   persons <.#> firstName 2 do (v1, v2) <- takeMVar mv <.#> (field1, field2) B putStrLn . unlines $ [ "v1: " ++ show v1, "v2: " ++ show v2 ] ! functor composition for fields. ! book .# characters <#> lastName +Flattening monadic composition for fields. > person .# superior <##> superior <##> superior <##> superior &Zippy field reference to be used with (). / [ rec1, rec2 ] *# field =* [ value1, value2 ] 'Zippy infix assignment to be used with (). &Infix assignment for the State monad. ' (field1, field2) <=: (value1, value2) (Infix modification for the State monad.  (field1, field2) <=~ (f, g) $Utility combinator in the manner of Data.Function.on. 9 sortBy (compare `onField` (lastName,firstName)) persons          !"#!$%& fields-0.1.0Data.Record.Field.BasicData.Record.Field.IndexableData.Record.Field.CombinatorsData.Record.Field.TupleData.Record.FieldFieldSrcDstfield.#=:=~match IndexableElementindexGetindexSetunsafeIndexGet#!#!!idL##$<.#><#><##>*#=*<=:<=~onFieldcantSetbaseGHC.BasefmapControl.Applicative Applicative