úÎF     !Appends a type-list and another. The empty type-list. Cons a type onto type-list. 3Provides injection and projection into type lists. Holds e == prj (inj e s) for all s and e. Injects a value of type e into s if s contains the type e. Projects a value of type e out from s if s contains the type e. )Represents concatenated rows or records. Row a3 is a type list which contains only one element of  a4. And every row in the records should be this type.  Creates a  of a. Concatenates between s or records. Records are = concatenated rows. For example, Following expressions are  valid. ( -- Concatenation of rows (i.e. record)  row "string" & row True  -- Concatenation of records 1 (row 'c' & row ()) & (row False & row "string") 6 -- ... And concatenations between a row and a record % row () & (row False & row "string")  (row 'c' & row ()) & row False Updates a value e in s, using given function e -> e. unknown experimentalnonowarn@gmail.comSame as Knows lab (TypeOf lab) s, Useful on writing type  signitures. Holds e == (lab .^ (lab ^= e $ s))  where #lab :: lab; e :: TypeOf lab; s :: s  RowOf a == a :> TypeOf a TypeOf a$ should indicate a type labelled by a 5Injects and Projects a labelled values into records. Injects a labelled value Projects a labelled value Represents labelled row. Represents labelled value.  Attaches a label. !Detaches a label. Makes a labelled row. Updates a labelled value Creates a row labelled by a Strict version of   Strict version of   Strict version of        "      !"#$has-0.3Data.HasData.Has.TypeListData.Has.EngineTyNil:::Contains:&:Rowrow&HasRowOfTypeOfKnowsinjlprjl:>Labelled.>updlrowOf^=^.^:Append:++:.++.const2injprjupdLabel unLabelledlabelunlabel