h$D=@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None9(witch3This type class is for converting values from some source type into some other target type. The constraint Cast source target2 measn that you can convert from a value of type source into a value of type target.This type class is for conversions that cannot fail. If your conversion can fail, consider implementing TryCast instead.witchThis method implements the conversion of a value between types. At call sites you will usually want to use from or into instead of this method.7The default implementation of this method simply calls , which works for types that have the same runtime representation. This means that for newtypes you do not need to implement this method at all. For example:newtype Name = Name Stringinstance Cast Name Stringinstance Cast String Name Safe-Inferred witch=Never use this type for anything! It only exists to make the  type family non-trivial.witchThis is an ugly hack used to make GHC require type applications for certain functions. See this Twitter thread for a discussion:  ;https://twitter.com/taylorfausak/status/1329084033003782148. Safe-Inferred witch This exception is thrown when a TryCast( conversion fails. It has the original source0 value that caused the failure and it knows the target% type it was trying to convert into. Safe-Inferred /witch3This type class is for converting values from some source type into some other target type. The constraint TryCast source target= means that you may be able to convert from a value of type source into a value of type target*, but that conversion may fail at runtime.This type class is for conversions that can fail. If your conversion cannot fail, consider implementing Cast instead. witchThis method implements the conversion of a value between types. At call sites you will usually want to use tryFrom or tryInto instead of this method.  NoneY witchThis is the same as  except that it requires a type application. This can be an ergonomic way to pin down a polymorphic type in a function pipeline. For example: -- Avoid this: f . (\ x -> x :: Int) . g -- Prefer this: f . as @Int . g witchThis is the same as 5 except that it requires a type application for the source type. 7-- Avoid this: cast (x :: s) -- Prefer this: from @s x witchThis is the same as 5 except that it requires a type application for the target type. 5-- Avoid this: cast x :: t -- Prefer this: into @t x witch!This function converts from some source type into some target type, applies the given function, then converts back into the source type. This is useful when you have two types that are isomorphic but some function that only works with one of them. ?-- Avoid this: from @t . f . from @s -- Prefer this: over @t fwitch'This function first converts from some source type into some through) type, and then converts that into some target* type. Usually this is used when writing  instances. Sometimes this can be used to work around the lack of an instance that should probably exist. 8-- Avoid this: from @u . into @u -- Prefer this: via @uwitchThis is the same as  5 except that it requires a type application for the source type. =-- Avoid this: tryCast (x :: s) -- Prefer this: tryFrom @s xwitchThis is the same as  5 except that it requires a type application for the target type. -- Avoid this: tryCast x :: Either (TryCastException s t) t -- Prefer this: tryInto @t xwitch'This function can be used to implement   with a function that returns . For example: -- Avoid this: tryCast s = case f s of Nothing -> Left $ TryCastException s Nothing Just t -> Right t -- Prefer this: tryCast = maybeTryCast fwitch'This function can be used to implement   with a function that returns . For example: -- Avoid this: tryCast s = case f s of Left e -> Left . TryCastException s . Just $ toException e Right t -> Right t -- Prefer this: tryCast = eitherTryCast fwitchThis is similar to  except that it works with  instances instead. This function is especially convenient because juggling the types in the  can be tedious. -- Avoid this: fmap (tryFrom @u) . tryInto @u -- Prefer this: tryVia @uwitchThis function is like   except that it will throw an impure exception if the conversion fails. -- Avoid this: either throw id . cast -- Prefer this: unsafeCastwitchThis function is like   except that it will throw an impure exception if the conversion fails. -- Avoid this: either throw id . from @s -- Prefer this: unsafeFrom @switchThis function is like   except that it will throw an impure exception if the conversion fails. -- Avoid this: either throw id . into @t -- Prefer this: unsafeInto @t  Nonewitch This is like ; except that it works at compile time rather than runtime. -- Avoid this: unsafeCast "some literal" -- Prefer this: $$(liftedCast "some literal")witch This is like ; except that it works at compile time rather than runtime. -- Avoid this: unsafeFrom @s "some literal" -- Prefer this: $$(liftedFrom @s "some literal")witch This is like ; except that it works at compile time rather than runtime. -- Avoid this: unsafeInto @t "some literal" -- Prefer this: $$(liftedInto @t "some literal")None><witchThe maximum integral value that can be unambiguously represented as a . Equal to 16,777,215.witchThe maximum integral value that can be unambiguously represented as a !. Equal to 9,007,199,254,740,991.!witchUses ."witchUses .#witchUses .$witchUses . Some " values cannot be represented in  and will be replaced with '\xFFFD'.%witchUses .&witchUses .'witchUses .(witchUses . Some ! values cannot be represented in  and will be replaced with '\xFFFD'.)witchUses .*witchUses .+witchUses .,witchUses .-witchUses ..witchUses ./witchUses .0witchUses .1witchUses .2witchUses .3witchUses .4witchUses .5witchUses .6witchUses .7witchUses .8witchUses . If there are duplicate keys, later values will overwrite earlier ones.9witchUses .:witchUses . If there are duplicate keys, later values will overwrite earlier ones.;witchUses .<witchUses .=witchUses .>witchUses .?witchUses .@witchUses .AwitchUses  when the imaginary part is 0.BwitchUses  with an imaginary part of 0.CwitchUses  . This means cast (3.00 :: Centi) is 300 rather than 3.DwitchUses  . This means cast 2 :: Centi is 0.02 rather than 2.00.EwitchUses (. This necessarily loses some precision.FwitchUses (. This necessarily loses some precision.GwitchUses  when the denominator is 1.HwitchUses  with a denominator of 1.IwitchUses (. This necessarily loses some precision.JwitchUses ' when the input is not NaN or infinity.Kwitch Converts via .Lwitch Converts via .Mwitch Converts via .Nwitch Converts via .Owitch Converts via .Pwitch Converts via .Qwitch Converts via  when the input is between -9,007,199,254,740,991 and 9,007,199,254,740,991 inclusive.Rwitch Converts via .Switch Converts via .Twitch Converts via .Uwitch Converts via .Vwitch Converts via .WwitchUses .XwitchUses ' when the input is not NaN or infinity.Ywitch Converts via .Zwitch Converts via .[witch Converts via .\witch Converts via .]witch Converts via .^witch Converts via ._witch Converts via  when the input is between -16,777,215 and 16,777,215 inclusive.`witch Converts via .awitch Converts via .bwitch Converts via .cwitch Converts via .dwitch Converts via .ewitchUses  when the input is less than or equal to 9,007,199,254,740,991.fwitchUses 4 when the input is less than or equal to 16,777,215.gwitchUses .hwitchUses .iwitchUses .jwitchUses .kwitchUses .lwitchUses .mwitchUses .nwitchUses .owitchUses .pwitchUses .qwitchUses .rwitchUses  when the input is less than or equal to 9,007,199,254,740,991.switchUses 4 when the input is less than or equal to 16,777,215.twitchUses .uwitchUses .vwitchUses .wwitchUses .xwitchUses .ywitchUses .zwitchUses .{witchUses .|witchUses .}witchUses .~witchUses .witchUses  when the input is less than or equal to 9,007,199,254,740,991.witchUses 4 when the input is less than or equal to 16,777,215.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses 4 when the input is less than or equal to 16,777,215.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is between -9,007,199,254,740,991 and 9,007,199,254,740,991 inclusive.witchUses  when the input is between -16,777,215 and 16,777,215 inclusive.witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is between -9,007,199,254,740,991 and 9,007,199,254,740,991 inclusive.witchUses  when the input is between -16,777,215 and 16,777,215 inclusive.witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is between -9,007,199,254,740,991 and 9,007,199,254,740,991 inclusive.witchUses  when the input is between -16,777,215 and 16,777,215 inclusive.witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is between -16,777,215 and 16,777,215 inclusive.witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses  when the input is not negative.witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .witchUses .None=           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$witch-0.2.0.0-2EBfx5DQ7XK24Ma3vyMuoa Witch.CastWitch.IdentityWitch.TryCastException Witch.TryCast Witch.Utility Witch.LiftWitch.InstancesWitchCastcastNeverIdentityTryCastException$fExceptionTryCastException$fShowTryCastExceptionTryCasttryCastasfromintooverviatryFromtryInto maybeTryCast eitherTryCasttryVia unsafeCast unsafeFrom unsafeInto liftedCast liftedFrom liftedIntofromNonNegativeIntegralmaxFloat maxDouble$fCastTryCastExceptionText$fCastTryCastExceptionText0$fCastTryCastException[]&$fCastTryCastExceptionTryCastException$fCastTextByteString$fCastTextText $fCastText[] $fCast[]Text$fCastTextByteString0$fCastTextText0 $fCastText[]0 $fCast[]Text0$fCastShortByteStringByteString$fCastShortByteString[]$fCast[]ShortByteString$fTryCastByteStringText$fCastByteStringByteString$fCastByteString[]$fCast[]ByteString$fTryCastByteStringText0$fCastByteStringShortByteString$fCastByteStringByteString0$fCastByteString[]0$fCast[]ByteString0 $fCastSeq[] $fCast[]Seq$fCastIntMap[]$fCast[]IntMap $fCastMap[] $fCast[]Map$fCastIntSet[]$fCast[]IntSet $fCastSet[] $fCast[]Set$fCastNonEmpty[]$fTryCast[]NonEmpty$fTryCastComplexa$fCastaComplex$fCastFixedInteger$fCastIntegerFixed$fCastRatioDouble$fCastRatioFloat$fTryCastRatioa $fCastaRatio$fCastDoubleFloat$fTryCastDoubleRatio$fTryCastDoubleNatural$fTryCastDoubleWord$fTryCastDoubleWord64$fTryCastDoubleWord32$fTryCastDoubleWord16$fTryCastDoubleWord8$fTryCastDoubleInteger$fTryCastDoubleInt$fTryCastDoubleInt64$fTryCastDoubleInt32$fTryCastDoubleInt16$fTryCastDoubleInt8$fCastFloatDouble$fTryCastFloatRatio$fTryCastFloatNatural$fTryCastFloatWord$fTryCastFloatWord64$fTryCastFloatWord32$fTryCastFloatWord16$fTryCastFloatWord8$fTryCastFloatInteger$fTryCastFloatInt$fTryCastFloatInt64$fTryCastFloatInt32$fTryCastFloatInt16$fTryCastFloatInt8$fTryCastNaturalDouble$fTryCastNaturalFloat$fCastNaturalInteger$fTryCastNaturalInt$fTryCastNaturalInt64$fTryCastNaturalInt32$fTryCastNaturalInt16$fTryCastNaturalInt8$fTryCastNaturalWord$fTryCastNaturalWord64$fTryCastNaturalWord32$fTryCastNaturalWord16$fTryCastNaturalWord8$fTryCastWordDouble$fTryCastWordFloat$fCastWordInteger$fTryCastWordInt$fTryCastWordInt64$fTryCastWordInt32$fTryCastWordInt16$fTryCastWordInt8$fCastWordNatural$fCastWordWord64$fTryCastWordWord32$fTryCastWordWord16$fTryCastWordWord8$fTryCastWord64Double$fTryCastWord64Float$fCastWord64Integer$fTryCastWord64Int$fTryCastWord64Int64$fTryCastWord64Int32$fTryCastWord64Int16$fTryCastWord64Int8$fCastWord64Natural$fTryCastWord64Word$fTryCastWord64Word32$fTryCastWord64Word16$fTryCastWord64Word8$fCastWord32Double$fTryCastWord32Float$fCastWord32Integer$fTryCastWord32Int$fCastWord32Int64$fTryCastWord32Int32$fTryCastWord32Int16$fTryCastWord32Int8$fCastWord32Natural$fTryCastWord32Word$fCastWord32Word64$fTryCastWord32Word16$fTryCastWord32Word8$fCastWord16Double$fCastWord16Float$fCastWord16Integer$fCastWord16Int$fCastWord16Int64$fCastWord16Int32$fTryCastWord16Int16$fTryCastWord16Int8$fCastWord16Natural$fCastWord16Word$fCastWord16Word64$fCastWord16Word32$fTryCastWord16Word8$fCastWord8Double$fCastWord8Float$fCastWord8Integer$fCastWord8Int$fCastWord8Int64$fCastWord8Int32$fCastWord8Int16$fTryCastWord8Int8$fCastWord8Natural$fCastWord8Word$fCastWord8Word64$fCastWord8Word32$fCastWord8Word16$fTryCastIntegerDouble$fTryCastIntegerFloat$fTryCastIntegerNatural$fTryCastIntegerWord$fTryCastIntegerWord64$fTryCastIntegerWord32$fTryCastIntegerWord16$fTryCastIntegerWord8$fTryCastIntegerInt$fTryCastIntegerInt64$fTryCastIntegerInt32$fTryCastIntegerInt16$fTryCastIntegerInt8$fTryCastIntDouble$fTryCastIntFloat$fTryCastIntNatural$fTryCastIntWord$fTryCastIntWord64$fTryCastIntWord32$fTryCastIntWord16$fTryCastIntWord8$fCastIntInteger$fCastIntInt64$fTryCastIntInt32$fTryCastIntInt16$fTryCastIntInt8$fTryCastInt64Double$fTryCastInt64Float$fTryCastInt64Natural$fTryCastInt64Word$fTryCastInt64Word64$fTryCastInt64Word32$fTryCastInt64Word16$fTryCastInt64Word8$fCastInt64Integer$fTryCastInt64Int$fTryCastInt64Int32$fTryCastInt64Int16$fTryCastInt64Int8$fCastInt32Double$fTryCastInt32Float$fTryCastInt32Natural$fTryCastInt32Word$fTryCastInt32Word64$fTryCastInt32Word32$fTryCastInt32Word16$fTryCastInt32Word8$fCastInt32Integer$fTryCastInt32Int$fCastInt32Int64$fTryCastInt32Int16$fTryCastInt32Int8$fCastInt16Double$fCastInt16Float$fTryCastInt16Natural$fTryCastInt16Word$fTryCastInt16Word64$fTryCastInt16Word32$fTryCastInt16Word16$fTryCastInt16Word8$fCastInt16Integer$fCastInt16Int$fCastInt16Int64$fCastInt16Int32$fTryCastInt16Int8$fCastInt8Double$fCastInt8Float$fTryCastInt8Natural$fTryCastInt8Word$fTryCastInt8Word64$fTryCastInt8Word32$fTryCastInt8Word16$fTryCastInt8Word8$fCastInt8Integer $fCastInt8Int$fCastInt8Int64$fCastInt8Int32$fCastInt8Int16ghc-primGHC.PrimcoercebaseGHC.Baseid GHC.MaybeMaybe Data.EitherEither GHC.TypesFloatDouble#text-1.2.4.1-GP7eNhmR25pL86hGhau2f1Data.Text.Lazy.Encoding encodeUtf8Data.Text.LazytoStrictunpackpackCharData.Text.Internal.LazyTextData.Text.Encoding fromStrictData.Text.Show Data.TextData.Text.Internal+bytestring-0.10.12.1-GAiXzE3dBr4BDIhRw30d1xData.ByteString.Short.Internal fromShort decodeUtf8'Data.ByteString.LazytoShortData.ByteString Data.FoldabletoListcontainers-0.6.2.1Data.Sequence.InternalfromListData.IntMap.Internal toAscListData.Map.InternalData.IntSet.InternalData.Set.InternalData.List.NonEmptynonEmpty Data.ComplexrealPart:+ Data.FixedMkFixedGHC.Real fromRational numerator% realToFrac toRationalinteger-wired-inGHC.Integer.TypeIntegerRational fromIntegral Data.BitstoIntegralSizedGHC.Num fromInteger