3 /** This module defines the Soccer-Fun API that is concerned with teams.
4 All available teams are collected in this module (allAvailableTeams).
8 allAvailableTeams :: [Home FootballField -> Team]
10 :: Team :== [Footballer] // the fielders are supposed to have different numbers, and all not equal to 1
14 validateTeam :: !Team -> Team
15 isValidTeam :: !Team -> Bool
16 allPlayersAtHome :: !FootballField !Home !Team -> Bool
17 replaceInTeam :: ![Footballer] !Team -> Team
18 getTeam :: !ClubName ![Team] -> Team
20 class mirror a :: !FootballField !a -> a
21 instance mirror [a] | mirror a
22 instance mirror Footballer
23 instance mirror Position