module T3.Game.Class where

import Prelude
import T3.Game.Types
import T3.Game.Core

class Monad m => Game m where
  move :: XO -> m Loc
  forfeit :: Win XO -> Lose XO -> m ()
  end :: Win XO -> Lose XO -> m ()
  tie :: m ()
  step :: Board -> XO -> Loc -> m ()