generalized prelude