úÎ!u<hæq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop Safe -.>HUV$!haskus-utils-types"Check if all the elements are true(natValue' @(AllTrue 1 0 '[0,0,1] :: Nat)0(natValue' @(AllTrue 1 0 '[1,1,1] :: Nat)1 haskus-utils-types#Check if all the elements are false)natValue' @(AllFalse 1 0 '[0,0,1] :: Nat)0)natValue' @(AllFalse 1 0 '[0,0,0] :: Nat)1!haskus-utils-typesYGeneric boolean Xor on a list (i.e. check if there is a single true element in the list)(natValue' @(XorMany 1 0 '[0,0,1] :: Nat)1(natValue' @(XorMany 1 0 '[1,0,1] :: Nat)0(natValue' @(XorMany 1 0 '[0,0,0] :: Nat)0"haskus-utils-typesGeneric boolean Or on a list'natValue' @(OrMany 1 0 '[1,0,1] :: Nat)1'natValue' @(OrMany 1 0 '[1,1,1] :: Nat)1'natValue' @(OrMany 1 0 '[0,0,0] :: Nat)0#haskus-utils-typesGeneric boolean And on a list(natValue' @(AndMany 1 0 '[1,0,1] :: Nat)0(natValue' @(AndMany 1 0 '[1,1,1] :: Nat)1$haskus-utils-typesGeneric boolean XornatValue' @(Xor 1 0 1 0 :: Nat)1natValue' @(Xor 1 0 0 0 :: Nat)0natValue' @(Xor 1 0 1 1 :: Nat)0%haskus-utils-typesGeneric boolean OrnatValue' @(Or 1 0 1 0 :: Nat)1natValue' @(Or 1 0 0 0 :: Nat)0&haskus-utils-typesGeneric boolean AndnatValue' @(And 1 0 1 0 :: Nat)0natValue' @(And 1 0 1 1 :: Nat)1'haskus-utils-typesGeneric boolean NotnatValue' @(Not 1 0 1 :: Nat)0natValue' @(Not 1 0 0 :: Nat)1(haskus-utils-types Boolean XorboolValue @(XorB 'True 'False)TrueboolValue @(XorB 'False 'False)FalseboolValue @(XorB 'True 'True)False)haskus-utils-types Boolean OrboolValue @(OrB 'True 'False)TrueboolValue @(OrB 'False 'False)False*haskus-utils-types Boolean AndboolValue @(AndB 'True 'False)FalseboolValue @(AndB 'True 'True)True+haskus-utils-types Boolean NotboolValue @(NotB 'True)FalseboolValue @(NotB 'False)True,haskus-utils-types%Type-level Bool known at compile time-haskus-utils-types*Get a bool value from a Bool at type levelboolValue @'TrueTrueboolValue @(AndB 'True 'False)False.haskus-utils-types If-then-else !"#$%&'()*+,-..+)*(,-'&%$#"! None$×Safe -.HUVXk,ï1haskus-utils-typesLike: If cond t (TypeError msg)‚The difference is that the TypeError doesn't appear in the RHS of the type which leads to better error messages (see GHC #14771).XFor instance: type family F n where F n = If (n <=? 8) Int8 (TypeError (Text ERROR))?type family G n where G n = Assert (n <=? 8) Int8 (Text ERROR)uIf GHC cannot solve `F n ~ Word`, it shows: ERROR If GHC cannot solve `G n ~ Word`, it shows: can't match   with q11Safe -.HUVXk6÷ 2haskus-utils-typesReturn 0 if 0, and 1 otherwise3haskus-utils-typesReturn 1 if 0, and 0 otherwise4haskus-utils-types3Number of bits (>= 1) required to store a Nat valuenatValue' @(NatBitCount 0)1natValue' @(NatBitCount 1)1natValue' @(NatBitCount 2)2natValue' @(NatBitCount 5)3natValue' @(NatBitCount 15)4natValue' @(NatBitCount 16)55haskus-utils-typesMin of two naturals6haskus-utils-typesMax of two naturals7haskus-utils-typesType inequality to Nat8haskus-utils-typesType equality to Nat9haskus-utils-typesGet a Nat value:haskus-utils-typesGet a Nat value as a Word 23456789:9: 876532   4None ,-.>HUVX\ê3;haskus-utils-types3Check that a list only contain a value of each type<haskus-utils-types(Constraint: all the xs are members of ys=haskus-utils-typesConstraint: x member of xs>haskus-utils-typesProduct of two lists?haskus-utils-typesComplement xs ys@haskus-utils-typesUnion two listsAhaskus-utils-types Set equalityBhaskus-utils-types Subset testChaskus-utils-types/MapElem t f xs ys = Map (x -> Elem t f x ys) xsDhaskus-utils-typesList membership testEhaskus-utils-typesIndexed access into the listrhaskus-utils-typesHelper for MaybeIndexOfFhaskus-utils-types<Get the first index (starting from 1) of a type or 0 if noneshaskus-utils-typesGet the first index of a typeGhaskus-utils-typesGet all the indexes of a typethaskus-utils-typesGet the first index of a typeHhaskus-utils-typesGet the first index of a typeIhaskus-utils-types)Keep only a single value of the head typeJhaskus-utils-types%Keep only a single value of each typeKhaskus-utils-typesRemove a in lLhaskus-utils-types Zip two listsMhaskus-utils-types&Map to 1 if type equality, 0 otherwiseNhaskus-utils-typesGet list indexesuhaskus-utils-typesHelper for CheckMembersOhaskus-utils-types(Check that a list is a subset of anothervhaskus-utils-typesHelper for CheckMemberPhaskus-utils-types*Check that a type is member of a type listQhaskus-utils-typesGenerate a list of Nat [n..m-1]Rhaskus-utils-typesRemove types at several indexesShaskus-utils-types*Remove a type at index (0 == don't remove)Thaskus-utils-typesRemove a type at indexUhaskus-utils-typesReverse a listVhaskus-utils-types replace types at offsets ns in lWhaskus-utils-typesreplace a type at offset n in lXhaskus-utils-typesreplace a type by another in lYhaskus-utils-typesreplace l[n] with l2 (folded)Zhaskus-utils-typesInsert a list at n[haskus-utils-types Replicate\haskus-utils-typesGet list length]haskus-utils-typesConcat two type lists^haskus-utils-typesHead of a list_haskus-utils-typesSnoc`haskus-utils-typesInit of a listahaskus-utils-typesTake elements in a listbhaskus-utils-typesDrop elements in a listchaskus-utils-typesTail of a listwhaskus-utils-typesHelper for Mindhaskus-utils-typesGet the min of a list of Natsxhaskus-utils-typesHelper for Maxehaskus-utils-typesGet the max of a list of Natsfhaskus-utils-typesMap a type function,;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef,_][LTSRKJI^c`abZYXWVBAPO@?>=<;HGFEDCUQfed\NMNone.FHXk_Vghaskus-utils-typesA natural value Proxyyz{|}ghghSafe -.HUVXk` jj  None`Žm yz{|} !"#$%&'()*+,-.123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjNone.HUVg&khaskus-utils-typesaExtract types of the fields of a data type - only support data type with a single constructorlhaskus-utils-typestExtract fields of a data type: - require selector symbols - only support data type with a single constructorphaskus-utils-types Named fieldi~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàklmnoppomnlká              !" # $ % & ' ( ) ) * + , - - ./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwxyz{|}~€‚ƒ„…† ‡ˆ ‡‰ ‡‰ ‡Š ‡Š ‹Œ ‹ ‹Ž ‹ ‹ ‹‘ ‹’ ‹“ ‹” ‹• ‹– ‹— ‹˜ ‹™ ‹š ‹› ‹œ ‹ ‹ž ‹Ÿ ‹  ‹¡ ‹¢ ‹£ ‹£ ‹€ ‹€ ‹¥ ‹Š ‹Š ‹§ ‹š ‹š ‹© ‹ª ‹ª ‹« ‹¬ ‹­ ‹® ‹¯ ‹¯ ‹° ‹± ‹² ‹³ ‹Ž ‹µ ‹¶ ‹· ‹ž ‹¹ ‹º ‹» ‹Œ ‹œ ‹Ÿ ‹¿ ‹À ‹Á ‹Â ‹Ã ‹Ä ‹Å ‹Æ ‹Ç ‹Œ ‹œ ‹Ÿ ‹¿ ‹À ‹Á ‹È ‹É ‹Ê ‹Ë ‹Ì ‹Í ‹Î ‹Ï ‹Ð ‹Ñ ‹Ò ‹Ó ‹Ô ‹Õ ‹Ö ‹× ‹Ø ‹Ù ‹Ú ‹Û ‹Ü ‹Ý ‹Þ ‹ß ‹à ‹á ‹âã-haskus-utils-types-1.4-5y73T6h4RI5BfZ1d1wxJJOHaskus.Utils.Types.NatHaskus.Utils.Types.SymbolHaskus.Utils.Types.ConstraintHaskus.Utils.Types.ErrorHaskus.Utils.Types.ProxyHaskus.Utils.Types.BoolHaskus.Utils.Types.ListHaskus.Utils.Types.GenericsAssert..Haskus.Utils.Typesbase GHC.TypeNatsKnownNat GHC.TypeLits KnownSymbolghc-prim GHC.Types ConstraintNatSymbol+*^<=?- CmpSymbolCmpNatDivModLog2 TypeErrorGHC.PrimProxy#Text:<>::$$:ShowType sameSymbol someSymbolVal SomeSymbol ErrorMessagesameNat someNatValSomeNat<=AllTrueAllFalseXorManyOrManyAndManyXorOrAndNotXorBOrBAndBNotB KnownBool boolValueIf$fKnownBoolBoolFalse$fKnownBoolBoolTrue IsNotZeroIsZero NatBitCountMinMaxNatNotEqNatEqnatValue natValue'CheckNubMembersMemberProduct ComplementUnionSetEqSubsetMapElemElemIndex MaybeIndexOf IndexesOfIndexOfNubHeadNubRemoveZipMapTestIndexes CheckMembers CheckMemberGenerate RemoveAtN RemoveAt1RemoveAtReverse ReplaceNSReplaceNReplace ReplaceAtInsertAt ReplicateLengthConcatHeadSnocInitTakeDropTailListMinListMaxMapNatVal $fShowNatVal symbolValueExtractFieldTypes ExtractFields LookupFieldLookupFieldType FieldTypeFieldWord MaybeIndexOf' IndexesOf'IndexOf' CheckMembers' CheckMember'Min'Max' Data.Proxy asProxyTypeOfProxyKProxy GHC.GenericsGenericRepfromtoGeneric1Rep1from1to1Datatype datatypeName moduleName packageName isNewtype ConstructorconName conFixity conIsRecordSelectorselNameselSourceUnpackednessselSourceStrictnessselDecidedStrictnessV1U1Par1unPar1Rec1unRec1K1unK1M1unM1:+:L1R1:*::.:Comp1unComp1RDCSRec0D1C1S1URecUAddrUCharUDoubleUFloatUIntUWorduWord#uInt#uFloat#uDouble#uChar#uAddr#precFixityPrefixInfixFixityIPrefixIInfixI AssociativityLeftAssociativeRightAssociativeNotAssociativeSourceUnpackedness SourceUnpackSourceNoUnpackNoSourceUnpackednessSourceStrictness SourceLazy SourceStrictNoSourceStrictnessDecidedStrictness DecidedLazy DecidedStrict DecidedUnpackMetaMetaDataMetaConsMetaSel