@@ -25,12 +25,14 @@ module Universum.String.Conversion
2525
2626         --  * Show and read functions
2727       , readEither 
28+        , readMaybe 
2829       , show 
2930       ) where 
3031
3132import  Data.Bifunctor  (first )
3233import  Data.Either  (Either  )
3334import  Data.Function  (id , (.) )
35+ import  Data.Maybe  (Maybe  )
3436import  Data.String  (String  )
3537import  qualified  Data.Text.Internal  as  T 
3638import  qualified  Data.Text.Internal.Fusion.Common  as  TF 
@@ -47,7 +49,7 @@ import qualified Data.Text.Encoding as T
4749import  qualified  Data.Text.Encoding.Error  as  T 
4850import  qualified  Data.Text.Lazy  as  LT 
4951import  qualified  Data.Text.Lazy.Encoding  as  LT 
50- import  qualified  Text.Read  (readEither )
52+ import  qualified  Text.Read  (readEither ,  readMaybe )
5153
5254import  qualified  GHC.Show  as  Show  (Show   (show ))
5355
@@ -293,6 +295,15 @@ be safe to collapse.
293295readEither  ::  (ToString  a , Read   b ) =>  a  ->  Either   Text  b 
294296readEither =  first toText .  Text.Read. readEither .  toString
295297
298+ --  |  Polymorhpic version of 'Text.Read.readMaybe'. 
299+ -- 
300+ --  >>> readMaybe @Int @Text "123" 
301+ --  Just 123 
302+ --  >>> readMaybe @Int @Text "aa" 
303+ --  Nothing 
304+ readMaybe  ::  forall  b  a .  (ToString  a , Read   b ) =>  a  ->  Maybe   b 
305+ readMaybe =  Text.Read. readMaybe .  toString
306+ 
296307--  |  Generalized version of 'Prelude.show'. 
297308show  ::  forall  b  a  .  (Show. Show   a , IsString  b ) =>  a  ->  b 
298309show  x =  fromString (Show. show  x)
0 commit comments