Îõ³h* ‰ .3      !"#$%&'()*+,-./0120.1.0.4;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 3,: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 4. singletons-default Datakind   , promoting 5,: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-defaultional type with either a ault promoted value def, or  specific d 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 ..definite (optionally @'[ '[1,2],'[3]] Nothing) [[1,2],[3]])definite (optionally @"foo" (Just "bar"))"bar"singletons-defaultDeconstructs an  to a  d value.  maps to  @def, and  maps to its argument.singletons-defaultDeconstructs an  to an :  d value.  maps to ;, and  maps to < , inverting .     Safe-Inferred !=>?@ABCDÅ      !"#$%&'()*+,-./0123456789:;<=;>?8@A8BC8BD8BE8@F8@G8@HIJKLMNOPÑ1singletons-default-0.1.0.4-IC19tdPlPa22mqg4BzsNl9Data.Default.Singletonssingletons-defaultPaths_singletons_default'singletons-3.0.3-EtlXNNJENlBKw0ofmwG2hfData.SingletonsDemotedemote 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.IntegerIntegerGHC.BaseMonoid GHC.MaybeMaybeNothingJust Alternativeemptypureversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir