Caution with lateinit and Android

I suppose you mean

private val foo: String by lazy { requireArguments().getString(ARG_FOO)!! }

Right, so lateinit can be avoided in this case. Though, this has the downside that it does not fail fast when a required argument is not passed (or something wrong is passed).