module Data.HodaTime.Internal
(
secondsFromSeconds
,secondsFromMinutes
,secondsFromHours
,clamp
)
where
import Data.HodaTime.Constants (secondsPerHour, secondsPerMinute)
secondsFromSeconds :: (Integral a, Num b) => a -> b
secondsFromSeconds :: forall a b. (Integral a, Num b) => a -> b
secondsFromSeconds = a -> b
forall a b. (Integral a, Num b) => a -> b
fromIntegral
{-# INLINE secondsFromSeconds #-}
secondsFromMinutes :: (Integral a, Num b) => a -> b
secondsFromMinutes :: forall a b. (Integral a, Num b) => a -> b
secondsFromMinutes = a -> b
forall a b. (Integral a, Num b) => a -> b
fromIntegral (a -> b) -> (a -> a) -> a -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (a -> a -> a
forall a. Num a => a -> a -> a
*a
forall a. Num a => a
secondsPerMinute)
{-# INLINE secondsFromMinutes #-}
secondsFromHours :: (Integral a, Num b) => a -> b
secondsFromHours :: forall a b. (Integral a, Num b) => a -> b
secondsFromHours = a -> b
forall a b. (Integral a, Num b) => a -> b
fromIntegral (a -> b) -> (a -> a) -> a -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (a -> a -> a
forall a. Num a => a -> a -> a
*a
forall a. Num a => a
secondsPerHour)
{-# INLINE secondsFromHours #-}
clamp :: Ord a => a -> a -> a -> a
clamp :: forall a. Ord a => a -> a -> a -> a
clamp a
small a
big = a -> a -> a
forall a. Ord a => a -> a -> a
min a
big (a -> a) -> (a -> a) -> a -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> a -> a
forall a. Ord a => a -> a -> a
max a
small
{-# INLINE clamp #-}