funB = flip takeWhile primes . ( . join (*)) . flip (<=)
funB x = flip takeWhile primes ((( . join (*)) . flip (<=)) x)
funB x = takeWhile ((( . join (*)) . flip (<=)) x) primes
funB x = takeWhile (foo x) primes
foo x = (( . join (*)) . flip (<=)) x
foo x = (( . join (*)) (flip (<=) x)
foo x = flip (<=) x . join (*)
foo x = (x <=) . join (*)
-- join :: Monad m => m (m a) -> m a
-- join (*) == (**2)
foo x y = x <= (y ** 2)
isLessThanTheSquareOf = foo
funB x = takeWhile (x `isLessThanTheSquareOf`) primes
Helpful?