| And you are sure that the complexity of this is more than that of | “fully settled” types? I didn't say that. But I am sure that it's more complicated than 6.1 without 6.1.2! If I understand aright, the *only* gain is that one can omit three words: import qualified MyMonad Simon | -----Original Message----- | From: ghc-steering-committee <ghc-steering-committee-bounces@haskell.org> | On Behalf Of Joachim Breitner | Sent: 16 April 2020 15:57 | To: ghc-steering-committee@haskell.org | Subject: Re: [ghc-steering-committee] #216: Qualified Do again, | recommendation: accept the alternative | | Hi, | | Am Donnerstag, den 16.04.2020, 14:48 +0000 schrieb Simon Peyton Jones | via ghc-steering-committee: | > It would be really helpful to have a single source of truth. Perhaps | > someone (Joachim or anyone else) can write a Google doc that | > describes, as precisely as possible, the proposal that he is | > advocating. Or get the proposal authors to do so. Just saying “a | > variant where the value does not need to be in scope” does not count | > as a specification (to me). | | the variant is described in 6.1.2 of the proposal: | https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c | om%2Ftweag%2Fghc-proposals%2Fblob%2Flocal-do%2Fproposals%2F0000-local- | do.rst%23612qualifieddo-with-operations-that-are-not-in- | scope&data=02%7C01%7Csimonpj%40microsoft.com%7Ccfc3548461cb4f9c537b08d | 7e21665ba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637226458138396283& | amp;sdata=fiV%2B37%2BsCuijDL1dx7iyryEkiPWoRC1ZKGtxq4xf9K4%3D&reserved= | 0 | has a spec (“resolves to any (>>=) that is exported by any module | aliased by the name M, independently of whether it is in scope (i.e. | imported).” and an I think enlightening example (albeit with an odd | duplication of imports). | | > Then. | > 1. import MyMonad as M | > (+) other operations do not need to be qualified | > (-) unqualified `>>=` may be ambiguous | > | > What are “other operations”? | | Anything else exported from MyMonad that the user might want to use. | | > Why might “>>=” be ambiguous? I think the answer is: because MyMonad | > must export it (to use in M.do), but it may already be in scope from | > the Prelude. | | Correct. | | > I’m strongly inclined against inventing new complexity in the module | > system, unless it is absolutely unavoidable. More to specify, more to | > explain, more to understand, more to implement. | | And you are sure that the complexity of this is more than that of | “fully settled” types? | | Cheers, | Joachim | -- | Joachim Breitner | mail@joachim-breitner.de | | https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach | im- | breitner.de%2F&data=02%7C01%7Csimonpj%40microsoft.com%7Ccfc3548461cb4f | 9c537b08d7e21665ba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6372264581 | 38396283&sdata=%2FkfYvu9u3aPelYnSxYW3k%2BiDEVzNXi5vA2vkQKxUQ68%3D& | reserved=0 | | | _______________________________________________ | ghc-steering-committee mailing list | ghc-steering-committee@haskell.org | https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.has | kell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering- | committee&data=02%7C01%7Csimonpj%40microsoft.com%7Ccfc3548461cb4f9c537 | b08d7e21665ba%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637226458138396 | 283&sdata=3ylk%2Fh9DP0un9%2Fw%2FVKcrWnzlvmR8rflb8Ju17Zv5yu4%3D&res | erved=0