From 9838cf7b8c0c2ee7b58aa8e6d02262e6ac09f3d5 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Sun, 6 Apr 2008 11:19:43 +0000 Subject: [PATCH] Use forall to remove some repeated monad constraints. --- common/EvalConstants.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/EvalConstants.hs b/common/EvalConstants.hs index c51b16f..c32d9dc 100644 --- a/common/EvalConstants.hs +++ b/common/EvalConstants.hs @@ -275,7 +275,7 @@ renderValue m _ (OccBool False) = return $ A.False m renderValue m t v = renderLiteral m t v >>* A.Literal m t -- | Convert an 'OccValue' back into a 'LiteralRepr'. -renderLiteral :: (CSMR m, Die m) => Meta -> A.Type -> OccValue -> m A.LiteralRepr +renderLiteral :: forall m. (CSMR m, Die m) => Meta -> A.Type -> OccValue -> m A.LiteralRepr renderLiteral m t v = case v of OccByte c -> @@ -303,23 +303,23 @@ renderLiteral m t v | otherwise = [c] where o = ord c - renderInt :: (Show s, CSMR m, Die m) => s -> m A.LiteralRepr + renderInt :: Show s => s -> m A.LiteralRepr renderInt i = return $ A.IntLiteral m $ show i - renderArray :: (CSMR m, Die m) => [OccValue] -> m A.LiteralRepr + renderArray :: [OccValue] -> m A.LiteralRepr renderArray vs = do subT <- trivialSubscriptType m t aes <- mapM (renderArrayElem subT) vs return $ A.ArrayLiteral m aes - renderArrayElem :: (CSMR m, Die m) => A.Type -> OccValue -> m A.ArrayElem + renderArrayElem :: A.Type -> OccValue -> m A.ArrayElem renderArrayElem t (OccArray vs) = do subT <- trivialSubscriptType m t aes <- mapM (renderArrayElem subT) vs return $ A.ArrayElemArray aes renderArrayElem t v = renderValue m t v >>* A.ArrayElemExpr - renderRecord :: (CSMR m, Die m) => [OccValue] -> m A.LiteralRepr + renderRecord :: [OccValue] -> m A.LiteralRepr renderRecord vs = do ts <- case t of A.Infer -> return [A.Infer | _ <- vs]