1 implementation module StdT
5 :: T = {m :: Int, s :: Int}
8 == a b = a.m == b.m && a.s == b.s
10 < a b = a.m < b.m || a.s < b.s
13 zero = {m=zero, s=zero}
15 + a b = fromInt (toInt a + toInt b)
17 - a b = fromInt (toInt a - toInt b)
19 instance toInt T where
20 toInt a = a.m*60 + a.s
21 instance fromInt T where
24 | otherwise = {m=a/60, s=a rem 60}
26 instance toString T where
27 toString {m=ms, s=0} = toString ms +++ ":00"
29 | ss < 10 = toString ms +++ ":0" +++ toString ss
30 | otherwise = toString ms +++ ":" +++ toString ss
32 instance fromString T where
34 | a.[size a - 3] == ':' = {m = toInt (a % (0, (size a) - 4)), s = toInt (a % ((size a) - 3, size a))}
38 Start = fromString "12:34"