úÎ"' ™     (c) Marcin Mrotek, 2014BSD3marcin.jan.mrotek@gmail.comNone&'(3457>IKLNRCreate an operator between records sharing their fields but differing in functors.ZApply a record of (a -> x) functions to a constant type record to obtain a plain f-record.\Apply a record of (a -> f x) functions to a constant type record to obtain a plain f-record.ZApply a record of (x -> a) functions to a plain f-record to obtain a constant type record.\Apply a record of (f x -> a) functions to a plain f-record to obtain a constant type record.^Apply a predicate record to a plain f-record to obtain a boolean product inside the f functor.ZApply a predicate record to a plain f-record to obtain a boolean sum inside the f functor.(c) Marcin Mrotek, 2014BSD3marcin.jan.mrotek@gmail.comNone !"&'(>KL <A data type that reifies a constraint. Pattern match on the  0 constructor to bring the constraint into scope. MAssert that all field labels in a given type list satisfy a given constraint.  Obtain a  from a  , forgetting its constraint. rGiven a dummy record and a constraint that applies to all field labels, reify the constraint for each field label.     (c) Marcin Mrotek, 2014BSD3marcin.jan.mrotek@gmail.comNone !"'(>IKLN&Create a dummy record parametrized by . The class is named : to signify that every possible type list is its instance.(c) Marcin Mrotek, 2014BSD3marcin.jan.mrotek@gmail.comNone'(>YTraverse a record parametrized with a composition of functors, leaving the inner functor.(c) Marcin Mrotek, 2014BSD3marcin.jan.mrotek@gmail.comNone'(>KL+Map a function over a constant type record. Extension of  to constant type records.Extension of ( *) to constant type records.0Commute a constant functor with another functor.1Distribute a functor over a constant type record.      !"#$%vinyl_34kzZIHsdOtIw4c0R8ewfVData.Vinyl.Utils.ProxyData.Vinyl.Utils.OperatorData.Vinyl.Utils.FieldData.Vinyl.Utils.ComposeData.Vinyl.Utils.Constbase Data.ProxyProxyoperator/$//$$/\$\\$$\\&&\\||\ DictProxyFieldAllgetProxyreifyFieldConstraintRecord proxyRecordrecPurerecPure' $fRecordk: $fRecordk[] rtraverse1cfmapcpurecapprconst constCommutertraverseconst predicateGHC.Basepurecpure'