extending limit



I was playing with the idea of appending a simplim%function for the
hypergeometric
functions. To start, I wrote some 100% fake code:

(setf (get '$hypergeometric 'simplim%function) 'limit-hg)
(setf (get '%hypergeometric 'simplim%function) 'limit-hg)

(defun limit-hg (exp var val)
  (displa `((mequal) exp ,exp))
  (displa `((mequal) var ,var))
  (displa `((mequal) val ,val))
  42)

Limit assumes continuity?

  (%i14) limit(hypergeometric([a],[b],x),x,0);
  (%o14) 1

Limit doesn't even try limit-hg?

  (%i16) limit(hypergeometric([a],[b],x),a,0);
  (%o16) limit(hypergeometric([a],[b],x),a,0)

Towards infinity, limit tries limit-hg:

  (%i17) limit(hypergeometric([3],[7],x),x,inf);
   exp=hypergeometric([3],[7],x)
   var=x
   val=inf
(%o17) 42

Is there a way to get more cases funneled through limit-hg?

Barton