Ambient context is a useful design pattern, but a recent project got me thinking about how universal this context should be.
Many have discussed the issues with the service locator anti-pattern for dependency management. However, I’ve repeatedly run into an issue that I haven’t seen discussed yet: it causes circular references.
Like most people, I’ve found monads hard to pin down. I know things I can do with them, but I don’t understand them at an intuitive and flexible level. Here I’ll try to build my mental model by relating to other tools.