interface DRG : Type -> Typenext_bytes : (n : Nat) -> a -> (a, Vect n Bits8)next_bytes : DRG a => (n : Nat) -> a -> (a, Vect n Bits8)interface MonadRandom : (Type -> Type) -> Typerandom_bytes : (n : Nat) -> m (Vect n Bits8)DRG s => MonadRandom (State s)random_bytes : MonadRandom m => (n : Nat) -> m (Vect n Bits8)next_integer : MonadRandom m => Nat -> m Integeruniform_random : MonadRandom m => Integer -> m Integeruniform_random' : MonadRandom m => Integer -> Integer -> m Integerdata ChaCha12DRG : TypeMkChaCha12DRG : Vect 8 Bits32 -> ChaCha12DRGnew_chacha12_drg : MonadRandom m => m ChaCha12DRG