moveTail :: (GLdouble,GLdouble) -> WormsAction ()
moveTail presentHeadPos = do
  (GA timer remainingFood tailSize previousHeadPos score) <- getGameAttribute
  tails <- getObjectsFromGroup "tail"
  aliveTails <- getAliveTails tails []
  lastTail <- findLastTail aliveTails
  setObjectPosition previousHeadPos lastTail
  setGameAttribute (GA timer remainingFood tailSize presentHeadPos score)
  changeTailsAttribute tailSize aliveTails
moveTail :: (GLdouble,GLdouble) -> WormsAction ()
moveTail presentHeadPos = do
  (GA timer remainingFood tailSize previousHeadPos score) <- getGameAttribute
  tails <- getObjectsFromGroup "tail"
  aliveTails <- getAliveTails tails []
  lastTail <- findLastTail aliveTails
  setObjectPosition previousHeadPos lastTail
  setGameAttribute (GA timer remainingFood tailSize presentHeadPos score)
  changeTailsAttribute tailSize aliveTails
moveTail presentHeadPos = do
  (GA timer remainingFood tailSize previousHeadPos score) <- getGameAttribute
  tails <- getObjectsFromGroup "tail"
  aliveTails <- getAliveTails tails []
  lastTail <- findLastTail aliveTails
  setObjectPosition previousHeadPos lastTail
  setGameAttribute (GA timer remainingFood tailSize presentHeadPos score)
  changeTailsAttribute tailSize aliveTails