-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Anonymous records via named tuples -- -- Declare and access tuple fields with labels. An approach to anonymous -- records. @package labels @version 0.2.0 -- | This module provides a way to name the fields in a regular Haskell -- tuple and then look them up later, statically. module Labels.Internal -- | Field named l labels value of type t. Example: -- (#name := "Chris") :: ("name" := String) data (:=) label value (:=) :: Proxy label -> value -> (:=) label value -- | A record has a certain field which can be set and get. class Has (label :: Symbol) value record | label record -> value -- | Get a field by doing: get #salary employee get :: Has label value record => Proxy label -> record -> value -- | Set a field by doing: set #salary 54.00 employee set :: Has label value record => Proxy label -> value -> record -> record -- | A field can be consed onto the beginning of a record. class Cons label value record where type Consed label value record where { type family Consed label value record; } -- | Cons a field onto a record by doing: cons (#foo := 123) -- record cons :: Cons label value record => (label := value) -> record -> Consed label value record -- | A record can be narrowed or have its order changed by projecting into -- record type. class Project from to -- | Narrow number of or change order of fields in a record: Example: -- project (bar := 2) :: ("bar" := Int) project :: Project from to => from -> to -- | Reflection on labelled fields. class Reflect (c :: * -> Constraint) r -- | Produce a list of field names, and each field applied to the given -- function. Example: reflect @Show show (foo := 3) reflect :: forall b. Reflect c r => (forall a. c a => a -> b) -> r -> [(String, b)] -- | A constraint and a method which both simply ignore their argument. class Ignore a ignore :: Ignore a => a -> () -- | List the field labels present in the record. Example: labels (foo -- := 3, #mu := "hi") labels :: Reflect Ignore r => r -> [String] instance (GHC.TypeLits.KnownSymbol l1, Labels.Internal.Has l1 t1 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, GHC.TypeLits.KnownSymbol l20, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r, Labels.Internal.Has l20 t20 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19, l20 Labels.Internal.:= t20) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, GHC.TypeLits.KnownSymbol l20, GHC.TypeLits.KnownSymbol l21, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r, Labels.Internal.Has l20 t20 r, Labels.Internal.Has l21 t21 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19, l20 Labels.Internal.:= t20, l21 Labels.Internal.:= t21) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, GHC.TypeLits.KnownSymbol l20, GHC.TypeLits.KnownSymbol l21, GHC.TypeLits.KnownSymbol l22, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r, Labels.Internal.Has l20 t20 r, Labels.Internal.Has l21 t21 r, Labels.Internal.Has l22 t22 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19, l20 Labels.Internal.:= t20, l21 Labels.Internal.:= t21, l22 Labels.Internal.:= t22) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, GHC.TypeLits.KnownSymbol l20, GHC.TypeLits.KnownSymbol l21, GHC.TypeLits.KnownSymbol l22, GHC.TypeLits.KnownSymbol l23, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r, Labels.Internal.Has l20 t20 r, Labels.Internal.Has l21 t21 r, Labels.Internal.Has l22 t22 r, Labels.Internal.Has l23 t23 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19, l20 Labels.Internal.:= t20, l21 Labels.Internal.:= t21, l22 Labels.Internal.:= t22, l23 Labels.Internal.:= t23) instance (GHC.TypeLits.KnownSymbol l1, GHC.TypeLits.KnownSymbol l2, GHC.TypeLits.KnownSymbol l3, GHC.TypeLits.KnownSymbol l4, GHC.TypeLits.KnownSymbol l5, GHC.TypeLits.KnownSymbol l6, GHC.TypeLits.KnownSymbol l7, GHC.TypeLits.KnownSymbol l8, GHC.TypeLits.KnownSymbol l9, GHC.TypeLits.KnownSymbol l10, GHC.TypeLits.KnownSymbol l11, GHC.TypeLits.KnownSymbol l12, GHC.TypeLits.KnownSymbol l13, GHC.TypeLits.KnownSymbol l14, GHC.TypeLits.KnownSymbol l15, GHC.TypeLits.KnownSymbol l16, GHC.TypeLits.KnownSymbol l17, GHC.TypeLits.KnownSymbol l18, GHC.TypeLits.KnownSymbol l19, GHC.TypeLits.KnownSymbol l20, GHC.TypeLits.KnownSymbol l21, GHC.TypeLits.KnownSymbol l22, GHC.TypeLits.KnownSymbol l23, GHC.TypeLits.KnownSymbol l24, Labels.Internal.Has l1 t1 r, Labels.Internal.Has l2 t2 r, Labels.Internal.Has l3 t3 r, Labels.Internal.Has l4 t4 r, Labels.Internal.Has l5 t5 r, Labels.Internal.Has l6 t6 r, Labels.Internal.Has l7 t7 r, Labels.Internal.Has l8 t8 r, Labels.Internal.Has l9 t9 r, Labels.Internal.Has l10 t10 r, Labels.Internal.Has l11 t11 r, Labels.Internal.Has l12 t12 r, Labels.Internal.Has l13 t13 r, Labels.Internal.Has l14 t14 r, Labels.Internal.Has l15 t15 r, Labels.Internal.Has l16 t16 r, Labels.Internal.Has l17 t17 r, Labels.Internal.Has l18 t18 r, Labels.Internal.Has l19 t19 r, Labels.Internal.Has l20 t20 r, Labels.Internal.Has l21 t21 r, Labels.Internal.Has l22 t22 r, Labels.Internal.Has l23 t23 r, Labels.Internal.Has l24 t24 r) => Labels.Internal.Project r (l1 Labels.Internal.:= t1, l2 Labels.Internal.:= t2, l3 Labels.Internal.:= t3, l4 Labels.Internal.:= t4, l5 Labels.Internal.:= t5, l6 Labels.Internal.:= t6, l7 Labels.Internal.:= t7, l8 Labels.Internal.:= t8, l9 Labels.Internal.:= t9, l10 Labels.Internal.:= t10, l11 Labels.Internal.:= t11, l12 Labels.Internal.:= t12, l13 Labels.Internal.:= t13, l14 Labels.Internal.:= t14, l15 Labels.Internal.:= t15, l16 Labels.Internal.:= t16, l17 Labels.Internal.:= t17, l18 Labels.Internal.:= t18, l19 Labels.Internal.:= t19, l20 Labels.Internal.:= t20, l21 Labels.Internal.:= t21, l22 Labels.Internal.:= t22, l23 Labels.Internal.:= t23, l24 Labels.Internal.:= t24) instance Labels.Internal.Has l a (l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a, u20) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a, u20, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, l Labels.Internal.:= a, u21) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a, u20, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, l Labels.Internal.:= a, u21, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, l Labels.Internal.:= a, u22) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a, u20, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, l Labels.Internal.:= a, u21, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, l Labels.Internal.:= a, u22, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, l Labels.Internal.:= a, u23) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, l Labels.Internal.:= a) instance Labels.Internal.Has l a (l Labels.Internal.:= a, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, l Labels.Internal.:= a, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, l Labels.Internal.:= a, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, l Labels.Internal.:= a, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, l Labels.Internal.:= a, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, l Labels.Internal.:= a, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, l Labels.Internal.:= a, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, l Labels.Internal.:= a, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, l Labels.Internal.:= a, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, l Labels.Internal.:= a, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, l Labels.Internal.:= a, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, l Labels.Internal.:= a, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, l Labels.Internal.:= a, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, l Labels.Internal.:= a, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, l Labels.Internal.:= a, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, l Labels.Internal.:= a, u17, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, l Labels.Internal.:= a, u18, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, l Labels.Internal.:= a, u19, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, l Labels.Internal.:= a, u20, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, l Labels.Internal.:= a, u21, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, l Labels.Internal.:= a, u22, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, l Labels.Internal.:= a, u23, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, l Labels.Internal.:= a, u24) instance Labels.Internal.Has l a (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, l Labels.Internal.:= a) instance Labels.Internal.Cons label value (u1, u2) instance Labels.Internal.Cons label value (u1, u2, u3) instance Labels.Internal.Cons label value (u1, u2, u3, u4) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) instance Labels.Internal.Cons label value (u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24) instance c v1 => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1) instance (c v1, c v2) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2) instance (c v1, c v2, c v3) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3) instance (c v1, c v2, c v3, c v4) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4) instance (c v1, c v2, c v3, c v4, c v5) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5) instance (c v1, c v2, c v3, c v4, c v5, c v6) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19, c v20) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19, l20 Labels.Internal.:= v20) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19, c v20, c v21) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19, l20 Labels.Internal.:= v20, l21 Labels.Internal.:= v21) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19, c v20, c v21, c v22) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19, l20 Labels.Internal.:= v20, l21 Labels.Internal.:= v21, l22 Labels.Internal.:= v22) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19, c v20, c v21, c v22, c v23) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19, l20 Labels.Internal.:= v20, l21 Labels.Internal.:= v21, l22 Labels.Internal.:= v22, l23 Labels.Internal.:= v23) instance (c v1, c v2, c v3, c v4, c v5, c v6, c v7, c v8, c v9, c v10, c v11, c v12, c v13, c v14, c v15, c v16, c v17, c v18, c v19, c v20, c v21, c v22, c v23, c v24) => Labels.Internal.Reflect c (l1 Labels.Internal.:= v1, l2 Labels.Internal.:= v2, l3 Labels.Internal.:= v3, l4 Labels.Internal.:= v4, l5 Labels.Internal.:= v5, l6 Labels.Internal.:= v6, l7 Labels.Internal.:= v7, l8 Labels.Internal.:= v8, l9 Labels.Internal.:= v9, l10 Labels.Internal.:= v10, l11 Labels.Internal.:= v11, l12 Labels.Internal.:= v12, l13 Labels.Internal.:= v13, l14 Labels.Internal.:= v14, l15 Labels.Internal.:= v15, l16 Labels.Internal.:= v16, l17 Labels.Internal.:= v17, l18 Labels.Internal.:= v18, l19 Labels.Internal.:= v19, l20 Labels.Internal.:= v20, l21 Labels.Internal.:= v21, l22 Labels.Internal.:= v22, l23 Labels.Internal.:= v23, l24 Labels.Internal.:= v24) instance GHC.Classes.Eq value => GHC.Classes.Eq (label Labels.Internal.:= value) instance GHC.Classes.Ord value => GHC.Classes.Ord (label Labels.Internal.:= value) instance GHC.Show.Show t => GHC.Show.Show (l Labels.Internal.:= t) instance l ~ l' => GHC.OverloadedLabels.IsLabel l (Data.Proxy.Proxy l') instance Data.String.IsString (Language.Haskell.TH.Syntax.Q Language.Haskell.TH.Syntax.Exp) instance Labels.Internal.Cons label value () instance Labels.Internal.Cons label value (label' Labels.Internal.:= value') instance Labels.Internal.Ignore a -- | Labels for fields in a tuple. -- -- Enable these extensions: -- -- In GHCi: -- --
-- :set -XOverloadedLabels -XTypeOperators -XDataKinds -XFlexibleContexts ---- -- In a module: -- --
-- {-# LANGUAGE OverloadedLabels, TypeOperators, DataKinds, FlexibleContexts #-}
--
--
-- Construct a record:
--
-- -- >>> (#foo := "hi", #bar := 123) -- (#foo := "hi",#bar := 123) ---- -- Get fields of a record: -- --
-- >>> get #bar (#foo := "hi", #bar := 123) -- 123 ---- -- Set fields of a record: -- --
-- >>> set #bar 66 (#foo := "hi", #bar := 123) -- (#foo := "hi",#bar := 66) ---- -- Modify fields of a record: -- --
-- >>> modify #mu (*0.1) (#bar := "hi", #mu := 123) -- (#bar := "hi",#mu := 12.3) ---- -- Add fields to a record: -- --
-- >>> cons (#mu := [1,2,3]) (#foo := "hi", #bar := 123) -- (#mu := [1,2,3],#foo := "hi",#bar := 123) ---- -- Abstraction: -- --
-- >>> let double field record = set field (get field record * 2) record -- -- >>> double #mu (#bar := "hi", #mu := 123) -- (#bar := "hi",#mu := 246) ---- -- Lenses: -- --
-- >>> over (lens #sub . lens #foo) (*2) (#bar := "hello", #sub := (#foo := 123)) -- (#bar := "hello",#sub := #foo := 246) ---- -- Projection: -- --
-- >>> project (#bar := "hello", #foo := 3, #mu := "hi") :: ("bar" := String, "foo" := Int)
-- (#bar := "hello",#foo := 3)
--
--
-- Field order projection:
--
--
-- >>> project (#bar := "hello", #foo := 3) :: ("foo" := Int, "bar" := String)
-- (#foo := 3,#bar := "hello")
--
--
-- Reflection of labels
--
-- -- >>> labels (#bar := "hello", #foo := 3, #mu := "hi") -- ["bar","foo","mu"] ---- -- Reflection of labelled fields -- --
-- >>> reflect @Show show (#bar := "hello", #foo := 3, #mu := "hi")
-- [("bar","\"hello\""),("foo","3"),("mu","\"hi\"")]
--
module Labels
-- | Get a field by doing: get #salary employee
get :: Has label value record => Proxy label -> record -> value
-- | Set a field by doing: set #salary 54.00 employee
set :: Has label value record => Proxy label -> value -> record -> record
-- | Strictly modify a field by doing: modify #salary (* 1.1)
-- employee
modify :: Has label value record => Proxy label -> (value -> value) -> record -> record
-- | Make a lens out of the label. Example: over (lens #salary) (* 1.1)
-- employee
lens :: Has label value record => Proxy (label :: Symbol) -> Lens record record value value
-- | Cons a field onto a record by doing: cons (#foo := 123)
-- record
cons :: Cons label value record => (label := value) -> record -> Consed label value record
-- | Narrow number of or change order of fields in a record: Example:
-- project (bar := 2) :: ("bar" := Int)
project :: Project from to => from -> to
-- | Produce a list of field names, and each field applied to the given
-- function. Example: reflect @Show show (foo := 3)
reflect :: forall b. Reflect c r => (forall a. c a => a -> b) -> r -> [(String, b)]
-- | List the field labels present in the record. Example: labels (foo
-- := 3, #mu := "hi")
labels :: Reflect Ignore r => r -> [String]
-- | Field named l labels value of type t. Example:
-- (#name := "Chris") :: ("name" := String)
data (:=) label value
(:=) :: Proxy label -> value -> (:=) label value
-- | A record has a certain field which can be set and get.
class Has (label :: Symbol) value record | label record -> value
-- | Get a field by doing: get #salary employee
get :: Has label value record => Proxy label -> record -> value
-- | Set a field by doing: set #salary 54.00 employee
set :: Has label value record => Proxy label -> value -> record -> record
-- | A field can be consed onto the beginning of a record.
class Cons label value record
-- | Cons a field onto a record by doing: cons (#foo := 123)
-- record
cons :: Cons label value record => (label := value) -> record -> Consed label value record
-- | A record can be narrowed or have its order changed by projecting into
-- record type.
class Project from to
-- | Narrow number of or change order of fields in a record: Example:
-- project (bar := 2) :: ("bar" := Int)
project :: Project from to => from -> to
-- | Reflection on labelled fields.
class Reflect (c :: * -> Constraint) r
-- | Produce a list of field names, and each field applied to the given
-- function. Example: reflect @Show show (foo := 3)
reflect :: forall b. Reflect c r => (forall a. c a => a -> b) -> r -> [(String, b)]