2 | module Network.URL.General
5 | import Data.String.Parser
6 | import Network.URL.Internal.StringParser
12 | data GeneralURL = MkGeneralURL String String
16 | Show GeneralURL where
17 | show (MkGeneralURL scheme specific) = "MkGeneralURL \"" ++ scheme ++ "\" \"" ++ specific ++ "\""
22 | (MkGeneralURL scheme specific) == (MkGeneralURL scheme1 specific1) = scheme == scheme1 && specific == specific1
26 | url : Parser GeneralURL
28 | scheme <- schemeParser
30 | content <- takeWhile1 (\_ => True)
32 | pure $
MkGeneralURL scheme content
38 | parse : String -> Maybe GeneralURL
39 | parse str = case parse url str of
40 | Right (j,_) => Just j
47 | stringify : GeneralURL -> String
48 | stringify (MkGeneralURL scheme specific) = scheme ++ ":" ++ specific