{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
module Data.Geo.GPX.Accessor.Value where

import Data.Geo.GPX.Accessor.Accessor

class Value a b | a -> b where
  value :: a -> b
  setValue :: b -> a -> a

  usingValue :: (b -> b) -> a -> a
  usingValue = value `using` setValue