 
 : approx= ( x y -- ? )
     {
+        { [ 2dup [ fp-nan? ] both? ] [ 2drop t ] }
         { [ 2dup [ float? ] both? ] [ -1.e8 ~ ] }
         { [ 2dup [ fp-infinity? ] either? ] [ fp-bitwise= ] }
         { [ 2dup [ sequence? ] both? ] [


"== Checking vector operations" print

: random-vector ( class -- vec )
    new [ drop 1000 random ] map ;

:: check-vector-op ( word inputs class elt-class -- inputs quot )
    inputs [
        {
            { +vector+ [ class random-vector ] }
            { +scalar+ [ 1000 random elt-class float = [ >float ] when ] }
        } case
    ] [ ] map-as

    ! These have their own tests later
    {
        hlshift hrshift vshuffle vbroadcast
        vany? vall? vnone?
    } unique assoc-diff ;

: ops-to-check ( elt-class -- alist )
