Îõ³h&sPà      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  Safe-Inferred'()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷ê`abcdefg Safe-Inferred&()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷? strongweakòObtain either the strong or weak representation of a type, depending on the type-level strength "switch" provided.6This is intended to be used in data types that take a 7 type. Define your type using strong fields wrapped in Switch sË. You then get the weak representation for free, using the same definition. Ñdata A (s :: Strength) = A { aField1 :: Switch s Word8 , aField2 :: String }  strongweak1Obtain the weak representation of the given type. Safe-Inferred(!()/0145789:;<=>?ÀÁÂÃÄÆÉËÌÖØÙÛâéîõ÷š strongweak'weak type, strong type, weak value, msg strongweakŒweak datatype name, strong datatype name, weak constructor name, strong constructor name, weak field name, strong field name, error strongweakAny w can be "strengthened" into an s by asserting some properties.%For example, you may strengthen some h n into a i by asserting  0 <= n <= 255.üNote that we restrict strengthened types to having only one corresponding weak representation using functional dependencies. strongweak?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷ ì ! strongweakj? without the value (only used as a proxy). Lets us push our ks into one place." strongweakl? without the value (only used as a proxy). Lets us push our ks into one place.# strongweakl? without the value (only used as a proxy). Lets us push our ks into one place.$ strongweak4Strengthen sum types by strengthening left or right.% strongweak"Nothing to do for empty datatypes.' strongweak;Strengthen product types by strengthening left, then right.( strongweak&Strengthen a field using the existing  instance.) strongweakËSpecial case: if source and target types are equal, copy the value through.* strongweak%Nothing to do for empty constructors.  !"# !"# Safe-Inferred'()/0145789:;<=>?ÀÁÂÃÄÆÉËÌÖØÙÛâéîõ÷ ø, strongweakAny s can be "weakened" into a w.For example, you may weaken a i into a h.üNote that we restrict strengthened types to having only one corresponding weak representation using functional dependencies.6 strongweak(Strip the refinement from refined types.7 strongweak&Weaken sized vectors into plain lists.8 strongweakWeaken each element of a list.,-,- Safe-Inferred&()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷< strongweak,Weaken sum types by weakening left or right.= strongweak1Weaken product types by weakening left and right.> strongweak"Weaken a field using the existing , instance.? strongweakËSpecial case: if source and target types are equal, copy the value through.@ strongweak%Nothing to do for empty constructors.A strongweak"Nothing to do for empty datatypes.B strongweakStrip all meta.9:;;9: Safe-Inferred&()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷e ;;  Safe-Inferred&()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷Æ ,- Safe-Inferred&()/0145789:;<=>?ÀÁÂÃÄÉËÌÖØÙÛâéîõ÷2 CDEFIHGJMLKNO JMLKFIHGNOECDí      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstusvwsxysvzûstrongweak-0.1.0-inplace Strongweak.SWStrongweak.StrengthenStrongweak.Generic.StrengthenStrongweak.WeakenStrongweak.Generic.WeakenStrongweak.ExamplePaths_strongweakStrongweak.Generic StrongweakSWWeakStrengthStrongStrengthenErrorStrengthenErrorBaseStrengthenErrorField Strengthen strengthenstrengthenErrorBasestrengthenErrorPrettystrengthenBounded$fPrettyStrengthenError$fShowStrengthenError$fStrengthenIntegerInt64$fStrengthenIntegerInt32$fStrengthenIntegerInt16$fStrengthenIntegerInt8$fStrengthenNaturalWord64$fStrengthenNaturalWord32$fStrengthenNaturalWord16$fStrengthenNaturalWord8$fStrengthenaRefined$fStrengthen[]Vector$fStrengthen[][] GStrengthenS gstrengthenS GStrengthenC gstrengthenC GStrengthenD gstrengthenDstrengthenGenericconName' datatypeName'selName'$fGStrengthenCk:+::+:$fGStrengthenCkV1V1$fGStrengthenDkM1M1$fGStrengthenSk:*::*:$fGStrengthenSkM1M1$fGStrengthenSkM1M10$fGStrengthenSkU1U1$fGStrengthenCkM1M1Weakenweaken$fWeakenInt64Integer$fWeakenInt32Integer$fWeakenInt16Integer$fWeakenInt8Integer$fWeakenWord64Natural$fWeakenWord32Natural$fWeakenWord16Natural$fWeakenWord8Natural$fWeakenRefineda$fWeakenVector[] $fWeaken[][]GWeakengweaken weakenGeneric$fGWeakenk:+::+:$fGWeakenk:*::*:$fGWeakenkK1K1$fGWeakenkK1K10$fGWeakenkU1U1$fGWeakenkV1V1$fGWeakenkM1M1ExUnitExVoidEx2DEx2Cex2f1ex2f2Ex1DEx1Cex1f1ex1f2ex1wex2w$fStrengthenEx1DEx1D$fWeakenEx1DEx1D$fStrengthenEx2DEx2D$fWeakenEx2DEx2D$fStrengthenExVoidExVoid$fWeakenExVoidExVoid$fStrengthenExUnitExUnit$fWeakenExUnitExUnit$fGenericExUnit$fGenericExVoid $fGenericEx2D $fGenericEx1D $fShowEx2D $fShowEx2D0 $fShowEx1D $fShowEx1D0versiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir ghc-bignumGHC.Num.NaturalNaturalbaseGHC.WordWord8 GHC.GenericsconNameGHC.Err undefined datatypeName