License  BSD3 

Stability  experimental 
Portability  typefamilies, generalized newtype deriving 
Safe Haskell  None 
Language  Haskell98 
This module provides a VarInt
wrapper with a Serial
instance
that generates base128 variablewidth ints. Values are encoded 7
bits at a time, with the most significant being a continuation bit.
Thus, the numbers from 0 to 127 require only a single byte to
encode, those from 128 to 16383 require two bytes, etc.
This format is taken from Google's Protocol Buffers, which provides a bit more verbiage on the encoding: https://developers.google.com/protocolbuffers/docs/encoding#varints.
Documentation
Bounded n => Bounded (VarInt n)  
Enum n => Enum (VarInt n)  
Eq n => Eq (VarInt n)  
Integral n => Integral (VarInt n)  
Num n => Num (VarInt n)  
Ord n => Ord (VarInt n)  
Real n => Real (VarInt n)  
Show n => Show (VarInt n)  
Bits n => Bits (VarInt n)  
(Bits n, Integral n, Bits (Unsigned n), Integral (Unsigned n)) => Serial (VarInt n)  $setup >>> import Data.Word >>> import Data.Fixed >>> import Data.Bytes.Serial Integer/Word types serialized to base128 variablewidth ints.

type Signed (VarInt n) = VarInt (Signed n)  
type Unsigned (VarInt n) = VarInt (Unsigned n) 