Changes between Initial Version and Version 1 of Ticket #9858, comment 49


Ignore:
Timestamp:
Feb 5, 2015 5:50:43 AM (5 years ago)
Author:
int-e
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #9858, comment 49

    initial v1  
    88Because the kind information of the `p` argument is not fully known at the site of definition, I surmise that the corresponding `Kindable` (to use oerjan's nomenclature) constraint gets propagated outward, meaning that at the core language level, `f` gets an extra argument for passing the `Kindable` evidence for the unknown kind argument of the second `Proxy` type constructor.
    99
    10 It is my understanding that for the sake of backward compatibility, this argument is implicit and not visible (even as a constraint) in the Haskell-level type. Is that correct? I feel uncomfortable about this; I like to be able to see in the Haskell type of functions what kind of runtime evidence needs to be passed to a function to make it work.
     10It is my understanding that for the sake of backward compatibility, this argument is implicit and not visible (even as a constraint) in the Haskell-level type. Is that correct? I feel uncomfortable about this; I like to be able to see in the Haskell type of functions what kind of runtime evidence needs to be passed to a function to make it work. (In a slogan: hiding evidence is bad.)
    1111
    1212The second thing I'm wondering about is what happens when polymorphic kinds are never instantiated at all. Is the following program valid, and if so, what will the kind of the `Proxy` be at runtime?