useMemo and useCallback but with a stable cache
This plugin enforces the wrapping of complex objects or functions (which might generate unnecessary renders or side-effects) in `useMemooruseCallback. It also allows you to programmatically enforce the wrapping of functional components inmemo`, and
Enforce that all function components are wrapped in React.memo, and that all props and deps are wrapped in `useMemo/useCallback` so they don’t break memo.
It's React's useEffect/useMemo/useCallback hooks, except using custom comparison on the inputs, not reference equality