packages feed

OSM 0.4.1 → 0.5.0

raw patch · 10 files changed

+238/−188 lines, 10 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.Geo.OSM.Accessor.Id: id :: (Id a) => a -> String
+ Data.Geo.OSM.Accessor.Id: id' :: Id a => a -> String
- Data.Geo.OSM.Accessor.AccountCreated: accountCreated :: (AccountCreated a) => a -> String
+ Data.Geo.OSM.Accessor.AccountCreated: accountCreated :: AccountCreated a => a -> String
- Data.Geo.OSM.Accessor.AccountCreated: setAccountCreated :: (AccountCreated a) => String -> a -> a
+ Data.Geo.OSM.Accessor.AccountCreated: setAccountCreated :: AccountCreated a => String -> a -> a
- Data.Geo.OSM.Accessor.AccountCreated: usingAccountCreated :: (AccountCreated a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.AccountCreated: usingAccountCreated :: AccountCreated a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Ar: ar :: (Ar a) => a -> Area
+ Data.Geo.OSM.Accessor.Ar: ar :: Ar a => a -> Area
- Data.Geo.OSM.Accessor.Ar: setAr :: (Ar a) => Area -> a -> a
+ Data.Geo.OSM.Accessor.Ar: setAr :: Ar a => Area -> a -> a
- Data.Geo.OSM.Accessor.Ar: usingArea :: (Ar a) => (Area -> Area) -> a -> a
+ Data.Geo.OSM.Accessor.Ar: usingArea :: Ar a => (Area -> Area) -> a -> a
- Data.Geo.OSM.Accessor.BoundOrs: boundOrs :: (BoundOrs a) => a -> x -> (Bound -> x) -> (Bounds -> x) -> x
+ Data.Geo.OSM.Accessor.BoundOrs: boundOrs :: BoundOrs a => a -> x -> (Bound -> x) -> (Bounds -> x) -> x
- Data.Geo.OSM.Accessor.BoundOrs: setBound :: (BoundOrs a) => Bound -> a -> a
+ Data.Geo.OSM.Accessor.BoundOrs: setBound :: BoundOrs a => Bound -> a -> a
- Data.Geo.OSM.Accessor.BoundOrs: setBoundOrs :: (BoundOrs a) => Maybe (Either Bound Bounds) -> a -> a
+ Data.Geo.OSM.Accessor.BoundOrs: setBoundOrs :: BoundOrs a => Maybe (Either Bound Bounds) -> a -> a
- Data.Geo.OSM.Accessor.BoundOrs: setBounds :: (BoundOrs a) => Bounds -> a -> a
+ Data.Geo.OSM.Accessor.BoundOrs: setBounds :: BoundOrs a => Bounds -> a -> a
- Data.Geo.OSM.Accessor.BoundOrs: usingBoundOrs :: (BoundOrs a) => a -> (Maybe (Either Bound Bounds) -> Maybe (Either Bound Bounds)) -> a
+ Data.Geo.OSM.Accessor.BoundOrs: usingBoundOrs :: BoundOrs a => a -> (Maybe (Either Bound Bounds) -> Maybe (Either Bound Bounds)) -> a
- Data.Geo.OSM.Accessor.Box: box :: (Box a) => a -> String
+ Data.Geo.OSM.Accessor.Box: box :: Box a => a -> String
- Data.Geo.OSM.Accessor.Box: setBox :: (Box a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Box: setBox :: Box a => String -> a -> a
- Data.Geo.OSM.Accessor.Box: usingBox :: (Box a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Box: usingBox :: Box a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Changeset: changeset :: (Changeset a) => a -> Maybe String
+ Data.Geo.OSM.Accessor.Changeset: changeset :: Changeset a => a -> Maybe String
- Data.Geo.OSM.Accessor.Changeset: setChangeset :: (Changeset a) => Maybe String -> a -> a
+ Data.Geo.OSM.Accessor.Changeset: setChangeset :: Changeset a => Maybe String -> a -> a
- Data.Geo.OSM.Accessor.Changeset: setChangeset' :: (Changeset a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Changeset: setChangeset' :: Changeset a => String -> a -> a
- Data.Geo.OSM.Accessor.Changeset: usingChangeset :: (Changeset a) => (Maybe String -> Maybe String) -> a -> a
+ Data.Geo.OSM.Accessor.Changeset: usingChangeset :: Changeset a => (Maybe String -> Maybe String) -> a -> a
- Data.Geo.OSM.Accessor.Changeset: usingChangeset' :: (Changeset a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Changeset: usingChangeset' :: Changeset a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.DisplayName: displayName :: (DisplayName a) => a -> String
+ Data.Geo.OSM.Accessor.DisplayName: displayName :: DisplayName a => a -> String
- Data.Geo.OSM.Accessor.DisplayName: setDisplayName :: (DisplayName a) => String -> a -> a
+ Data.Geo.OSM.Accessor.DisplayName: setDisplayName :: DisplayName a => String -> a -> a
- Data.Geo.OSM.Accessor.DisplayName: usingDisplayName :: (DisplayName a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.DisplayName: usingDisplayName :: DisplayName a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Generator: generator :: (Generator a) => a -> Maybe String
+ Data.Geo.OSM.Accessor.Generator: generator :: Generator a => a -> Maybe String
- Data.Geo.OSM.Accessor.Generator: setGenerator :: (Generator a) => Maybe String -> a -> a
+ Data.Geo.OSM.Accessor.Generator: setGenerator :: Generator a => Maybe String -> a -> a
- Data.Geo.OSM.Accessor.Generator: setGenerator' :: (Generator a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Generator: setGenerator' :: Generator a => String -> a -> a
- Data.Geo.OSM.Accessor.Generator: usingGenerator :: (Generator a) => (Maybe String -> Maybe String) -> a -> a
+ Data.Geo.OSM.Accessor.Generator: usingGenerator :: Generator a => (Maybe String -> Maybe String) -> a -> a
- Data.Geo.OSM.Accessor.Generator: usingGenerator' :: (Generator a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Generator: usingGenerator' :: Generator a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Hm: hm :: (Hm a) => a -> Maybe Home
+ Data.Geo.OSM.Accessor.Hm: hm :: Hm a => a -> Maybe Home
- Data.Geo.OSM.Accessor.Hm: setHm :: (Hm a) => Maybe Home -> a -> a
+ Data.Geo.OSM.Accessor.Hm: setHm :: Hm a => Maybe Home -> a -> a
- Data.Geo.OSM.Accessor.Hm: setHm' :: (Hm a) => Home -> a -> a
+ Data.Geo.OSM.Accessor.Hm: setHm' :: Hm a => Home -> a -> a
- Data.Geo.OSM.Accessor.Hm: usingHm :: (Hm a) => (Maybe Home -> Maybe Home) -> a -> a
+ Data.Geo.OSM.Accessor.Hm: usingHm :: Hm a => (Maybe Home -> Maybe Home) -> a -> a
- Data.Geo.OSM.Accessor.Hm: usingHm' :: (Hm a) => (Home -> Home) -> a -> a
+ Data.Geo.OSM.Accessor.Hm: usingHm' :: Hm a => (Home -> Home) -> a -> a
- Data.Geo.OSM.Accessor.Id: setId :: (Id a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Id: setId :: Id a => String -> a -> a
- Data.Geo.OSM.Accessor.Id: updateId :: (Id a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Id: updateId :: Id a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.K: k :: (K a) => a -> String
+ Data.Geo.OSM.Accessor.K: k :: K a => a -> String
- Data.Geo.OSM.Accessor.K: setK :: (K a) => String -> a -> a
+ Data.Geo.OSM.Accessor.K: setK :: K a => String -> a -> a
- Data.Geo.OSM.Accessor.K: usingK :: (K a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.K: usingK :: K a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Lat: lat :: (Lat a) => a -> String
+ Data.Geo.OSM.Accessor.Lat: lat :: Lat a => a -> String
- Data.Geo.OSM.Accessor.Lat: setLat :: (Lat a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Lat: setLat :: Lat a => String -> a -> a
- Data.Geo.OSM.Accessor.Lat: usingLat :: (Lat a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Lat: usingLat :: Lat a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Lon: lon :: (Lon a) => a -> String
+ Data.Geo.OSM.Accessor.Lon: lon :: Lon a => a -> String
- Data.Geo.OSM.Accessor.Lon: setLon :: (Lon a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Lon: setLon :: Lon a => String -> a -> a
- Data.Geo.OSM.Accessor.Lon: usingLon :: (Lon a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Lon: usingLon :: Lon a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Maximum: maximum :: (Maximum a) => a -> String
+ Data.Geo.OSM.Accessor.Maximum: maximum :: Maximum a => a -> String
- Data.Geo.OSM.Accessor.Maximum: setMaximum :: (Maximum a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Maximum: setMaximum :: Maximum a => String -> a -> a
- Data.Geo.OSM.Accessor.Maximum: usingMaximum :: (Maximum a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Maximum: usingMaximum :: Maximum a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Maxlat: maxlat :: (Maxlat a) => a -> String
+ Data.Geo.OSM.Accessor.Maxlat: maxlat :: Maxlat a => a -> String
- Data.Geo.OSM.Accessor.Maxlat: setMaxlat :: (Maxlat a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Maxlat: setMaxlat :: Maxlat a => String -> a -> a
- Data.Geo.OSM.Accessor.Maxlat: usingMaxlat :: (Maxlat a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Maxlat: usingMaxlat :: Maxlat a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Maxlon: maxlon :: (Maxlon a) => a -> String
+ Data.Geo.OSM.Accessor.Maxlon: maxlon :: Maxlon a => a -> String
- Data.Geo.OSM.Accessor.Maxlon: setMaxlon :: (Maxlon a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Maxlon: setMaxlon :: Maxlon a => String -> a -> a
- Data.Geo.OSM.Accessor.Maxlon: usingMaxlon :: (Maxlon a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Maxlon: usingMaxlon :: Maxlon a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Members: members :: (Members a) => a -> [Member]
+ Data.Geo.OSM.Accessor.Members: members :: Members a => a -> [Member]
- Data.Geo.OSM.Accessor.Members: setMember :: (Members a) => Member -> a -> a
+ Data.Geo.OSM.Accessor.Members: setMember :: Members a => Member -> a -> a
- Data.Geo.OSM.Accessor.Members: setMembers :: (Members a) => [Member] -> a -> a
+ Data.Geo.OSM.Accessor.Members: setMembers :: Members a => [Member] -> a -> a
- Data.Geo.OSM.Accessor.Members: usingMember :: (Members a) => (Member -> Member) -> a -> a
+ Data.Geo.OSM.Accessor.Members: usingMember :: Members a => (Member -> Member) -> a -> a
- Data.Geo.OSM.Accessor.Members: usingMembers :: (Members a) => ([Member] -> [Member]) -> a -> a
+ Data.Geo.OSM.Accessor.Members: usingMembers :: Members a => ([Member] -> [Member]) -> a -> a
- Data.Geo.OSM.Accessor.Minimum: minimum :: (Minimum a) => a -> String
+ Data.Geo.OSM.Accessor.Minimum: minimum :: Minimum a => a -> String
- Data.Geo.OSM.Accessor.Minimum: setMinimum :: (Minimum a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Minimum: setMinimum :: Minimum a => String -> a -> a
- Data.Geo.OSM.Accessor.Minimum: usingMinimum :: (Minimum a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Minimum: usingMinimum :: Minimum a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Minlat: minlat :: (Minlat a) => a -> String
+ Data.Geo.OSM.Accessor.Minlat: minlat :: Minlat a => a -> String
- Data.Geo.OSM.Accessor.Minlat: setMinlat :: (Minlat a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Minlat: setMinlat :: Minlat a => String -> a -> a
- Data.Geo.OSM.Accessor.Minlat: usingMinlat :: (Minlat a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Minlat: usingMinlat :: Minlat a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Minlon: minlon :: (Minlon a) => a -> String
+ Data.Geo.OSM.Accessor.Minlon: minlon :: Minlon a => a -> String
- Data.Geo.OSM.Accessor.Minlon: setMinlon :: (Minlon a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Minlon: setMinlon :: Minlon a => String -> a -> a
- Data.Geo.OSM.Accessor.Minlon: usingMinlon :: (Minlon a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Minlon: usingMinlon :: Minlon a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Mtype: mtype :: (Mtype a) => a -> MemberType
+ Data.Geo.OSM.Accessor.Mtype: mtype :: Mtype a => a -> MemberType
- Data.Geo.OSM.Accessor.Mtype: setMtype :: (Mtype a) => MemberType -> a -> a
+ Data.Geo.OSM.Accessor.Mtype: setMtype :: Mtype a => MemberType -> a -> a
- Data.Geo.OSM.Accessor.Mtype: usingMtype :: (Mtype a) => (MemberType -> MemberType) -> a -> a
+ Data.Geo.OSM.Accessor.Mtype: usingMtype :: Mtype a => (MemberType -> MemberType) -> a -> a
- Data.Geo.OSM.Accessor.Name: name :: (Name a) => a -> String
+ Data.Geo.OSM.Accessor.Name: name :: Name a => a -> String
- Data.Geo.OSM.Accessor.Name: setName :: (Name a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Name: setName :: Name a => String -> a -> a
- Data.Geo.OSM.Accessor.Name: usingName :: (Name a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Name: usingName :: Name a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Nds: nds :: (Nds a) => a -> [Nd]
+ Data.Geo.OSM.Accessor.Nds: nds :: Nds a => a -> [Nd]
- Data.Geo.OSM.Accessor.Nds: setNd :: (Nds a) => Nd -> a -> a
+ Data.Geo.OSM.Accessor.Nds: setNd :: Nds a => Nd -> a -> a
- Data.Geo.OSM.Accessor.Nds: setNds :: (Nds a) => [Nd] -> a -> a
+ Data.Geo.OSM.Accessor.Nds: setNds :: Nds a => [Nd] -> a -> a
- Data.Geo.OSM.Accessor.Nds: usingNd :: (Nds a) => (Nd -> Nd) -> a -> a
+ Data.Geo.OSM.Accessor.Nds: usingNd :: Nds a => (Nd -> Nd) -> a -> a
- Data.Geo.OSM.Accessor.Nds: usingNds :: (Nds a) => ([Nd] -> [Nd]) -> a -> a
+ Data.Geo.OSM.Accessor.Nds: usingNds :: Nds a => ([Nd] -> [Nd]) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: nodes :: (NodeWayRelations a) => a -> [Node]
+ Data.Geo.OSM.Accessor.NodeWayRelations: nodes :: NodeWayRelations a => a -> [Node]
- Data.Geo.OSM.Accessor.NodeWayRelations: nwrs :: (NodeWayRelations a) => a -> [NodeWayRelation]
+ Data.Geo.OSM.Accessor.NodeWayRelations: nwrs :: NodeWayRelations a => a -> [NodeWayRelation]
- Data.Geo.OSM.Accessor.NodeWayRelations: relations :: (NodeWayRelations a) => a -> [Relation]
+ Data.Geo.OSM.Accessor.NodeWayRelations: relations :: NodeWayRelations a => a -> [Relation]
- Data.Geo.OSM.Accessor.NodeWayRelations: setNwr :: (NodeWayRelations a) => NodeWayRelation -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: setNwr :: NodeWayRelations a => NodeWayRelation -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: setNwrs :: (NodeWayRelations a) => [NodeWayRelation] -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: setNwrs :: NodeWayRelations a => [NodeWayRelation] -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: usingNode :: (NodeWayRelations a) => (Node -> Node) -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: usingNode :: NodeWayRelations a => (Node -> Node) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: usingNwr :: (NodeWayRelations a) => (NodeWayRelation -> NodeWayRelation) -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: usingNwr :: NodeWayRelations a => (NodeWayRelation -> NodeWayRelation) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: usingNwrs :: (NodeWayRelations a) => ([NodeWayRelation] -> [NodeWayRelation]) -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: usingNwrs :: NodeWayRelations a => ([NodeWayRelation] -> [NodeWayRelation]) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: usingRelation :: (NodeWayRelations a) => (Relation -> Relation) -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: usingRelation :: NodeWayRelations a => (Relation -> Relation) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: usingWay :: (NodeWayRelations a) => (Way -> Way) -> a -> a
+ Data.Geo.OSM.Accessor.NodeWayRelations: usingWay :: NodeWayRelations a => (Way -> Way) -> a -> a
- Data.Geo.OSM.Accessor.NodeWayRelations: ways :: (NodeWayRelations a) => a -> [Way]
+ Data.Geo.OSM.Accessor.NodeWayRelations: ways :: NodeWayRelations a => a -> [Way]
- Data.Geo.OSM.Accessor.Origin: origin :: (Origin a) => a -> Maybe String
+ Data.Geo.OSM.Accessor.Origin: origin :: Origin a => a -> Maybe String
- Data.Geo.OSM.Accessor.Origin: setOrigin :: (Origin a) => Maybe String -> a -> a
+ Data.Geo.OSM.Accessor.Origin: setOrigin :: Origin a => Maybe String -> a -> a
- Data.Geo.OSM.Accessor.Origin: setOrigin' :: (Origin a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Origin: setOrigin' :: Origin a => String -> a -> a
- Data.Geo.OSM.Accessor.Origin: usingOrigin :: (Origin a) => (Maybe String -> Maybe String) -> a -> a
+ Data.Geo.OSM.Accessor.Origin: usingOrigin :: Origin a => (Maybe String -> Maybe String) -> a -> a
- Data.Geo.OSM.Accessor.Origin: usingOrigin' :: (Origin a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Origin: usingOrigin' :: Origin a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Pending: pending :: (Pending a) => a -> Bool
+ Data.Geo.OSM.Accessor.Pending: pending :: Pending a => a -> Bool
- Data.Geo.OSM.Accessor.Pending: setPending :: (Pending a) => Bool -> a -> a
+ Data.Geo.OSM.Accessor.Pending: setPending :: Pending a => Bool -> a -> a
- Data.Geo.OSM.Accessor.Pending: usingPending :: (Pending a) => (Bool -> Bool) -> a -> a
+ Data.Geo.OSM.Accessor.Pending: usingPending :: Pending a => (Bool -> Bool) -> a -> a
- Data.Geo.OSM.Accessor.PerPage: perPage :: (PerPage a) => a -> String
+ Data.Geo.OSM.Accessor.PerPage: perPage :: PerPage a => a -> String
- Data.Geo.OSM.Accessor.PerPage: setPerPage :: (PerPage a) => String -> a -> a
+ Data.Geo.OSM.Accessor.PerPage: setPerPage :: PerPage a => String -> a -> a
- Data.Geo.OSM.Accessor.PerPage: usingPerPage :: (PerPage a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.PerPage: usingPerPage :: PerPage a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Public: public :: (Public a) => a -> Bool
+ Data.Geo.OSM.Accessor.Public: public :: Public a => a -> Bool
- Data.Geo.OSM.Accessor.Public: setPublic :: (Public a) => Bool -> a -> a
+ Data.Geo.OSM.Accessor.Public: setPublic :: Public a => Bool -> a -> a
- Data.Geo.OSM.Accessor.Public: usingPublic :: (Public a) => (Bool -> Bool) -> a -> a
+ Data.Geo.OSM.Accessor.Public: usingPublic :: Public a => (Bool -> Bool) -> a -> a
- Data.Geo.OSM.Accessor.Ref: ref :: (Ref a) => a -> String
+ Data.Geo.OSM.Accessor.Ref: ref :: Ref a => a -> String
- Data.Geo.OSM.Accessor.Ref: setRef :: (Ref a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Ref: setRef :: Ref a => String -> a -> a
- Data.Geo.OSM.Accessor.Ref: usingRef :: (Ref a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Ref: usingRef :: Ref a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Role: role :: (Role a) => a -> String
+ Data.Geo.OSM.Accessor.Role: role :: Role a => a -> String
- Data.Geo.OSM.Accessor.Role: setRole :: (Role a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Role: setRole :: Role a => String -> a -> a
- Data.Geo.OSM.Accessor.Role: usingRole :: (Role a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Role: usingRole :: Role a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Tags: hasTagValue :: (Tags a) => String -> String -> a -> Bool
+ Data.Geo.OSM.Accessor.Tags: hasTagValue :: Tags a => String -> String -> a -> Bool
- Data.Geo.OSM.Accessor.Tags: setTag :: (Tags a) => Tag -> a -> a
+ Data.Geo.OSM.Accessor.Tags: setTag :: Tags a => Tag -> a -> a
- Data.Geo.OSM.Accessor.Tags: setTags :: (Tags a) => [Tag] -> a -> a
+ Data.Geo.OSM.Accessor.Tags: setTags :: Tags a => [Tag] -> a -> a
- Data.Geo.OSM.Accessor.Tags: tagMap :: (Tags a) => a -> Map String String
+ Data.Geo.OSM.Accessor.Tags: tagMap :: Tags a => a -> Map String String
- Data.Geo.OSM.Accessor.Tags: tagValue :: (Tags a) => a -> String -> Maybe String
+ Data.Geo.OSM.Accessor.Tags: tagValue :: Tags a => a -> String -> Maybe String
- Data.Geo.OSM.Accessor.Tags: tags :: (Tags a) => a -> [Tag]
+ Data.Geo.OSM.Accessor.Tags: tags :: Tags a => a -> [Tag]
- Data.Geo.OSM.Accessor.Tags: usingTag :: (Tags a) => (Tag -> Tag) -> a -> a
+ Data.Geo.OSM.Accessor.Tags: usingTag :: Tags a => (Tag -> Tag) -> a -> a
- Data.Geo.OSM.Accessor.Tags: usingTag' :: (Tags a) => ((String, String) -> (String, String)) -> a -> a
+ Data.Geo.OSM.Accessor.Tags: usingTag' :: Tags a => ((String, String) -> (String, String)) -> a -> a
- Data.Geo.OSM.Accessor.Tags: usingTags :: (Tags a) => ([Tag] -> [Tag]) -> a -> a
+ Data.Geo.OSM.Accessor.Tags: usingTags :: Tags a => ([Tag] -> [Tag]) -> a -> a
- Data.Geo.OSM.Accessor.Timestamp: setTimestamp :: (Timestamp a b) => b -> a -> a
+ Data.Geo.OSM.Accessor.Timestamp: setTimestamp :: Timestamp a b => b -> a -> a
- Data.Geo.OSM.Accessor.Timestamp: timestamp :: (Timestamp a b) => a -> b
+ Data.Geo.OSM.Accessor.Timestamp: timestamp :: Timestamp a b => a -> b
- Data.Geo.OSM.Accessor.Timestamp: usingTimestamp :: (Timestamp a b) => (b -> b) -> a -> a
+ Data.Geo.OSM.Accessor.Timestamp: usingTimestamp :: Timestamp a b => (b -> b) -> a -> a
- Data.Geo.OSM.Accessor.Tpoints: setTpoints :: (Tpoints a) => Tracepoints -> a -> a
+ Data.Geo.OSM.Accessor.Tpoints: setTpoints :: Tpoints a => Tracepoints -> a -> a
- Data.Geo.OSM.Accessor.Tpoints: tpoints :: (Tpoints a) => a -> Tracepoints
+ Data.Geo.OSM.Accessor.Tpoints: tpoints :: Tpoints a => a -> Tracepoints
- Data.Geo.OSM.Accessor.Tpoints: usingTpoints :: (Tpoints a) => (Tracepoints -> Tracepoints) -> a -> a
+ Data.Geo.OSM.Accessor.Tpoints: usingTpoints :: Tpoints a => (Tracepoints -> Tracepoints) -> a -> a
- Data.Geo.OSM.Accessor.Uid: setUid :: (Uid a) => Maybe String -> a -> a
+ Data.Geo.OSM.Accessor.Uid: setUid :: Uid a => Maybe String -> a -> a
- Data.Geo.OSM.Accessor.Uid: setUid' :: (Uid a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Uid: setUid' :: Uid a => String -> a -> a
- Data.Geo.OSM.Accessor.Uid: uid :: (Uid a) => a -> Maybe String
+ Data.Geo.OSM.Accessor.Uid: uid :: Uid a => a -> Maybe String
- Data.Geo.OSM.Accessor.Uid: usingUid :: (Uid a) => (Maybe String -> Maybe String) -> a -> a
+ Data.Geo.OSM.Accessor.Uid: usingUid :: Uid a => (Maybe String -> Maybe String) -> a -> a
- Data.Geo.OSM.Accessor.Uid: usingUid' :: (Uid a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Uid: usingUid' :: Uid a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.User: setUser :: (User a b) => b -> a -> a
+ Data.Geo.OSM.Accessor.User: setUser :: User a b => b -> a -> a
- Data.Geo.OSM.Accessor.User: user :: (User a b) => a -> b
+ Data.Geo.OSM.Accessor.User: user :: User a b => a -> b
- Data.Geo.OSM.Accessor.User: usingUser :: (User a b) => (b -> b) -> a -> a
+ Data.Geo.OSM.Accessor.User: usingUser :: User a b => (b -> b) -> a -> a
- Data.Geo.OSM.Accessor.V: setV :: (V a) => String -> a -> a
+ Data.Geo.OSM.Accessor.V: setV :: V a => String -> a -> a
- Data.Geo.OSM.Accessor.V: usingV :: (V a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.V: usingV :: V a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.V: v :: (V a) => a -> String
+ Data.Geo.OSM.Accessor.V: v :: V a => a -> String
- Data.Geo.OSM.Accessor.Version: setVersion :: (Version a b) => b -> a -> a
+ Data.Geo.OSM.Accessor.Version: setVersion :: Version a b => b -> a -> a
- Data.Geo.OSM.Accessor.Version: usingVersion :: (Version a b) => (b -> b) -> a -> a
+ Data.Geo.OSM.Accessor.Version: usingVersion :: Version a b => (b -> b) -> a -> a
- Data.Geo.OSM.Accessor.Version: version :: (Version a b) => a -> b
+ Data.Geo.OSM.Accessor.Version: version :: Version a b => a -> b
- Data.Geo.OSM.Accessor.Visible: makeInvisible :: (Visible a) => a -> a
+ Data.Geo.OSM.Accessor.Visible: makeInvisible :: Visible a => a -> a
- Data.Geo.OSM.Accessor.Visible: makeVisible :: (Visible a) => a -> a
+ Data.Geo.OSM.Accessor.Visible: makeVisible :: Visible a => a -> a
- Data.Geo.OSM.Accessor.Visible: setVisible :: (Visible a) => Bool -> a -> a
+ Data.Geo.OSM.Accessor.Visible: setVisible :: Visible a => Bool -> a -> a
- Data.Geo.OSM.Accessor.Visible: usingVisible :: (Visible a) => (Bool -> Bool) -> a -> a
+ Data.Geo.OSM.Accessor.Visible: usingVisible :: Visible a => (Bool -> Bool) -> a -> a
- Data.Geo.OSM.Accessor.Visible: visible :: (Visible a) => a -> Bool
+ Data.Geo.OSM.Accessor.Visible: visible :: Visible a => a -> Bool
- Data.Geo.OSM.Accessor.Wnodes: setWnodes :: (Wnodes a) => Waynodes -> a -> a
+ Data.Geo.OSM.Accessor.Wnodes: setWnodes :: Wnodes a => Waynodes -> a -> a
- Data.Geo.OSM.Accessor.Wnodes: usingWnodes :: (Wnodes a) => (Waynodes -> Waynodes) -> a -> a
+ Data.Geo.OSM.Accessor.Wnodes: usingWnodes :: Wnodes a => (Waynodes -> Waynodes) -> a -> a
- Data.Geo.OSM.Accessor.Wnodes: wnodes :: (Wnodes a) => a -> Waynodes
+ Data.Geo.OSM.Accessor.Wnodes: wnodes :: Wnodes a => a -> Waynodes
- Data.Geo.OSM.Accessor.Zoom: setZoom :: (Zoom a) => String -> a -> a
+ Data.Geo.OSM.Accessor.Zoom: setZoom :: Zoom a => String -> a -> a
- Data.Geo.OSM.Accessor.Zoom: usingZoom :: (Zoom a) => (String -> String) -> a -> a
+ Data.Geo.OSM.Accessor.Zoom: usingZoom :: Zoom a => (String -> String) -> a -> a
- Data.Geo.OSM.Accessor.Zoom: zoom :: (Zoom a) => a -> String
+ Data.Geo.OSM.Accessor.Zoom: zoom :: Zoom a => a -> String
- Data.Geo.OSM.OSM: interactOSM :: FilePath -> (OSM -> OSM) -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactOSM :: (OSM -> OSM) -> FilePath -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactOSM' :: Attributes -> FilePath -> (OSM -> OSM) -> Attributes -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactOSM' :: (OSM -> OSM) -> Attributes -> FilePath -> Attributes -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactOSMIO :: FilePath -> (OSM -> IO OSM) -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactOSMIO :: (OSM -> IO OSM) -> FilePath -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactOSMIO' :: Attributes -> FilePath -> (OSM -> IO OSM) -> Attributes -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactOSMIO' :: (OSM -> IO OSM) -> Attributes -> FilePath -> Attributes -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactsOSM :: FilePath -> [OSM -> OSM] -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactsOSM :: Foldable t => t (OSM -> OSM) -> FilePath -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactsOSM' :: Attributes -> FilePath -> [OSM -> OSM] -> Attributes -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactsOSM' :: Foldable t => t (OSM -> OSM) -> Attributes -> FilePath -> Attributes -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactsOSMIO :: FilePath -> [OSM -> IO OSM] -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactsOSMIO :: Foldable t => t (OSM -> IO OSM) -> FilePath -> FilePath -> IO ()
- Data.Geo.OSM.OSM: interactsOSMIO' :: Attributes -> FilePath -> [OSM -> IO OSM] -> Attributes -> FilePath -> IO ()
+ Data.Geo.OSM.OSM: interactsOSMIO' :: Foldable t => t (OSM -> IO OSM) -> Attributes -> FilePath -> Attributes -> FilePath -> IO ()

Files

Data/Geo/OSM/Accessor/Id.hs view
@@ -5,8 +5,8 @@ import Prelude hiding (id)  class Id a where-  id :: a -> String+  id' :: a -> String   setId :: String -> a -> a    updateId :: (String -> String) -> a -> a-  updateId = id `using` setId+  updateId = id' `using` setId
Data/Geo/OSM/Accessor/NodeWayRelations.hs view
@@ -21,13 +21,13 @@   usingNwr = usingNwrs . map    usingNode :: (Node -> Node) -> a -> a-  usingNode f a = usingNwr (\p -> foldNodeWayRelation p (node' . f) way' relation') a+  usingNode f = usingNwr (\p -> foldNodeWayRelation p (node' . f) way' relation')    usingWay :: (Way -> Way) -> a -> a-  usingWay f a = usingNwr (\p -> foldNodeWayRelation p node' (way' . f) relation') a+  usingWay f = usingNwr (\p -> foldNodeWayRelation p node' (way' . f) relation')    usingRelation :: (Relation -> Relation) -> a -> a-  usingRelation f a = usingNwr (\p -> foldNodeWayRelation p node' way' (relation' . f)) a+  usingRelation f = usingNwr (\p -> foldNodeWayRelation p node' way' (relation' . f))  nodes :: (NodeWayRelations a) => a -> [Node] nodes k = nwrs k >>= \t -> foldNodeWayRelation t return (const []) (const [])
Data/Geo/OSM/Accessor/Tags.hs view
@@ -24,7 +24,7 @@   usingTag = usingTags . map    usingTag' :: ((String, String) -> (String, String)) -> a -> a-  usingTag' f a = usingTag (\t -> uncurry tag (f (k t, v t))) a+  usingTag' f = usingTag (\t -> uncurry tag (f (k t, v t)))  tagMap :: (Tags a) => a -> M.Map String String tagMap = M.fromList . map (k &&& v) . tags
Data/Geo/OSM/GpxFile.hs view
@@ -38,14 +38,14 @@ instance XmlPickler GpxFile where   xpickle = let b = xpWrapMaybe (\s -> case fmap toLower s of "true" -> Just True                                                               "false" -> Just False-                                                              _ -> Nothing, (fmap toLower) . show)-            in xpElem "gpx_file" (xpWrap (\(id', name', lat', lon', user', public', pending', timestamp') -> gpxFile id' name' lat' lon' user' public' pending' timestamp', undefined) (xp8Tuple (xpAttr "id" xpText) (xpAttr "name" xpText) (xpAttr "lat" xpText) (xpAttr "lon" xpText) (xpAttr "user" xpText) (xpDefault False (b (xpAttr "public" xpText))) (xpDefault False (b (xpAttr "pending" xpText))) (xpAttr "timestamp" xpText)))+                                                              _ -> Nothing, fmap toLower . show)+            in xpElem "gpx_file" (xpWrap (\(id'', name', lat', lon', user', public', pending', timestamp') -> gpxFile id'' name' lat' lon' user' public' pending' timestamp', \(GpxFile id'' name' lat' lon' user' public' pending' timestamp') -> (id'', name', lat', lon', user', public', pending', timestamp')) (xp8Tuple (xpAttr "id" xpText) (xpAttr "name" xpText) (xpAttr "lat" xpText) (xpAttr "lon" xpText) (xpAttr "user" xpText) (xpDefault False (b (xpAttr "public" xpText))) (xpDefault False (b (xpAttr "pending" xpText))) (xpAttr "timestamp" xpText)))  instance Show GpxFile where   show = showPickled []  instance Id GpxFile where-  id (GpxFile x _ _ _ _ _ _ _) = x+  id' (GpxFile x _ _ _ _ _ _ _) = x   setId a (GpxFile _ b c d e f g h) = gpxFile a b c d e f g h  instance Name GpxFile where
Data/Geo/OSM/NWRCommon.hs view
@@ -38,7 +38,7 @@   show = showPickled []  instance Id NWRCommon where-  id (NWRCommon x _ _ _ _ _) = x+  id' (NWRCommon x _ _ _ _ _) = x   setId a (NWRCommon _ b c d e f) = nwrCommon a b c d e f  instance Tags NWRCommon where
Data/Geo/OSM/Node.hs view
@@ -41,32 +41,32 @@   setLon b (Node a _ c) = Node a b c  instance Id Node where-  id (Node _ _ x) = id x+  id' (Node _ _ x) = id' x   setId c (Node a b cc) = Node a b (nwrCommon c (tags cc) (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Tags Node where   tags (Node _ _ x) = tags x-  setTags c (Node a b cc) = Node a b (nwrCommon (id cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))+  setTags c (Node a b cc) = Node a b (nwrCommon (id' cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Changeset Node where   changeset (Node _ _ x) = changeset x-  setChangeset c (Node a b cc) = Node a b (nwrCommon (id cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))+  setChangeset c (Node a b cc) = Node a b (nwrCommon (id' cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))  instance Visible Node where   visible (Node _ _ x) = visible x-  setVisible c (Node a b cc) = Node a b (nwrCommon (id cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))+  setVisible c (Node a b cc) = Node a b (nwrCommon (id' cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))  instance User Node (Maybe String) where   user (Node _ _ x) = user x-  setUser c (Node a b cc) = Node a b (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))+  setUser c (Node a b cc) = Node a b (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))  instance Uid Node where   uid (Node _ _ x) = uid x-  setUid c (Node a b cc) = Node a b (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))+  setUid c (Node a b cc) = Node a b (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))  instance Timestamp Node (Maybe String) where   timestamp (Node _ _ x) = timestamp x-  setTimestamp c (Node a b cc) = Node a b (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)+  setTimestamp c (Node a b cc) = Node a b (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)  -- | Constructs a node with a lat, lon, id, list of tags, changeset, visible, user&uid and timestamp. node :: String -- ^ The @lat@ attribute.
Data/Geo/OSM/OSM.hs view
@@ -16,10 +16,12 @@                     interactsOSM'                   ) where +import Prelude hiding (mapM, foldr) import Text.XML.HXT.Arrow import Text.XML.HXT.Extras-import Control.Monad-import Data.List+import Control.Monad hiding (mapM)+import Data.Foldable+import Data.Traversable import Data.Geo.OSM.OSMChildren import Data.Geo.OSM.Bound import Data.Geo.OSM.Bounds@@ -27,39 +29,51 @@ import Data.Geo.OSM.Accessor.Generator import Data.Geo.OSM.Accessor.BoundOrs import Data.Geo.OSM.Accessor.NodeWayRelations+import Data.Monoid  -- | The @osm@ element of a OSM file, which is the root element. data OSM = OSM String (Maybe String) (Maybe (Either Bound Bounds)) OSMChildren   deriving Eq  instance XmlPickler OSM where-  xpickle = xpElem "osm" (xpWrap (\(version', generator', bound', nwr') -> osm version' generator' bound' nwr', \(OSM version' generator' bound' nwr') -> (version', generator', bound', nwr'))-              (xp4Tuple (xpAttr "version" xpText)-                        (xpOption (xpAttr "generator" xpText))-                        (xpOption (xpAlt (either (const 0) (const 1)) [xpWrap (Left, \(Left b) -> b) xpickle, xpWrap (Right, \(Right b) -> b) xpickle]))-                        xpickle))+  xpickle =+    xpElem "osm" (xpWrap (\(version', generator', bound', nwr') -> osm version' generator' bound' nwr', \(OSM version' generator' bound' nwr') -> (version', generator', bound', nwr'))+      (xp4Tuple (xpAttr "version" xpText)+                (xpOption (xpAttr "generator" xpText))+                (xpOption (xpAlt (either (const 0) (const 1)) [xpWrap (Left, \(Left b) -> b) xpickle, xpWrap (Right, \(Right b) -> b) xpickle]))+                xpickle))  instance Show OSM where-  show = showPickled []+  show =+    showPickled []  instance Version OSM String where-  version (OSM x _ _ _) = x-  setVersion a (OSM _ b c d) = osm a b c d+  version (OSM x _ _ _) =+    x+  setVersion a (OSM _ b c d) =+    osm a b c d  instance Generator OSM where-  generator (OSM _ x _ _) = x-  setGenerator b (OSM a _  c d) = osm a b c d+  generator (OSM _ x _ _) =+    x+  setGenerator b (OSM a _  c d) =+    osm a b c d  instance BoundOrs OSM where-  boundOrs (OSM _ _ x _) n b bs = case x of Nothing -> n-                                            Just (Left b') -> b b'-                                            Just (Right b') -> bs b'-  setBoundOrs c (OSM a b _ d) = osm a b c d+  boundOrs (OSM _ _ x _) n b bs =+    case x+    of Nothing -> n+       Just (Left b') -> b b'+       Just (Right b') -> bs b'+  setBoundOrs c (OSM a b _ d) =+    osm a b c d  instance NodeWayRelations OSM where-  nwrs (OSM _ _ _ x) = let t = const []-                       in foldOSMChildren t t t t t id x-  setNwrs d (OSM a b c _) = osm a b c (osmNodeWayRelation d)+  nwrs (OSM _ _ _ x) =+    let t = const []+    in foldOSMChildren t t t t t id x+  setNwrs d (OSM a b c _) =+    osm a b c (osmNodeWayRelation d)  -- | Constructs a osm with a version, bound or bounds, and node attributes and way or relation elements. osm :: String -- ^ The @version@ attribute.@@ -70,81 +84,117 @@ osm = OSM  -- | Reads an OSM file into a list of @OSM@ values removing whitespace.-readOsmFile :: FilePath -> IO [OSM]-readOsmFile = runX . xunpickleDocument (xpickle :: PU OSM) [(a_remove_whitespace, v_1)]+readOsmFile ::+  FilePath+  -> IO [OSM]+readOsmFile =+  runX . xunpickleDocument (xpickle :: PU OSM) [(a_remove_whitespace, v_1)]  -- | Reads 0 or more OSM files into a list of @OSM@ values removing whitespace.-readOsmFiles :: [FilePath] -> IO [OSM]-readOsmFiles = fmap join . (mapM readOsmFile)+readOsmFiles ::+  [FilePath]+  -> IO [OSM]+readOsmFiles =+  fmap join . mapM readOsmFile  -- | Reads a OSM file, executes the given function on the XML, then writes the given file.-interactOSMIO' :: Attributes -- ^ The options for reading the OSM file.-                  -> FilePath -- ^ The OSM file to read.-                  -> (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.-                  -> Attributes -- ^ The options for writing the OSM file.-                  -> FilePath -- ^ The OSM file to write.-                  -> IO ()-interactOSMIO' froma from f toa to = runX (xunpickleDocument (xpickle :: PU OSM) froma from >>> arrIO f >>> xpickleDocument (xpickle :: PU OSM) toa to) >> return ()+interactOSMIO' ::+  (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.+  -> Attributes -- ^ The options for reading the OSM file.+  -> FilePath -- ^ The OSM file to read.+  -> Attributes -- ^ The options for writing the OSM file.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactOSMIO' f froma from toa to =+  runX (xunpickleDocument (xpickle :: PU OSM) froma from >>> arrIO f >>> xpickleDocument (xpickle :: PU OSM) toa to) >> return ()  -- | Reads a OSM file, executes the given functions on the XML, then writes the given file.-interactsOSMIO' :: Attributes -- ^ The options for reading the OSM file.-                   -> FilePath -- ^ The OSM file to read.-                   -> [OSM -> IO OSM] -- ^ The function to execute on the XML that is read.-                   -> Attributes -- ^ The options for writing the OSM file.-                   -> FilePath -- ^ The OSM file to write.-                   -> IO ()-interactsOSMIO' froma from = interactOSMIO' froma from . sumIO'+interactsOSMIO' ::+  Foldable t =>+  t (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.+  -> Attributes -- ^ The options for reading the OSM file.+  -> FilePath -- ^ The OSM file to read.+  -> Attributes -- ^ The options for writing the OSM file.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactsOSMIO' =+  interactOSMIO' . sumM  -- | Reads a OSM file removing whitespace, executes the given function on the XML, then writes the given file with indentation.-interactOSMIO :: FilePath -- ^ The OSM file to read.-                 -> (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.-                 -> FilePath -- ^ The OSM file to write.-                 -> IO ()-interactOSMIO from f = interactOSMIO' [(a_remove_whitespace, v_1)] from f [(a_indent, v_1)]+interactOSMIO ::+  (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.+  -> FilePath -- ^ The OSM file to read.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactOSMIO f from =+  interactOSMIO' f [(a_remove_whitespace, v_1)] from [(a_indent, v_1)]  -- | Reads a OSM file removing whitespace, executes the given functions on the XML, then writes the given file with indentation.-interactsOSMIO :: FilePath -- ^ The OSM file to read.-                  -> [OSM -> IO OSM] -- ^ The function to execute on the XML that is read.-                  -> FilePath -- ^ The OSM file to write.-                  -> IO ()-interactsOSMIO from = interactOSMIO from . sumIO'+interactsOSMIO ::+  Foldable t =>+  t (OSM -> IO OSM) -- ^ The function to execute on the XML that is read.+  -> FilePath -- ^ The OSM file to read.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactsOSMIO =+  interactOSMIO . sumM  -- | Reads a OSM file, executes the given function on the XML, then writes the given file.-interactOSM' :: Attributes -- ^ The options for reading the OSM file.-                -> FilePath -- ^ The OSM file to read.-                -> (OSM -> OSM) -- ^ The function to execute on the XML that is read.-                -> Attributes -- ^ The options for writing the OSM file.-                -> FilePath -- ^ The OSM file to write.-                -> IO ()-interactOSM' froma from f = interactOSMIO' froma from (return . f)+interactOSM' ::+  (OSM -> OSM) -- ^ The function to execute on the XML that is read.+  -> Attributes -- ^ The options for reading the OSM file.+  -> FilePath -- ^ The OSM file to read.+  -> Attributes -- ^ The options for writing the OSM file.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactOSM' f =+  interactOSMIO' (return . f)  -- | Reads a OSM file, executes the given functions on the XML, then writes the given file.-interactsOSM' :: Attributes -- ^ The options for reading the OSM file.-                 -> FilePath -- ^ The OSM file to read.-                 -> [OSM -> OSM] -- ^ The functions to execute on the XML that is read.-                 -> Attributes -- ^ The options for writing the OSM file.-                 -> FilePath -- ^ The OSM file to write.-                 -> IO ()-interactsOSM' froma from = interactOSM' froma from . sum'+interactsOSM' ::+  Foldable t =>+  t (OSM -> OSM) -- ^ The functions to execute on the XML that is read.+  -> Attributes -- ^ The options for reading the OSM file.+  -> FilePath -- ^ The OSM file to read.+  -> Attributes -- ^ The options for writing the OSM file.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactsOSM' =+  interactOSM' . sum'  -- | Reads a OSM file removing whitespace, executes the given function on the XML, then writes the given file with indentation.-interactOSM :: FilePath -- ^ The OSM file to read.-               -> (OSM -> OSM) -- ^ The function to execute on the XML that is read.-               -> FilePath -- ^ The OSM file to write.-               -> IO ()-interactOSM from f = interactOSMIO from (return . f)+interactOSM ::+  (OSM -> OSM) -- ^ The function to execute on the XML that is read.+  -> FilePath -- ^ The OSM file to read.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactOSM f =+  interactOSMIO (return . f)  -- | Reads a OSM file removing whitespace, executes the given functions on the XML, then writes the given file with indentation.-interactsOSM :: FilePath -- ^ The OSM file to read.-                -> [OSM -> OSM] -- ^ The function to execute on the XML that is read.-                -> FilePath -- ^ The OSM file to write.-                -> IO ()-interactsOSM from = interactOSM from . sum'+interactsOSM ::+  Foldable t =>+  t (OSM -> OSM) -- ^ The function to execute on the XML that is read.+  -> FilePath -- ^ The OSM file to read.+  -> FilePath -- ^ The OSM file to write.+  -> IO ()+interactsOSM =+  interactOSM . sum'  -- not exported -sum' :: [a -> a] -> a -> a-sum' = foldl' (.) id+sum' ::+  Foldable t =>+  t (a -> a)+  -> a+  -> a+sum' =+  appEndo . foldMap Endo -sumIO' :: (Monad m) => [a -> m a] -> a -> m a-sumIO' x = foldl' (>=>) return x+sumM ::+  (Monad m, Foldable t) =>+  t (a -> m a)+  -> a+  -> m a+sumM =+  foldr (>=>) return
Data/Geo/OSM/Relation.hs view
@@ -37,32 +37,32 @@   setMembers a (Relation _ c) = Relation a c  instance Id Relation where-  id (Relation _ x) = id x+  id' (Relation _ x) = id' x   setId c (Relation a cc) = Relation a (nwrCommon c (tags cc) (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Tags Relation where   tags (Relation _ x) = tags x-  setTags c (Relation a cc) = Relation a (nwrCommon (id cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))+  setTags c (Relation a cc) = Relation a (nwrCommon (id' cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Changeset Relation where   changeset (Relation _ x) = changeset x-  setChangeset c (Relation a cc) = Relation a (nwrCommon (id cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))+  setChangeset c (Relation a cc) = Relation a (nwrCommon (id' cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))  instance Visible Relation where   visible (Relation _ x) = visible x-  setVisible c (Relation a cc) = Relation a (nwrCommon (id cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))+  setVisible c (Relation a cc) = Relation a (nwrCommon (id' cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))  instance User Relation (Maybe String) where   user (Relation _ x) = user x-  setUser c (Relation a cc) = Relation a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))+  setUser c (Relation a cc) = Relation a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))  instance Uid Relation where   uid (Relation _ x) = uid x-  setUid c (Relation a cc) = Relation a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))+  setUid c (Relation a cc) = Relation a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))  instance Timestamp Relation (Maybe String) where   timestamp (Relation _ x) = timestamp x-  setTimestamp c (Relation a cc) = Relation a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)+  setTimestamp c (Relation a cc) = Relation a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)  -- | Constructs a relation with a list of members, id, list of tags, changeset, visible, user&uid and timestamp. relation :: [Member] -- ^ The list of members (@member@ elements).
Data/Geo/OSM/Way.hs view
@@ -37,32 +37,32 @@   setNds a (Way _ c) = Way a c  instance Id Way where-  id (Way _ x) = id x+  id' (Way _ x) = id' x   setId c (Way a cc) = Way a (nwrCommon c (tags cc) (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Tags Way where   tags (Way _ x) = tags x-  setTags c (Way a cc) = Way a (nwrCommon (id cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))+  setTags c (Way a cc) = Way a (nwrCommon (id' cc) c (changeset cc) (visible cc) (user cc, uid cc) (timestamp cc))  instance Changeset Way where   changeset (Way _ x) = changeset x-  setChangeset c (Way a cc) = Way a (nwrCommon (id cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))+  setChangeset c (Way a cc) = Way a (nwrCommon (id' cc) (tags cc) c (visible cc) (user cc, uid cc) (timestamp cc))  instance Visible Way where   visible (Way _ x) = visible x-  setVisible c (Way a cc) = Way a (nwrCommon (id cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))+  setVisible c (Way a cc) = Way a (nwrCommon (id' cc) (tags cc) (changeset cc) c (user cc, uid cc) (timestamp cc))  instance User Way (Maybe String) where   user (Way _ x) = user x-  setUser c (Way a cc) = Way a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))+  setUser c (Way a cc) = Way a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (c, uid cc) (timestamp cc))  instance Uid Way where   uid (Way _ x) = uid x-  setUid c (Way a cc) = Way a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))+  setUid c (Way a cc) = Way a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, c) (timestamp cc))  instance Timestamp Way (Maybe String) where   timestamp (Way _ x) = timestamp x-  setTimestamp c (Way a cc) = Way a (nwrCommon (id cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)+  setTimestamp c (Way a cc) = Way a (nwrCommon (id' cc) (tags cc) (changeset cc) (visible cc) (user cc, uid cc) c)  -- | Constructs a way with a list of nds, id, list of tags, changeset, visible, user&uid and timestamp. way :: [Nd] -- ^ The list of nds (@nd@ elements).
OSM.cabal view
@@ -1,89 +1,89 @@-Name:                OSM-Version:             0.4.1-License:             BSD3-License-File:        LICENSE-Synopsis:            Parse OpenStreetMap files-Description:         Parse OpenStreetMap http:\/\/osm.org/ files using HXT into data structures.-                     The Data.Geo.OSM module is the core module that exports all others.-Homepage:            http://code.google.com/p/geo-osm/-Category:            Utils-Author:              Tony Morris-Maintainer:          code@tmorris.net-Copyright:           2009 Tony Morris-build-type:          Simple-cabal-version:       >= 1.2+Name:                 OSM+Version:              0.5.0+License:              BSD3+License-File:         LICENSE+Synopsis:             Parse OpenStreetMap files+Description:          Parse OpenStreetMap http:\/\/osm.org/ files using HXT into data structures.+                      The Data.Geo.OSM module is the core module that exports all others.+Homepage:             http://code.google.com/p/geo-osm/+Category:             Utils+Author:               Tony Morris+Maintainer:           ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ+Copyright:            2009-2010 Tony Morris+build-type:           Simple+cabal-version:        >= 1.2  Flag small_base-  Description:     Choose the new, split-up base package.+  Description:        Choose the new, split-up base package.  Library   if flag(small_base)-    Build-Depends: base < 4 && >= 3, hxt, hxt-extras, containers+    Build-Depends:    base < 5 && >= 3, hxt, hxt-extras, containers   else-    Build-Depends: base < 3, hxt, hxt-extras, containers+    Build-Depends:    base < 5 && >= 3, hxt, hxt-extras, containers -  GHC-Options:    -Wall-  Exposed-Modules: Data.Geo.OSM-                   Data.Geo.OSM.Api-                   Data.Geo.OSM.Area-                   Data.Geo.OSM.Bound-                   Data.Geo.OSM.Bounds-                   Data.Geo.OSM.ChangesetE-                   Data.Geo.OSM.GpxFile-                   Data.Geo.OSM.Home-                   Data.Geo.OSM.Nd-                   Data.Geo.OSM.Node-                   Data.Geo.OSM.NodeWayRelation-                   Data.Geo.OSM.NWRCommon-                   Data.Geo.OSM.MemberType-                   Data.Geo.OSM.Member-                   Data.Geo.OSM.OSM-                   Data.Geo.OSM.OSMChildren-                   Data.Geo.OSM.Preferences-                   Data.Geo.OSM.Relation-                   Data.Geo.OSM.Tag-                   Data.Geo.OSM.Tracepoints-                   Data.Geo.OSM.UserE-                   Data.Geo.OSM.VersionE-                   Data.Geo.OSM.Way-                   Data.Geo.OSM.Waynodes-                   Data.Geo.OSM.Accessor.Accessor-                   Data.Geo.OSM.Accessor.AccountCreated-                   Data.Geo.OSM.Accessor.Ar-                   Data.Geo.OSM.Accessor.BoundOrs-                   Data.Geo.OSM.Accessor.Box-                   Data.Geo.OSM.Accessor.Changeset-                   Data.Geo.OSM.Accessor.DisplayName-                   Data.Geo.OSM.Accessor.Generator-                   Data.Geo.OSM.Accessor.Hm-                   Data.Geo.OSM.Accessor.Id-                   Data.Geo.OSM.Accessor.K-                   Data.Geo.OSM.Accessor.Lat-                   Data.Geo.OSM.Accessor.Lon-                   Data.Geo.OSM.Accessor.Members-                   Data.Geo.OSM.Accessor.Maximum-                   Data.Geo.OSM.Accessor.Maxlat-                   Data.Geo.OSM.Accessor.Maxlon-                   Data.Geo.OSM.Accessor.Minimum-                   Data.Geo.OSM.Accessor.Minlat-                   Data.Geo.OSM.Accessor.Minlon-                   Data.Geo.OSM.Accessor.Mtype-                   Data.Geo.OSM.Accessor.Name-                   Data.Geo.OSM.Accessor.Nds-                   Data.Geo.OSM.Accessor.NodeWayRelations-                   Data.Geo.OSM.Accessor.Origin-                   Data.Geo.OSM.Accessor.Pending-                   Data.Geo.OSM.Accessor.PerPage-                   Data.Geo.OSM.Accessor.Public-                   Data.Geo.OSM.Accessor.Ref-                   Data.Geo.OSM.Accessor.Role-                   Data.Geo.OSM.Accessor.Tags-                   Data.Geo.OSM.Accessor.Timestamp-                   Data.Geo.OSM.Accessor.Tpoints-                   Data.Geo.OSM.Accessor.User-                   Data.Geo.OSM.Accessor.Uid-                   Data.Geo.OSM.Accessor.V-                   Data.Geo.OSM.Accessor.Version-                   Data.Geo.OSM.Accessor.Visible-                   Data.Geo.OSM.Accessor.Wnodes-                   Data.Geo.OSM.Accessor.Zoom+  GHC-Options:        -Wall+  Exposed-Modules:    Data.Geo.OSM+                      Data.Geo.OSM.Api+                      Data.Geo.OSM.Area+                      Data.Geo.OSM.Bound+                      Data.Geo.OSM.Bounds+                      Data.Geo.OSM.ChangesetE+                      Data.Geo.OSM.GpxFile+                      Data.Geo.OSM.Home+                      Data.Geo.OSM.Nd+                      Data.Geo.OSM.Node+                      Data.Geo.OSM.NodeWayRelation+                      Data.Geo.OSM.NWRCommon+                      Data.Geo.OSM.MemberType+                      Data.Geo.OSM.Member+                      Data.Geo.OSM.OSM+                      Data.Geo.OSM.OSMChildren+                      Data.Geo.OSM.Preferences+                      Data.Geo.OSM.Relation+                      Data.Geo.OSM.Tag+                      Data.Geo.OSM.Tracepoints+                      Data.Geo.OSM.UserE+                      Data.Geo.OSM.VersionE+                      Data.Geo.OSM.Way+                      Data.Geo.OSM.Waynodes+                      Data.Geo.OSM.Accessor.Accessor+                      Data.Geo.OSM.Accessor.AccountCreated+                      Data.Geo.OSM.Accessor.Ar+                      Data.Geo.OSM.Accessor.BoundOrs+                      Data.Geo.OSM.Accessor.Box+                      Data.Geo.OSM.Accessor.Changeset+                      Data.Geo.OSM.Accessor.DisplayName+                      Data.Geo.OSM.Accessor.Generator+                      Data.Geo.OSM.Accessor.Hm+                      Data.Geo.OSM.Accessor.Id+                      Data.Geo.OSM.Accessor.K+                      Data.Geo.OSM.Accessor.Lat+                      Data.Geo.OSM.Accessor.Lon+                      Data.Geo.OSM.Accessor.Members+                      Data.Geo.OSM.Accessor.Maximum+                      Data.Geo.OSM.Accessor.Maxlat+                      Data.Geo.OSM.Accessor.Maxlon+                      Data.Geo.OSM.Accessor.Minimum+                      Data.Geo.OSM.Accessor.Minlat+                      Data.Geo.OSM.Accessor.Minlon+                      Data.Geo.OSM.Accessor.Mtype+                      Data.Geo.OSM.Accessor.Name+                      Data.Geo.OSM.Accessor.Nds+                      Data.Geo.OSM.Accessor.NodeWayRelations+                      Data.Geo.OSM.Accessor.Origin+                      Data.Geo.OSM.Accessor.Pending+                      Data.Geo.OSM.Accessor.PerPage+                      Data.Geo.OSM.Accessor.Public+                      Data.Geo.OSM.Accessor.Ref+                      Data.Geo.OSM.Accessor.Role+                      Data.Geo.OSM.Accessor.Tags+                      Data.Geo.OSM.Accessor.Timestamp+                      Data.Geo.OSM.Accessor.Tpoints+                      Data.Geo.OSM.Accessor.User+                      Data.Geo.OSM.Accessor.Uid+                      Data.Geo.OSM.Accessor.V+                      Data.Geo.OSM.Accessor.Version+                      Data.Geo.OSM.Accessor.Visible+                      Data.Geo.OSM.Accessor.Wnodes+                      Data.Geo.OSM.Accessor.Zoom