  In this paper, the notion of strongly typed language will be borrowed from
the field of computer programming to introduce a calculational framework for
linear algebra and tensor calculus for the purpose of detecting errors
resulting from inherent misuse of objects and for finding natural formulations
of various objects. A tensor bundle formalism, crucially relying on the notion
of pullback bundle, will be used to create a rich type system with which to
distinguish objects. The type system and relevant notation is designed to
"telescope" to accomodate a level of detail appropriate to a set of
calculations. Various techniques using this formalism will be developed and
demonstrated with the goal of providing a relatively complete and uniform
method of coordinate-free computation.
  The calculus of variations pertaining to maps between Riemannian manifolds
will be formulated using the strongly typed tensor formalism and associated
techniques. Energy functionals defined in terms of first order Lagrangians are
the focus of the second half of this paper, in which in the first variation,
the Euler-Lagrange equations, and the second variation of such functionals will
be derived.
