bayes-stack-0.2.0.1: BayesStack/TupleEnum.hs
module BayesStack.TupleEnum where
-- This is probably a bad idea
-- Perhaps some TH magic to automatically derive this would make it more tolerable
instance (Enum a, Enum b) => Enum (a,b) where
fromEnum (a,b) = 2^32 * fromEnum a + fromEnum b
toEnum n = let (na, nb) = n `quotRem` (2^32)
in (toEnum na, toEnum nb)