dirtyChecked

inline fun <H, T> dirtyChecked(crossinline hash: () -> H, crossinline function: (H) -> T): () -> T