module Data.Connect.OrphanInstances where import Control.Monad (mzero) import Data.Aeson import qualified Data.Text as T import qualified Network.URI as NU instance FromJSON NU.URI where parseJSON :: Value -> Parser URI parseJSON (String Text uriString) = Parser URI -> (URI -> Parser URI) -> Maybe URI -> Parser URI forall b a. b -> (a -> b) -> Maybe a -> b maybe Parser URI forall (m :: * -> *) a. MonadPlus m => m a mzero URI -> Parser URI forall (m :: * -> *) a. Monad m => a -> m a return (String -> Maybe URI NU.parseURI (String -> Maybe URI) -> (Text -> String) -> Text -> Maybe URI forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> String T.unpack (Text -> Maybe URI) -> Text -> Maybe URI forall a b. (a -> b) -> a -> b $ Text uriString) parseJSON Value _ = Parser URI forall (m :: * -> *) a. MonadPlus m => m a mzero instance ToJSON NU.URI where toJSON :: URI -> Value toJSON = Text -> Value String (Text -> Value) -> (URI -> Text) -> URI -> Value forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Text T.pack (String -> Text) -> (URI -> String) -> URI -> Text forall b c a. (b -> c) -> (a -> b) -> a -> c . URI -> String forall a. Show a => a -> String show