- 1 -> deserializeInt bytes $ \ix -> k (AlgConstr ix)
- 2 -> deserializeInteger bytes $ \i -> k (IntConstr i)
- 3 -> deserializeDouble bytes $ \d -> k (FloatConstr d)
- 4 -> deserializeString bytes $ \s -> k (StringConstr s)
+ 1 -> deserializeInt bytes $ \ix -> k (AlgConstr ix)
+ 2 -> deserializeInteger bytes $ \i -> k (IntConstr i)
+ 3 -> deserializeRational bytes $ \r -> k (FloatConstr r)
+#if __GLASGOW_HASKELL__ >= 611
+ 4 -> deserializeChar bytes $ \c -> k (CharConstr c)
+#else
+ 4 -> deserializeString bytes $ \s -> k (StringConstr s)
+#endif