OSM-0.4.0: Data/Geo/OSM/Accessor/Origin.hs
-- | Values with a @origin@ optional string accessor.
module Data.Geo.OSM.Accessor.Origin where
import Data.Geo.OSM.Accessor.Accessor
class Origin a where
origin :: a -> Maybe String
setOrigin :: Maybe String -> a -> a
setOrigin' :: String -> a -> a
setOrigin' = setOrigin . return
usingOrigin :: a -> (Maybe String -> Maybe String) -> a
usingOrigin = origin `using` setOrigin
usingOrigin' :: a -> (String -> String) -> a
usingOrigin' = (. fmap) . usingOrigin