module SoccerFun.Types where
import Control.Monad.State
import SoccerFun.Geometry
class NameOf a where nameOf ∷ a → String
data Brain ai memory = Brain {m ∷ memory, ai ∷ ai}
data Half = FirstHalf | SecondHalf deriving (Eq,Show)
type PlayingTime = Minutes
class Other a where other ∷ a → a
type TimeUnit = Seconds
type Seconds = Float
data Edge = North | South deriving (Eq,Show)
data PlayerID = PlayerID {clubName ∷ ClubName, playerNo ∷ PlayersNumber} deriving (Show,Eq)
type ClubName = String
type PlayersNumber = Int
data Reprimand = Warning | YellowCard | RedCard deriving (Show, Eq)
data Success = Success | Fail deriving (Show, Eq)
type FramesToGo = Int
data ATeam = Team1 | Team2 deriving (Eq, Show)
type Displacements = [(PlayerID,Displacement)]
type Displacement = Position
type ExtraTime = Minutes
type Minutes = Float