Changes between Version 11 and Version 12 of GhciDebugger


Ignore:
Timestamp:
Dec 1, 2006 2:58:49 PM (9 years ago)
Author:
mnislaih
Comment:

Fix "compensating wrapper constructors"

Legend:

Unmodified
Added
Removed
Modified
  • GhciDebugger

    v11 v12  
    102102
    103103=== Compensating Wrapper Constructors ===
    104 Worker and Wrapper constructors are a potential headache. The arguments list gets extended with:
    105  * Existential Dictionaries
    106  * Type equality coercions (?)
     104Worker and Wrapper constructors are a potential headache for two reasons, extra arguments and variations on the final type.
     105
     106The arguments list gets extended with:
     107 * Existential Dictionaries (?)
    107108 * Type Class dictionaries
    108 
    109 In addition, the types of the arguments may change too, but that is not a problem in our case. We always consider the processed types, not the original ones, since what we are going to find in the heap corresponds to the former.
    110 
    111 So to recap, all what is being done to compensate is drop the first (n - m) arguments where:
     109 * any other ?
     110
     111To compensate it suffices to drop the first (m - n) (pointed) pointers of a closure, where:
    112112 * n - # arguments of the original constructor
    113113 * m - # arguments of the wrapper constructor, if any, or worker constructor
     114
     115In addition, the types of the arguments may change, so the closure viewer always consider the final types, not the original ones, since the closure viewer deals with the heap representation of values.
    114116
    115117=== About handling suspensions in the interactive environment ===