findFirst unnecessary loop 0 - causes findFirst to be executed twice
Minimum test to see that findFirst iterates over the list twice:
test2 () = do
stuff = [1,2,3]
findFirst (\v -> do
if(v == 2) then do
print "Found v == 2"
True
else False
) stuff