module Data.GPS.Coordinate.Minutes(
  Minutes
, minutes
) where

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

newtype Minutes =
  Minutes Int
  deriving (Eq, Show)

minutes ::
  Prism' Int Minutes
minutes =
  prism'
    (\(Minutes i) -> i)
    (\i -> case i >= 0 && i < 60 of
             True -> Just (Minutes i)
             False -> Nothing)