defining Get/Put operations; switch to ImpredicativeTypes