         3drop f
     ] if ; inline recursive
 
+: find-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f )
+    [ 0 ] 2dip find-integer-from ; inline
+
+: find-last-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f )
+    over 0 < [
+        2drop f
+    ] [
+        [ call ] 2keep rot [
+            drop
+        ] [
+            [ 1 - ] dip find-last-integer
+        ] if
+    ] if ; inline recursive
+
 : all-integers-from? ( ... i n quot: ( ... i -- ... ? ) -- ... ? )
     2over < [
         [ nip call ] 3keep roll

        3drop t
    ] if ; inline recursive

: each-integer ( ... n quot: ( ... i -- ... ) -- ... )
    [ 0 ] 2dip each-integer-from ; inline

: times ( ... n quot: ( ... -- ... ) -- ... )
    [ drop ] prepose each-integer ; inline

: find-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f )
    [ 0 ] 2dip find-integer-from ; inline

: all-integers? ( ... n quot: ( ... i -- ... ? ) -- ... ? )
    [ 0 ] 2dip all-integers-from? ; inline

: find-last-integer ( ... n quot: ( ... i -- ... ? ) -- ... i/f )
    over 0 < [
        2drop f
    ] [
        [ call ] 2keep rot [
            drop
        ] [
            [ 1 - ] dip find-last-integer
        ] if
    ] if ; inline recursive

        3drop
    ] if ; inline recursive

: each-integer ( ... n quot: ( ... i -- ... ) -- ... )
    [ 0 ] 2dip each-integer-from ; inline

: times ( ... n quot: ( ... -- ... ) -- ... )
    [ drop ] prepose each-integer ; inline

: find-integer-from ( ... i n quot: ( ... i -- ... ? ) -- ... i/f )
    2over < [
        [ nip call ] 3keep roll
