module Data.GPS.Coordinate.Seconds(
  Seconds
, seconds
) where

import Prelude(Double, Bool(..), Eq, Show, Ord(..), (&&))
import Data.Maybe(Maybe(..))
import Control.Lens(Prism', prism')

newtype Seconds =
  Seconds Double
  deriving (Eq, Show)

seconds ::
  Prism' Double Seconds
seconds =
  prism'
    (\(Seconds d) -> d)
    (\d -> case d >= 0 && d < 60 of
             True -> Just (Seconds d)
             False -> Nothing)