Project Euler #1 in Haskell
There are several approaches to Project Euler Question 1.  The one you have chosen is not particularly efficient, as it involves creating two lists, then merging them.  I'm not going to present alternative solutions here.  If you are going with this approach, you can write it much more simply:

sum_multiples :: Int -&gt; Int -&gt; Int -&gt; Int
sum_multiples max factor1 factor2 = sum $ multiples1 `union` multiples2
  where
    multiples1 = [factor1, 2 * factor1 .. max - 1]
    multiples2 = [factor2, 2 * factor2 .. max - 1]


In particular,


foldr (+) 0 is just the built-in sum function.
f_multiple can be replaced with ranges.


In terms of style, your last line is hard to read due to its length.  To shorten it,


Use shorter variable names, e.g. factor1 instead of first_factor.
Give names to complex subexpressions using a where clause.
Use the $ operator to form a "pipeline", instead of nesting parentheses.