interface MonadSample : (Type -> Type) -> TypeInterface for sampling from a distribution
We require that there is at least one element in the distribution
TODO add temperature as a implicit parameter with a defualt value of 1.0
sample : MonadSample m => IsSucc i => Dist i -> m (Fin i)