class
     DIFF

inherit
     AGGREGATE
           redefine
                 post_action
           end

     POLYNOM

create
     make

feature

     Construct_name: STRING is "DIFF"
     
feature {NONE}

     Separator: STRING is "-"
     
feature

     production: LINKED_LIST [CONSTRUCT] is
           local
                 base: PRODUCT
           once
                 create Result.make
                 Result.forth
                 create base.make
                 put (base)
           end

     post_action is
           local
                 int_value: INTEGER
           do
                 from
                       child_start
                       if not no_components then
                             child.post_action
                             int_value := info.child_value
                             child_forth
                       end
                 until
                       no_components or child_after
                 loop
                       child.post_action
                       int_value := int_value - info.child_value
                       child_forth
                 end
                 info.set_child_value (int_value)
           end
     
end -- class DIFF