lib/fn/fn.rb
# success_fn: a test fn to apply to the enum resulting from applying the tests; e.g. Fn.all? (and) or Fn.any? (or)
# test_fns  : [test_fn]; each test is called with (v)
# value_or  :  the test context (can be anything understood by the tests)
a test fn to apply to the enum resulting from applying the tests; e.g.
a test fn to apply to the enum resulting from applying the tests ; e . g .
def tests
        -> success_fn, test_fns, value {
          Fn.compose.(
            success_fn.(Fn.identity),                   
            Fn.map.(-> test_fn { test_fn.(value) } )    
          ).(test_fns)
        }.curry
      end
def tests -> success_fn , test_fns , value { Fn . compose . ( success_fn . ( Fn . identity ) , Fn . map . ( -> test_fn { test_fn . ( value ) } ) ) . ( test_fns ) } . curry end
success_fn: a test fn to apply to the enum resulting from applying the tests; e.g.
success_fn : a test fn to apply to the enum resulting from applying the tests ; e . g .
# provide a results extractor fn to the success_fn # call each test fn with the context