+ inference/interpreter:\r
\r
-- : bin 5 [ 5 bin bin 5 ] [ 2drop ] ifte ;\r
- combinator inference\r
-- generic/2generic inference\r
- type inference\r
-- [ 2 2 . ] run fails\r
- some way to step over a word in the stepper\r
- step: print NEXT word to execute, not word that JUST executed\r
- cache stack effects\r
2drop f
] ifte ;
+! This form should not have a stack effect
+: bad-bin 5 [ 5 bad-bin bad-bin 5 ] [ 2drop ] ifte ;
+[ [ bad-bin ] infer ] unit-test-fails
+
[ [ 2 | 1 ] ] [ [ fie ] infer ] unit-test
[ [ 2 | 1 ] ] [ [ foe ] infer ] unit-test
! [ [ 1 | 1 ] ] [ [ last ] infer ] unit-test
! [ [ 1 | 1 ] ] [ [ list? ] infer ] unit-test
+[ [ 1 | 1 ] ] [ [ length ] infer ] unit-test
+[ [ 1 | 1 ] ] [ [ reverse ] infer ] unit-test
+[ [ 2 | 1 ] ] [ [ contains? ] infer ] unit-test
+[ [ 2 | 1 ] ] [ [ contains? ] infer ] unit-test
+[ [ 2 | 1 ] ] [ [ remove ] infer ] unit-test
+
[ [ 2 | 1 ] ] [ [ bitor ] infer ] unit-test
[ [ 2 | 1 ] ] [ [ bitand ] infer ] unit-test
[ [ 2 | 1 ] ] [ [ bitxor ] infer ] unit-test