From 14d58d002ebea5da687ca74c0e18d0929e60e9d0 Mon Sep 17 00:00:00 2001 From: Tissevert Date: Sun, 13 Jan 2019 13:16:29 +0100 Subject: [PATCH] Replace list by triple in deal function following error on failable pattern with GHC 8.6.3 --- src/Hanafuda/KoiKoi/Round.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Hanafuda/KoiKoi/Round.hs b/src/Hanafuda/KoiKoi/Round.hs index 415ebc9..edcc0ac 100644 --- a/src/Hanafuda/KoiKoi/Round.hs +++ b/src/Hanafuda/KoiKoi/Round.hs @@ -10,11 +10,11 @@ import Hanafuda.KoiKoi.Game (Game, Mode(..), On(..), Step(..), end, stop) import qualified Hanafuda.Player as Player (deal, get, next, score) import Data.Map ((!), insert) import Control.Monad.IO.Class (MonadIO) -import Control.Monad.State (replicateM, runState, state) +import Control.Monad.State (runState, state) deal :: (MonadIO m, Ord player) => On player -> m (On player) deal on@(On_ {players}) = do - ([hand1, hand2, river], deck) <- fmap (runState (replicateM 3 take8)) $ shuffle cards + ((hand1, hand2, river), deck) <- runState getTriple <$> shuffle cards return on { players = Player.deal players [hand1, hand2] , deck @@ -22,6 +22,7 @@ deal on@(On_ {players}) = do } where take8 = state $ splitAt 8 + getTriple = (,,) <$> take8 <*> take8 <*> take8 next :: (MonadIO m, Ord player) => On player -> m (Game player) next on@(On_ {mode, scores, month, players, oyake, winning}) =