 ! Copyright (C) 2005, 2011 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-! IN: alien DEFER: pinned-alien DEFER: <bad-alien> ! for bootstrap
 USING: accessors alien arrays assocs byte-arrays classes
 classes.algebra classes.algebra.private classes.maybe
 combinators generic generic.standard hashtables kernel
-kernel.private make math quotations sequences sequences.private
-slots.private strings words ;
+kernel.private math quotations sequences sequences.private
+strings words ;
 IN: slots
 
 <PRIVATE

    } cond ;

M: object instance-check-quot
    [
        \ dup ,
        [ predicate-def % ]
        [ [ bad-slot-value ] curry , ] bi
        \ unless ,
    ] [ ] make ;

GENERIC#: writer-quot 1 ( class slot-spec -- quot )



: define-changer ( name -- )
    dup changer-word dup deferred? [
        over reader-word 1quotation
        [ dip call ] curry [ dip swap ] curry [ over ] prepose
        rot setter-word 1quotation compose
        ( object quot -- object ) define-inline
    ] [ 2drop ] if ;

: define-slot-methods ( class slot-spec -- )
