!=8D      !"#$%&'()*+,-./0123456789:;<=>?@A B C Safe' overloaded Class for D-like datastructuresA character literal x is desugared to  'x' Safe  overloaded Class for E-like datastrucutresAn if- -expression if b then t else e is desugared to ifte ( b) t e  Enabled with: ?{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:If #-}  overloaded overloaded if -expression. overloadedF is G overloadedH is GNone&'.=?@ACHUVX   overloadedClass for Cons :.  overloadedClass for nil, []0See test-suite for ways to define instances for   . There are at-least two-ways.  Safe overloaded Class for I-like datastructuresA numeric literal 42 is desugared to  42 None&'.=?@AHUVXk overloaded Another way to desugar numerals.A numeric literal 123 is desugared to  @123  Enabled with: E{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Numerals #-} -One can do type-level computations with this. overloadedDefault implementation of .Usage example:  instance (J n, ...) =>  n MyType where  =  @n  overloaded'TODO: currently there is no range checkNone"#,K overloadedModule name and variable name( overloaded Overloaded plugin.8To enable plugin put the following at top of the module: D{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Symbols #-} KAt least one option is required, multiple can given either using multiple  -fplugin-opt/ options, or by separating options with colon: M{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Symbols:Numerals #-} 8Options also take optional desugaring names, for example e{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Labels=Data.Generics.ProductFields.field #-}  to desugar OverloadedLabels directly into field from  generics-lens% (no need to import orphan instance!)Supported options Symbols desugars literal strings to   @symStrings works like built-in OverloadedStrings( (but you can use different method than  )Numerals desugars literal numbers to  @natNaturals desugars literal numbers to  nat (i.e. like  )Chars desugars literal characters to  c. Note:7 there isn't type-level alternative: we cannot promote Ds.Lists is not like built-in OverloadedLists!, but desugars explicit lists to  and If desugars if-expressions to  b t eLabels works like built-in OverloadedLabels (you should enable OverloadedLabels! so parser recognises the syntax)TypeNats and  TypeSymbols" desugar type-level literals into  and   respectively.Known limitationsDoesn't desugar inside patterns((None&'.=?@AHUVXk05 overloadedCAnother way to desugar overloaded string literals using this class.A string literal  "example" is desugared to 6 @"example"  Enabled with: D{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Symbols #-} 5656L7None-.HV4F= overloadedA way to overload type level Ms.A number type-literal 42 is desugared to > 42  Enabled with: E{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:TypeNats #-} =>=> Safe-.HV7A overloadedA way to overload type level Ns.A symbol type-literal  "example" is desugared to B "example"  Enabled with: H{-# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:TypeSymbols #-} ABABNone8 (56=>AB(56 =>ABO !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH IJKLMNOPQ R  STUVTUWXYZTU[X\]X^_X`abcTUdTUef'overloaded-0.1.1-7QOsN7648AzDzMvRlTOuZsOverloaded.Chars Overloaded.IfOverloaded.ListsOverloaded.NaturalsOverloaded.NumeralsOverloaded.PluginOverloaded.SymbolsOverloaded.TypeNatsOverloaded.TypeSymbolsData.MapMap fromSymbol Data.String fromString fromNumeral fromNatural fromCharsconsnilifteFromNatFromTypeSymbol OverloadedFromCharfromChar$fFromCharCharToBooltoBool$fToBoolEither $fToBoolMaybe $fToBoolBoolConsNil$fNilPOP$fNilNP$fNilVec$fNil[]$fConsNPPOPPOP $fConsfNPNP $fConsaVecVec$fConsa[]NonEmpty $fConsa[][] FromNatural$fFromNaturalInteger$fFromNaturalNatural FromNumeraldefaultFromNumeral$fFromNumeralnNat$fFromNumeralnInt$fFromNumeralnInteger$fFromNumeralnNatural$fFromNumeralnWord64$fFromNumeralnWord32$fFromNumeralnWord16$fFromNumeralnWord8$fFromNumeralnFin$fFinFromNumeralSS$fFinFromNumeralZSplugin $fEqOnOff $fShowOnOff $fEqVarName $fShowVarName $fEqNumNat $fShowNumNat $fEqStrSym $fShowStrSym$fEqV2$fShowV2 $fEqOptions $fShowOptions FromSymbol$fFromSymbolsText$fFromSymbolsText0$fFromSymbols[]$fFromSymbolsByteString$fFromSymbolsByteString0$fFromSymbolsDayFromNatC $fFromNatCNat$fFromNatCNat0FromTypeSymbolC$fFromTypeSymbolCSymbolghc-prim GHC.TypesCharBoolbase Data.EitherRightTrue GHC.MaybeJust GHC.NaturalNatural GHC.TypeNatsKnownNatVarName**NatSymbol