&      !"#$%None!"I A straightforward URI data typeTTODO: need to support usernames and passwords as part of the URI, such as postgres:/ username:password@localhost:5432 my_databaseFThe path section of the URI, divided into one element per subdirectoryEOptional, but Port allows one to specify a non-default port for a URI+FQDN is the complete hostname of the server <Protocol is a basic protocol string, such as "http" or "ftp"puriPath treats the path portion of the URI as a single string. This is more common and natural most of the time.BParse a URI from Text, returning either an error or a complete URIUTODO: Rebuild these functions for easy ByteString, Text, String parsing and renderingFParse a URI from a String, returning either an error or a complete URInRender a URI to a ByteString - I chose bytestrings because they are so frequently required in HTTP libraries.&'()*+ ,-!"#$% !"#$%  $!#"%&'()*+  ,-!"#$%.        !"#$%&'()*+,-(uri-parse-0.1.0.1-CeZiJC1PX2O29PZZdDqFUgLuminescentDreams.Data.URI'http-types-0.9.1-2ceQFN60HufCrAhURPOSnqNetwork.HTTP.Types.URI renderQueryURI PathParts _pathPartsPort_portFQDN_fqdnProtocol _protocoluriPathparseURI parseURI' renderURI $fDefaultURI $fEqProtocol$fShowProtocol$fIsStringProtocol$fEqFQDN $fShowFQDN$fIsStringFQDN$fEqPort $fShowPort $fNumPort $fEqPathParts$fShowPathParts$fMonoidPathParts$fEqURI $fShowURIuriFqdn uriPathPartsuriPort uriProtocoluriQueryParams _uriProtocol_uriFqdn_uriPort _uriPathParts_uriQueryParams pathParts uriParser