{-# LANGUAGE OverlappingInstances, MultiParamTypeClasses, FlexibleInstances #-} module Data.Random.RVar.Enum() where import Data.Random.RVar import Data.Random.Distribution import Data.Random.Distribution.Uniform import Control.Applicative((<$>)) -- TODO: Send to library author as a "missing instance" instance (Enum a) => Distribution Uniform a where rvarT (Uniform l h) = toEnum <$> uniformT (fromEnum l) (fromEnum h)