Îõ³h*  ¸2      !"#$%&'()*+,-./010.1.0.0;Provides singleton-based default values and optional types.(c) 2024, Eitan ChatavMITeitan.chatav@gmail.com experimentalnon-portable (GHC extensions) Safe-Inferred)*/016ÂÃÄÍØÚÛÝäð ^ singletons-default!Singleton representation for the  kind. singletons-default Datakind  , promoting 2,:kind! Demote Q Demote Q :: *= Ratio Integerwith ! for constructing rational types.demote @(Pos 7 :% 11)7 % 11demote @(Neg 4 :% 2)(-2) % 1singletons-default!Singleton representation for the   kind. singletons-defaultType family for negating a 3. singletons-default Datakind   , promoting 4,:kind! Demote Z Demote Z :: * = Integerwith  1 for constructing nonnegative integer types, and , for constructing nonpositive integer types.demote @(Pos 90210)90210demote @(Neg 5)-5demote @(Neg 0)0demote @(Pos 0)0 singletons-defaultConstraint required to  @def. singletons-default ional type with either a ault promoted value def, or  specific 5d value.  is a 6 which yields the leftmost .mempty :: Opt "xyz"Def"Def <> "abc" <> "qrs" :: Opt "xyz" Some "abc" You can use  " as an optional function argument.Älet greet (name :: Opt "Anon") = "Welcome, " <> definite name <> "." greet "Sarah""Welcome, Sarah." greet Def"Welcome, Anon."Or, you can use  * as an optional field in your record type.:{data Person = Person { name :: Text , age :: Natural , alive :: Opt (True :: Bool) }:},let isAlive person = definite (alive person)6let jim = Person {name = "Jim", age = 40, alive = Def} isAlive jimTruesingletons-defaultConstructs an   from a 7. 8 maps to , and 9 maps to .singletons-defaultDeconstructs an   to a 5 d value.  maps to  @def, and  maps to its argument.singletons-defaultDeconstructs an   to an : 5 d value.  maps to ;, and  maps to < , inverting .       Safe-Inferred «=>?@ABCDÅ      !"#$%&'()*+,-./0123456789:;<:=>?7@A7BC7BD7BE7@F7@G7@HIJKLMNOPÑ1singletons-default-0.1.0.0-87jwSBxvr8t4k25QBBUal6Data.Default.Singletonssingletons-defaultPaths_singletons_default'singletons-3.0.3-EtlXNNJENlBKw0ofmwG2hfData.Singletonsdemote SRationalQ:%SIntegerSPos SNegOneMinusNegZPos NegOneMinusSingDefOptDefSome optionallydefiniteperhaps $fIsListOpt $fIsStringOpt$fFractionalOpt$fNumOpt $fDefaultOpt $fMonoidOpt$fSemigroupOpt$fNumZ$fEnumZ $fIntegralZ$fRealZ$fSingIZNegOneMinus $fSingIZPos $fSingKindZ$fNumQ $fFractionalQ$fRealQ $fSingIQ:% $fSingKindQ$fEqQ$fOrdQ$fShowQ$fReadQ$fEqZ$fOrdZ$fReadZ$fShowZ$fOrdOpt$fEqOpt $fReadOpt $fShowOptbaseGHC.RealRational ghc-bignumGHC.Num.NaturalNaturalGHC.Num.IntegerIntegerDemoteGHC.BaseMonoid GHC.MaybeMaybeNothingJust Alternativeemptypureversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir