My dear Haskell folks,<br><br>I work in a software company where I develop components that go into a really complex system that&#39;s built of several components developed by different teams that are geographically distributed. The components themselves run in a distributed manner across client and several servers. All our design documents are in wiki&#39;s (fashionably so). As a result of the above situation and the fact that our code base is not in Haskell, we are almost always dealing with &quot;Oh I did not know this would effect that&quot; and &quot;Oh I have no clue what all this change will impact&quot;. <br>
<br>I&#39;ve been wondering if it would be a good idea to try and create a spec for the system in Haskell, such that would could get a better handle on the dependencies. Perhaps an EDSL, that would allow Product Managers to introduce new requirements - compilation failures would indicate the areas that would need to be touched. How is it different from having a spec in a diagram - well, in that case, we are requiring humans to look at the diagram to detect dependencies instead of the compiler telling me about the dependencies. I am about to start off with some implementation to capture my idea - I can articulate it better then. However, I just wanted to throw it out there to check if anyone&#39;s had some thought in this direction or if there is some prior art here.<br>
<br>Regards,<br>Kashyap<br><br>