Many properties of parametric, polymorphic functions can be determined simp
ly by inspection of their types. Such results are usually proven using Reyn
olds's parametricity theorem. However, Reynolds's theorem can be difficult
to show in some settings, particularly ones involving computational effects
. I present an alternative technique for proving some parametricity results
. This technique is considerably simpler and easily generalizes to effectua
l settings. It works by instantiating polymorphic functions with singleton
types that fully specify the behavior of the functions. Using this techniqu
e, I show that callers' stacks are protected from corruption during functio
n calls in Typed Assembly Language programs.