module Data.Time.Util where import Control.Applicative import Data.Function import Data.Monoid (mempty) import Data.Monoid.Textual hiding (foldr, map) import Data.Time import Data.Time.Format (ParseTime, defaultTimeLocale) toString' :: (TextualMonoid t) => t -> String toString' :: forall t. TextualMonoid t => t -> String toString' = forall t. TextualMonoid t => (t -> String) -> t -> String toString (forall b a. b -> (a -> b) -> Maybe a -> b maybe String "?" (forall a. a -> [a] -> [a] :[]) forall b c a. (b -> c) -> (a -> b) -> a -> c . forall t. TextualMonoid t => t -> Maybe Char characterPrefix) parseTimeUsing :: (TextualMonoid t, TextualMonoid t', ParseTime time) => [t] -> t' -> Maybe time parseTimeUsing :: forall t t' time. (TextualMonoid t, TextualMonoid t', ParseTime time) => [t] -> t' -> Maybe time parseTimeUsing [t] formats t' t = forall (t :: * -> *) a b. Foldable t => (a -> b -> b) -> b -> t a -> b foldr forall (f :: * -> *) a. Alternative f => f a -> f a -> f a (<|>) forall a. Maybe a Nothing forall a b. (a -> b) -> a -> b $ forall a b. (a -> b) -> [a] -> [b] map forall {m :: * -> *} {t} {t}. (MonadFail m, ParseTime t, TextualMonoid t) => t -> m t parse [t] formats where parse :: t -> m t parse t format = forall (m :: * -> *) t. (MonadFail m, ParseTime t) => Bool -> TimeLocale -> String -> String -> m t parseTimeM Bool True TimeLocale defaultTimeLocale (forall t. TextualMonoid t => t -> String toString' t format) (forall t. TextualMonoid t => t -> String toString' t' t)