matt-noonan / gdp

Ghosts of Departed Proofs
BSD 3-Clause "New" or "Revised" License
60 stars 11 forks source link

Kind of GetArg #6

Closed shangaslammi closed 5 years ago

shangaslammi commented 5 years ago

Currently the Argument type class is defined as

class Argument (f :: k1) (n :: k2) where
  type GetArg f n   :: k1
  type SetArg f n x :: k1

However, I don't immediately see why the argument kind needs to be same as the kind of f. Could this be changed to

class Argument (f :: k1) (n :: k2) where
  type GetArg f n   :: k
  type SetArg f n x :: k1
matt-noonan commented 5 years ago

Yes, I believe you're right about this.