úÎ#Óm     Safe&',-=>?@AEHUVXkÛ dependent-sumŒA basic dependent sum type where the first component is a tag that specifies the type of the second. For example, think of a GADT such as: edata Tag a where AString :: Tag String AnInt :: Tag Int Rec :: Tag (DSum Tag Identity)/Then we can write expressions where the RHS of ()' has different types depending on the Tag6 constructor used. Here are some expressions of type  DSum Tag Identity: 5AString :=> Identity "hello!" AnInt :=> Identity 42 Often, the f we choose has an / instance, and we can use the helper function ()/. The following expressions all have the type Applicative f => DSum Tag f: #AString ==> "hello!" AnInt ==> 42$We can write functions that consume  DSum Tag f values by matching, such as: ³toString :: DSum Tag Identity -> String toString (AString :=> Identity str) = str toString (AnInt :=> Identity int) = show int toString (Rec :=> Identity sum) = toString sumThe () constructor and ()$ helper are chosen to resemble the (key => value)E construction for dictionary entries in many dynamic languages. The :=> and ==>{ operators have very low precedence and bind to the right, making repeated use of these operators behave as you'd expect: j-- Parses as: Rec ==> (AnInt ==> (3 + 4)) -- Has type: Applicative f => DSum Tag f Rec ==> AnInt ==> 3 + 48The precedence of these operators is just above that of , so foo bar $ AString ==> "eep" is equivalent to foo bar (AString ==> "eep"). To use the , , , and  instances for  tag f, you will need an " instance for your tag type. Use  from the constraints-extras$ package to generate this instance. dependent-sumConvenience helper. Uses  to lift a into f a.   11      !"#$%dependent-sum-0.6.2.2-inplaceData.Dependent.SumData.Constraint.Extras.TH deriveArgDictOrdTagEqTagReadTagShowTagDSum:=>==>showTaggedPrecreadTaggedPrec eqTaggedPreceqTaggedcompareTaggedPrec compareTagged $fOrdDSum$fEqDSum $fReadDSum $fShowDSumbaseGHC.Base Applicative$ghc-prim GHC.ClassesEqOrdGHC.ReadReadGHC.ShowShow[constraints-extras-0.3.0.2-81ee78adec6ac980d8f58c11631353ea5d8fbd8b05ccf40cdd3a30f4fe84d8c6Data.Constraint.ExtrasArgDictpure