h&#       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde Safe-Inferred (0;<>?fghijklm Safe-Inferred (0;<>? strongweakGet either the strong or weak representation of a type, depending on the type-level "switch" provided.6This is intended to be used in data types that take a 7 type. Define your type using strong fields wrapped in SW s. You then get the weak representation for free, using the same definition. data A (s :: Strength) = A { a1 :: SW s Word8 , a2 :: String }  strongweak,Strength enumeration: is it strong, or weak?:Primarily interesting at the type level (using DataKinds). strongweak Transform an a to a  a.A given strong type a& has exactly one associated weak type  a9. Multiple strong types may weaken to the same weak type.Law:  a === b ->  a ===  bInstances should either( handle an invariant, or decompose. See  Strongweak! for a discussion on this design. strongweakThe type to weaken to. strongweak4Transform a strong value to its associated weak one. strongweak=Lift a function on a weak type to the associated strong type. strongweak Decomposer.  strongweak Decomposer.  strongweak Decomposer.  strongweak Decomposer.  strongweak Decomposer.  strongweak+Decomposer. Weaken every element in a list. strongweak(Strip the refinement from refined types. strongweak&Weaken sized vectors into plain lists. strongweak(Weaken non-empty lists into plain lists. Safe-Inferred (0;<>? %  strongweakUnsafely transform a  a to an a, without asserting invariants..For example, you may unsafely strengthen some  n into a n? by unsafely coercing the value, ignoring the possibility that n >= 255.What happens if it turns out you're lying to the computer and your weak value doesn't fit in its strong counterpart? That depends on the strengthen.)Numeric coercions should safely overflow.Some will raise an error (e.g. o).Others will appear to work, but later explode your computer (sized vectors will probably do this).Only consider using this if you have a guarantee that your value is safe to treat as strong.Instances should either( handle an invariant, or decompose. See  Strongweak! for a discussion on this design. strongweak=Unsafely transform a weak value to its associated strong one. strongweak Decomposer. strongweak Decomposer. strongweak Decomposer. strongweak Decomposer. strongweak Decomposer.  strongweak8Decomposer. Unsafely strengthen every element in a list.) strongweak=Wrap a value to a refined one without checking the predicate.* strongweak)Unsafely assume the size of a plain list.+ strongweak$Unsafely assume a list is non-empty. Safe-Inferred!(0;<>? , strongweakStrengthen failure data type. Don't use these constructors directly, use the existing helper functions.Field indices are from 0 in the respective constructor. Field names are provided if present./ strongweakYou may attempt to transform a  a to an a.Laws:  a === b -> 0 a === 0 b 0 ( a) === p aWe take  as a superclass in order to maintain strong/weak type pair consistency. We choose this dependency direction because we treat the strong type as the "canonical" one, so ; is the more natural (and straightforward) class to define.Instances should either( handle an invariant, or decompose. See  Strongweak! for a discussion on this design.0 strongweak?Attempt to transform a weak value to its associated strong one.1 strongweak0Weaken a strong value, then strengthen it again.0Potentially useful if you have previously used  4 and now wish to check the invariants. For example:7restrengthen $ unsafeStrengthen @(Vector 2 Natural) [0] Failure ...7 strongweak Decomposer.8 strongweak Decomposer.9 strongweak Decomposer.: strongweak Decomposer.; strongweak Decomposer.< strongweak/Decomposer. Strengthen every element in a list.E strongweak?I strongweak4Generic strengthening at the selector product level.In order to calculate field indices, we return the current field index alongside the result. This way, the product case can strengthen the left branch, then increment the returned field index and use it for strengthening the right branch.K strongweak3Generic strengthening at the constructor sum level.M strongweak,Generic strengthening at the datatype level.O strongweakStrengthen a value generically."The weak and strong types must be  compatible. See   6 for the definition of compatibility in this context.P strongweak.Get the record name for a selector if present.On the type level, a 'Maybe Symbol' is stored for record names. But the reification is done using  fromMaybe "". So we have to inspect the resulting string to determine whether the field uses record syntax or not. (Silly.)Q strongweakq? without the value (only used as a proxy). Lets us push our rs into one place.R strongweaks? without the value (only used as a proxy). Lets us push our rs into one place.S strongweakt? without the value (only used as a proxy). Lets us push our rs into one place.T strongweak?Strengthen sum types by casing and strengthening left or right.U strongweak"Nothing to do for empty datatypes.V strongweak1Enter a datatype, stripping its metadata wrapper.W strongweak&Strengthen a field using the existing / instance.X strongweakSpecial case: if source and target types are equal, copy the value through.Y strongweak9Strengthen product types by strengthening left and right.This is ordered (left then right) in order to pass the field index along.Z strongweak%Nothing to do for empty constructors.[ strongweak4Enter a constructor, stripping its metadata wrapper.J strongweakweak datatype name strongweakstrong datatype name strongweakweak constructor name strongweakstrong constructor name strongweak"current field index (0, from left) IJKLMNOPQRS OMNKLIJPQRS Safe-Inferred (0;<>? 3^ strongweakWeaken a value generically."The weak and strong types must be  compatible. See   6 for the definition of compatibility in this context._ strongweak7Weaken sum types by casing and weakening left or right.` strongweak1Weaken product types by weakening left and right.a strongweak"Weaken a field using the existing  instance.b strongweakSpecial case: if source and target types are equal, copy the value through.c strongweak%Nothing to do for empty constructors.d strongweak"Nothing to do for empty datatypes.e strongweakStrip all meta.\]^^\]  Safe-Inferred (0;<>? oO^^O  Safe-Inferred (0;<>? ,-./01234  !"#$% &'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{y|}~yyyystrongweak-0.3.2-inplaceStrongweak.WeakenStrongweak.Strengthen.UnsafeStrongweak.StrengthenStrongweak.Generic.StrengthenStrongweak.Generic.WeakenPaths_strongweakNumeric.NaturalNaturalunsafeStrengthen StrongweakGenericStrongweak.GenericSWStrengthStrongWeakWeakenweaken liftWeakF $fWeakenConst$fWeakenIdentity$fWeakenEither $fWeakenMaybe $fWeaken(,) $fWeaken[] $fWeakenInt64 $fWeakenInt32 $fWeakenInt16 $fWeakenInt8$fWeakenWord64$fWeakenWord32$fWeakenWord16 $fWeakenWord8$fWeakenRefined$fWeakenVector$fWeakenNonEmptyUnsafeStrengthen$fUnsafeStrengthenConst$fUnsafeStrengthenIdentity$fUnsafeStrengthenEither$fUnsafeStrengthenMaybe$fUnsafeStrengthen(,)$fUnsafeStrengthen[]$fUnsafeStrengthenInt64$fUnsafeStrengthenInt32$fUnsafeStrengthenInt16$fUnsafeStrengthenInt8$fUnsafeStrengthenWord64$fUnsafeStrengthenWord32$fUnsafeStrengthenWord16$fUnsafeStrengthenWord8$fUnsafeStrengthenRefined$fUnsafeStrengthenVector$fUnsafeStrengthenNonEmptyStrengthenFailStrengthenFailBaseStrengthenFailField Strengthen strengthen restrengthenstrengthenFailPrettystrengthenFailBasestrengthenBounded$fPrettyStrengthenFail$fShowStrengthenFail$fStrengthenConst$fStrengthenIdentity$fStrengthenEither$fStrengthenMaybe$fStrengthen(,)$fStrengthen[]$fStrengthenInt64$fStrengthenInt32$fStrengthenInt16$fStrengthenInt8$fStrengthenWord64$fStrengthenWord32$fStrengthenWord16$fStrengthenWord8$fStrengthenRefined$fStrengthenVector$fStrengthenNonEmpty$fEqStrengthenFail GStrengthenS gstrengthenS GStrengthenC gstrengthenC GStrengthenD gstrengthenDstrengthenGeneric selName''conName' datatypeName'selName'$fGStrengthenCk:+::+:$fGStrengthenCkV1V1$fGStrengthenDkM1M1$fGStrengthenSkM1M1$fGStrengthenSkM1M10$fGStrengthenSk:*::*:$fGStrengthenSkU1U1$fGStrengthenCkM1M1GWeakengweaken weakenGeneric$fGWeakenk:+::+:$fGWeakenk:*::*:$fGWeakenkK1K1$fGWeakenkK1K10$fGWeakenkU1U1$fGWeakenkV1V1$fGWeakenkM1M1versiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirbaseGHC.WordWord8GHC.BaseNonEmptyeither-5.0.2-136baffd25c1237fb3f73cc57a947fa17b247721e18f748b916619325ed3304eData.Either.ValidationSuccess GHC.GenericsconNameGHC.Err undefined datatypeNameselName