tag:blogger.com,1999:blog-16578308.post8337534309542260994..comments2023-11-03T04:48:29.696-04:00Comments on Copious Free Time: A Pattern Language for Haskell System Programming?toddbothttp://www.blogger.com/profile/00551771132277351922noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-16578308.post-21209192454330009602013-10-03T16:23:40.353-04:002013-10-03T16:23:40.353-04:00I'd suggest looking into "Free Monads&quo...I'd suggest looking into "Free Monads" for constructing DSLs for your domain.<br /><br />The IOSpec package does this very successfully. It uses "Data types a la carte" to build up free monads which carve up the IO monad into smaller submonads. In this way, you can be sure that your code isn't doing things it shouldn't. For example, an action with type "IOSpec Read" is guaranteed to be unable to write to the system, for example.Anonymousnoreply@blogger.com