I can't think of very many cases where you'd want to do something like this. Effectively, what you're saying is "give me a lifetime and I'll construct a reference that's valid for it". In this example, that can't possibly be true - the function has to work with any possible lifetime, but if one's given that lives longer than x (which, realistically, it would, because 'a is specified by the caller and 'a will therefore continue to be valid after the function returns), then that reference is invalid, because you're saying it lives longer than it actually does.
Usually lifetime parameters show up when you're being given a reference to something, and you want to return a reference (or maybe do something with that reference) based on the one you're given. A super simple function is fn my_func<'a>(data: &'a MyStruct) -> &'a u32, which extracts some field from MyStruct (and we'll say that field has a type u32). You don't have to write the lifetime here at all, but it means the same thing even if you don't.
The caller will pass a reference to your function, and that reference will be used to figure out the value of 'a automatically. Then, because you know the data in data is valid for 'a, you can return a reference to one of its fields that's also valid for 'a.