findFarthestPoint (currntPoint : pointList) firstPoint finalPoint dist
    | pointToPointDist currntPoint firstPoint >= dist = findFarthestPoint pointList firstPoint currntPoint (pointToPointDist currntPoint firstPoint) 
    | otherwise                  = findFarthestPoint pointList firstPoint finalPoint dist
findFarthestPoint (currntPoint : pointList) firstPoint finalPoint dist
    | pointToPointDist currntPoint firstPoint >= dist = findFarthestPoint pointList firstPoint currntPoint (pointToPointDist currntPoint firstPoint) 
    | otherwise                  = findFarthestPoint pointList firstPoint finalPoint dist
findFarthestPoint (currntPoint : pointList) firstPoint finalPoint dist
    | pointToPointDist currntPoint firstPoint >= dist = findFarthestPoint pointList firstPoint currntPoint (pointToPointDist currntPoint firstPoint) 
    | otherwise                  = findFarthestPoint pointList firstPoint finalPoint dist