You need to disambiguate the dependent name:
template <typename keyT, typename valueT>
typename hashMap<keyT, valueT>::maybeT hashMap<keyT,valueT>::find(keyT &k)
// ^^^^^
{
// ...
}
(Since you're writing a template, you might as well keep everything inline, though, and cut down on the code noise. Otherwise you should add inline
to the member function declaration.)