defint1 abs trouble



I have found a definite integral  which integrate
can do but mydefint1 (revised to see what
is going on)  cannot do, leading to a 
defint complaint. The example involves
the abs function.
---------------------------------------------------

(%i1) integrate (exp (-abs (x)), x, minf, 0);
(%o1)                                  1

(%i2) assume(x < 0);
(%o2)                               [x < 0]

(%i3) integrate (exp (-abs (x)), x, minf, 0);
(%o3)                                  1

(%i4) forget(x<0);
(%o4)                               [x < 0]
(%i5) facts();
(%o5)                                 []

(%i6) mydefint1 (e78, x78, a78, b78) :=
 block  ( [domain : complex, xmin, xmax,
                             assumeL : [],  res1,  _ans],     
    xmin : min (a78, b78),
    xmax : max (a78, b78),
    if xmin  #  minf then assumeL : cons ( x78 > xmin, assumeL),
    if xmax # inf then assumeL : cons (x78 < xmax, assumeL),
    if debug then display (xmin, xmax, assumeL),
    _ans : apply ( 'assume,  assumeL ),
    res1 : ratsimp (integrate (e78, x78, a78, b78 ) ),
    apply ( 'forget,  _ans),
    res1)$

(%i7) debug:true$

(%i8) mydefint1 ( exp (-abs (x)), x, minf, 0);

                                  xmin = minf

                                   xmax = 0

                               assumeL = [x < 0]

defint: integral is divergent.

#0: mydefint1(e78=%e^-abs(x),x78=x,a78=minf,b78=0)
 -- an error. To debug this try: debugmode(true);

(%i9) facts();
(%o9)                               [0 > x]

----------------------------------------------------------
I don't see what difference there is in terms of
assumptions between calling integrate directly
and using mydefint1 in the above example.

If I remove the abs(x) part, both methods work:
-------------------------------------------------------
(%i10) forget(x<0);
(%o10)                              [x < 0]
(%i11) facts();
(%o11)                                []

(%i13) integrate(exp(x),x,minf,0);
(%o13)                                 1

(%i14) mydefint1(exp(x),x,minf,0);
                                  xmin = minf

                                   xmax = 0

                               assumeL = [x < 0]

(%o14)                                 1

(%i15) facts();
(%o15)                                []
-------------------------------------------------------------
So something about the presence of abs in the
integrand prevents mydefint1 from working
as expected.

Ted