moreLits :: Int -> Maybe (Encoder (Int,Int))
moreLits x
  | x >= 0 = Just $ lift $ do
      n <- get
      put (n + x)
      return (n + 1, n + x)
  | otherwise = Nothing
moreLits :: Int -> Maybe (Encoder (Int,Int))
moreLits x
  | x >= 0 = Just $ lift $ do
      n <- get
      put (n + x)
      return (n + 1, n + x)
  | otherwise = Nothing
moreLits x
  | x >= 0 = Just $ lift $ do
      n <- get
      put (n + x)
      return (n + 1, n + x)
  | otherwise = Nothing