This function returns the name of its caller function, but it requires
that the caller function has HasCallStack constraint. Otherwise, it returns
"unknown".
foo :: HasCallStack => String; foo = ownNamefoo"foo"bar :: HasCallStack => String; bar = foobar"foo"