module Monad where -- transformers import Control.Monad.Trans.State.Strict -- essence-of-live-coding import LiveCoding import LiveCoding.Cell.Monad.Trans import Util import Data.Functor.Identity (Identity) -- test-framework-quickcheck2 import Test.Framework.Providers.QuickCheck2 test = testProperty "State effect" CellMigrationSimulation { cell1 = flip runStateC (0 :: Int) $ constM (modify (+ 1)) , cell2 = flip runStateC 23 $ constM (modify (+ 2)) , input1 = [(), (), ()] , input2 = [(), (), ()] , output1 = [((), 1), ((), 2), ((), 3)] , output2 = [((), 5), ((), 7), ((), 9)] }