module Imp.Extra.ReadP where import qualified Data.List as List import qualified Text.ParserCombinators.ReadP as ReadP run :: ReadP.ReadP a -> String -> Maybe a run :: forall a. ReadP a -> String -> Maybe a run ReadP a x = ((a, String) -> a) -> Maybe (a, String) -> Maybe a forall a b. (a -> b) -> Maybe a -> Maybe b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (a, String) -> a forall a b. (a, b) -> a fst (Maybe (a, String) -> Maybe a) -> (String -> Maybe (a, String)) -> String -> Maybe a forall b c a. (b -> c) -> (a -> b) -> a -> c . ((a, String) -> Bool) -> [(a, String)] -> Maybe (a, String) forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Maybe a List.find (String -> Bool forall a. [a] -> Bool forall (t :: * -> *) a. Foldable t => t a -> Bool null (String -> Bool) -> ((a, String) -> String) -> (a, String) -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . (a, String) -> String forall a b. (a, b) -> b snd) ([(a, String)] -> Maybe (a, String)) -> (String -> [(a, String)]) -> String -> Maybe (a, String) forall b c a. (b -> c) -> (a -> b) -> a -> c . ReadP a -> String -> [(a, String)] forall a. ReadP a -> ReadS a ReadP.readP_to_S ReadP a x