src/Tools/Haskell/Haskell.thy
changeset 75066 fe81645c0b40
parent 75015 eaf22c0e9ddf
child 75068 99fcf3fda2fc
equal deleted inserted replaced
75065:7cadf5a7ed5b 75066:fe81645c0b40
  3332 import Isabelle.Library
  3332 import Isabelle.Library
  3333 
  3333 
  3334 
  3334 
  3335 newtype Time = Time Int
  3335 newtype Time = Time Int
  3336 
  3336 
  3337 instance Eq Time where Time ms1 == Time ms2 = ms1 == ms2
  3337 instance Eq Time where Time a == Time b = a == b
  3338 instance Ord Time where compare (Time ms1) (Time ms2) = compare ms1 ms2
  3338 instance Ord Time where compare (Time a) (Time b) = compare a b
       
  3339 instance Num Time where
       
  3340   fromInteger = Time . fromInteger
       
  3341   Time a + Time b = Time (a + b)
       
  3342   Time a - Time b = Time (a - b)
       
  3343   Time a * Time b = Time (a * b)
       
  3344   abs (Time a) = Time (abs a)
       
  3345   signum (Time a) = Time (signum a)
  3339 
  3346 
  3340 seconds :: Double -> Time
  3347 seconds :: Double -> Time
  3341 seconds s = Time (round (s * 1000.0))
  3348 seconds s = Time (round (s * 1000.0))
  3342 
  3349 
  3343 minutes :: Double -> Time
  3350 minutes :: Double -> Time