     [ >quotation 1quotation prefix ] if-empty ;
 
 : mark-composes ( quot -- quot' )
-    [ dup \ @ = [ drop [ _ @ ] ] [ 1quotation ] if ] map concat ; inline
+    [ dup \ @ = [ drop [ POSTPONE: _ POSTPONE: @ ] ] [ 1quotation ] if ] map concat ; inline
 
 : shallow-fry ( quot -- quot' )
     check-fry mark-composes
-    { _ } split convert-curries
+    { POSTPONE: _ } split convert-curries
     [ [ [ ] ] [ [ ] (make-curry) but-last ] if-zero ]
     [ shallow-spread>quot swap [ [ ] (make-curry) compose ] unless-zero ] if-empty ;
 

    dup { load-local load-locals get-local drop-locals } intersect
    [ >r/r>-in-fry-error ] unless-empty ;

PREDICATE: fry-specifier < word { _ @ } member-eq? ;

GENERIC: count-inputs ( quot -- n )


! Copyright (C) 2009 Slava Pestov, Eduardo Cavazos, Joe Groff.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators kernel locals.backend math
namespaces parser quotations sequences sets splitting words ;
IN: fry

ERROR: not-in-a-fry ;

SYMBOL: in-fry?

SYNTAX: _ in-fry? get [ \ _ suffix! ] [ not-in-a-fry ] if ;

SYNTAX: @ in-fry? get [ \ @ suffix! ] [ not-in-a-fry ] if ;

ERROR: >r/r>-in-fry-error ;

