implementation module StdT import StdEnv :: T = {m :: Int, s :: Int} instance == T where == a b = a.m == b.m && a.s == b.s instance < T where < a b = a.m < b.m || a.s == b.s && a.s < b.s instance zero T where zero = {m=zero, s=zero} instance + T where + a b = fromInt (toInt a + toInt b) instance - T where - a b = fromInt (toInt a - toInt b) instance toInt T where toInt a = a.m*60 + a.s instance fromInt T where fromInt a | a<0 = zero | otherwise = {m=a/60, s=a rem 60} instance toString T where toString {m=ms, s=0} = toString ms +++ ":00" toString {m=ms, s=ss} | ss < 10 = toString ms +++ ":0" +++ toString ss | otherwise = toString ms +++ ":" +++ toString ss instance fromString T where fromString a | a.[size a - 3] == ':' = {m = toInt (a % (0, (size a) - 4)), s = toInt (a % ((size a) - 2, size a))} | otherwise = zero