-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simplistic D&D style dice-rolling system. -- -- Simplistic D&D style dice-rolling system. -- --
-- $ dice "2d10 + 2 * (d100 / d6)" -- (5+2) + 2 * 64 / 2 => 71 --@package dice @version 0.1.1 module Data.Random.Dice data Expr a Const :: String -> a -> Expr a Plus :: Expr a -> Expr a -> Expr a Minus :: Expr a -> Expr a -> Expr a Times :: Expr a -> Expr a -> Expr a Divide :: Expr a -> Expr a -> Expr a foldExpr :: (String -> t -> t) -> (t -> t -> t) -> (t -> t -> t) -> (t -> t -> t) -> (t -> t -> t) -> Expr t -> t evalExprWithDiv :: (Num a, Monad m) => (a -> a -> m a) -> Expr a -> m a evalFractionalExpr :: (Eq a, Fractional a, MonadError String m) => Expr a -> m a evalIntegralExpr :: (Integral a, MonadError String m) => Expr a -> m a commute :: Monad m => (Expr a -> Expr a -> b) -> Expr (m a) -> Expr (m a) -> m b runExpr :: Monad m => Expr (m a) -> m (Expr a) fmtIntegralExpr :: (Show a, Integral a) => Expr a -> String fmtIntegralListExpr :: (Show a, Integral a) => Expr [a] -> String fmtSimple :: (Integral a, Show a) => Expr [a] -> String fmtSimpleRational :: Expr [Integer] -> String showScalarConst :: Show a => String -> a -> p -> String -> String showListConst :: Show a => String -> a -> p -> String -> String showSimpleConst :: (Ord a, Num a) => (a -> a -> ShowS) -> p -> [a] -> a -> ShowS showSimpleListConst :: Show a => String -> [a] -> Int -> ShowS showSimpleRationalConst :: p -> [Ratio Integer] -> Integer -> ShowS showError :: Show a => ExceptT String Identity a -> ShowS showErrorWith :: (t -> ShowS) -> ExceptT String Identity t -> ShowS showDouble :: Double -> ShowS showRational :: (Show a, Ord a, Num a, Num a, Eq a) => a -> Ratio a -> ShowS showRationalWithDouble :: Ratio Integer -> ShowS fmtExprPrec :: (String -> a -> Int -> ShowS) -> Expr a -> Int -> ShowS rollEm :: String -> IO (Either ParseError String) summarizeRollsOver :: Num a => Int -> [a] -> [a] roll :: (Integral a, UniformRange a) => a -> a -> RVar [a] parseExpr :: (Integral a, UniformRange a) => String -> String -> Either ParseError (Expr (RVar [a])) diceLang :: TokenParser st expr :: (Integral a, UniformRange a) => CharParser Bool (Expr (RVar [a])) term :: (Integral a, UniformRange a) => CharParser Bool (Expr (RVar [a])) primExp :: (Integral a, UniformRange a) => CharParser Bool (Expr (RVar [a])) dieExp :: (Integral a, UniformRange a) => CharParser Bool (Expr (RVar [a])) numExp :: Num a => CharParser st (Expr (RVar [a])) number :: CharParser st (String, Integer) positiveNumber :: CharParser st (String, Integer) instance GHC.Show.Show a => GHC.Show.Show (Data.Random.Dice.Expr a) instance GHC.Base.Functor Data.Random.Dice.Expr