程序代写代做代考 module Pinch where

module Pinch where

import Control.Applicative
import Data.Array

import PinchDef

pinchServer :: MonadPinchSim m => Array Int Integer -> m ()
pinchServer arr = error “TODO”

instance Functor PinchTrace where
fmap f p = p >>= return . f

instance Applicative PinchTrace where
pure = Pure
pf <*> pa = pf >>= \f -> pa >>= \a -> pure (f a)

instance Monad PinchTrace where
return a = error “TODO”
Pure a >>= k = error “TODO”
Step msg arr next >>= k = error “TODO”

instance MonadPinchSim PinchTrace where
askPinch msg arr = error “TODO”