
26 Apr
2011
26 Apr
'11
5:44 a.m.
On 26/04/11 10:19, Heka Treep wrote:
Hi, the c-libraries use BaudRate as integers, so how about to add Enum instance for BaudRate? It allow users to use fromEnum, toEnum methods.
Like this:
module System.Posix.Terminal ( ...
data BaudRate = B0 ... | B115200 deriving ( Eq, Ord )
instance Enum BaudRate where fromEnum b = case b of B0 -> 0 B50 -> 50 B75 -> 75 [...] toEnum i = case i of 0 -> B0 50 -> B50 75 -> B75 [...]
This way, the default implementations of - succ, pred - enumFrom, enumFromTo, enumFromThen, enumFromThenTo will fail, because, e.g. succ B0 ~> toEnum (0 + 1) ~> error ... Do you want succ B0 to be B50? Does [B0,B75..] make sense? //Stephan