Sorry, hit "Send" too soon: >> data FigType = TR1 | TR2 | TR3 | TR4 | SQ | L1 | L2 | Z1 | Z2 | Z3 | Z4 | >> NoFigure >> deriving (Enum, Bounded) >> randomFigure :: IO FigType >> randomFigure = toEnum <$> randomRIO >> (fromEnum (minBound :: FigType), >> fromEnum (maxBound :: FigType)) -Yitz