;; using flatmap explicity
(bind-func div_test:[ADOption*,ADOption*,ADOption*]*
(lambda (a b)
(flatmap
a (lambda (n) ;; numerator
(flatmap
b (lambda (d) ;; denominator
(if (= d 0)
(ADNone)
(ADSome (/ n d)))))))))