úÎPžLá     None An instance  Separation r r' n s4 exists if and only if the following conditions are  met:  r )is a record scheme that contains the name n. & The last name-sort pair with the name n contains the sort s. " Removing that name-sort pair from r yields r'. XExtracts the last field of the respective name and returns the remaining record and the  extracted field.  An instance  Convertible r r' exists if and only if r and r' are . record schemes, and records of a type r s+ can be converted into records of the type  r' s. 'Converts a record into another record. [Transformations from the definition of a record combinator for some record scheme into its 2 definition for an expanded record scheme.  An instance Record k r exists if and only if r is a record scheme whose sorts ) are of the subkind represented by k. WFolding of record schemes. This function can be used to define combinators whose types  have the form (Record rec) => t rec by induction on the rec parameter. ,The class of name types. For each field name N#, there should be a declaration of  the following form:   data N = N deriving (Show) FThat way, the name can be represented in types by the type constructor N , and in 8 expressions and patterns by the data constructor N. Furthermore, the following . instance declaration should be added:   instance Name N where    name = N ]Such instance declarations allow record combinators to construct value-level representations 2 of names from type-level representations. &The sole inhabitant of the name type. The type of record fields. 3Constructs a record field from a name and a value. Non-empty record schemes. Non-empty records. The empty record scheme. The empty record. =the definition of the combinator for the empty record scheme :turns the definition of the combinator for a record scheme r into the 5 definition for any record scheme r :& n ::: s ;the resulting combinator that works for all record schemes   !"#       !"#None "Catenation of two record schemes. @Fixes the style of a record. When a record is constructed using X, (:&), and (:=), ` the style of this record is not fixed. For example, the most general type of the record   X :& Surname := "Jeltsch" :& Age := 33 :& Room := "HG/2.39" is   ($" style sortSurname ~ String, Num ($ style sortAge), $ style sortRoom ~ String) => (X :& Surname ::: sortSurname :& Age ::: sortAge :& Room ::: sortRoom) style 9We can fix the style of that record using the expression   X :& Surname := "Jeltsch" :& Age := 33 :& Room := "HG/2.39" ` withStyle` % &  which has the most general type    (Num age) => (X :& Surname ::: String :& Age ::: age :& Room ::: String) (% &) The  withStyle combinator is similar to '. &Looks up the value of a record field. Removes a record field. Catenation of two records. OGenerates a record whose fields all contain the same value. In contrast to the  (M function from the Prelude, this function generates a finite data structure. M Thereby, the size of the generated record is determined by its type. repeat is almost a ! proper implementation of ) from the * class. XMerges a record of functions and a record of arguments by applying the functions to the % corresponding arguments. The (<<*>>) +function is almost a proper implementation  of (<*>) from the * class. DTransforms a record by applying a function to all its field values. VMerges two records by applying a function to each pair of corresponding field values. NModifies a record by changing some of its field values. The first argument of modify is _ called the modification record, and the second argument is called the data record. The X result is formed by applying each field value of the modification record to the c corresponding field value of the data record and replacing the latter by the result of the d application. Data record fields that have no corresponding field in the modification record  are left unchanged. ZOverwrites the values of multiple record fields. The first argument is the source record, e and the second argument lists the names of the fields to be modified together with their new  values. XConverts a record whose style is a constant function into the list of its field values. *+,-./0123456789:;<=>?@ABCDEFGH  %+,-./0123456789:;<=>?@ABCDEFGHI      !"#$%&$%'()*+,-+.+/0+/12233455667789:;<=>?@ABCDEFGHIJKrecords-0.1.1.6 Data.RecordData.Record.Combinators Separationseparate ConvertibleconvertExpanderRecordfoldNamename::::=:&XCat withStyle!!!\\\catrepeat<<*>>mapzipWithmodify///toList%$fSeparation:&extRemainsepNamesepSort$fSeparation:&recnamesepSort$fConvertiblerec:&$fConvertiblerecX$fRecordkind:& $fRecordkindX $fShow:::$fShow:&type-functions-0.2.0.3 Data.TypeFunAppId kinds-0.0.1.5 Data.KindKindStarbaseGHC.BaseasTypeOfGHC.ListControl.Applicativepure ApplicativeToRevListThingUpdateFunsThingUpdateFunStyleZipWithAppThing RepeatThingCatThing catNilAlt catSnocAlt catExpander repeatNilAlt repeatSnocAltrepeatExpander zipWithAppzipWithAppNilAltzipWithAppSnocAltzipWithAppExpander updateFunsupdateFunsNilAltupdateFunsSnocAltupdateFunsExpanderonInit toRevListtoRevListNilAlttoRevListSnocAlttoRevListExpander