+ obtainBall :: Int -> FootballerAI m\r
+ obtainBall i\r
+ | ball_in_reach maxTackleReach && length has_ball > 0\r
+ | i<15 = \(_,mm).(Tackle (hd has_ball).playerID (ms 10.0), mm)\r
+ | i < 50 = kick closest_free_teammate\r
+ | otherwise = \(_,mm).(GainBall, mm)\r
+ | isClosest us me ballPos.pxy = fix ballPos.pxy prec\r
+ | otherwise = fix closest_free_player prec\r
+\r
+ moveForward :: Int -> FootballerAI m\r
+ moveForward i = fix their_goal prec//TODO\r
+ \r