1 ! Copyright (C) 2004, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: inference.backend inference.state inference.dataflow
4 inference.known-words inference.transforms inference.errors
5 kernel io effects namespaces sequences quotations vocabs
9 GENERIC: infer ( quot -- effect )
11 M: callable infer ( quot -- effect )
12 [ f infer-quot ] with-infer drop ;
15 infer effect>string print ;
17 GENERIC: dataflow ( quot -- dataflow )
20 [ f infer-quot ] with-infer nip ;
22 GENERIC# dataflow-with 1 ( quot stack -- dataflow )
24 M: callable dataflow-with
30 : forget-errors ( -- )
32 dup subwords [ f "no-effect" set-word-prop ] each
33 f "no-effect" set-word-prop