[Haskell-cafe] name lists
* Ben Gamari bgamari.f...@gmail.com [2013-09-17 10:03:41-0400] Another approach might be to introduce some notion of a name list which can appear in the export list. These lists could be built up by either user declarations in the source module or in Template Haskell splices and would serve as a way to group logically related exports. This would allow uses such as (excuse the terrible syntax), module HelloWorld ( namelist MyDataLenses , namelist ArithmeticOps ) where import Control.Lens data MyData = MyData { ... } makeLenses ''MyDataLenses -- makeLenses defines a namelist called MyDataLenses namelist ArithmeticOps (add) add = ... namelist ArithmeticOps (sub) sub = ... Hi Ben, Isn't this subsumed by ordinary Haskell modules, barring the current compilers' limitation that modules are in 1-to-1 correspondence with files (and thus are somewhat heavy-weight)? E.g. the above could be structured as module MyDataLenses where data MyData = MyData { ... } makeLenses ''MyData module HelloWorld (module MyDataLenses, ...) where ... Roman signature.asc Description: Digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] name lists
Roman Cheplyaka r...@ro-che.info writes: * Ben Gamari bgamari.f...@gmail.com [2013-09-17 10:03:41-0400] Another approach might be to introduce some notion of a name list which can appear in the export list. These lists could be built up by either user declarations in the source module or in Template Haskell splices and would serve as a way to group logically related exports. This would allow uses such as (excuse the terrible syntax), Hi Ben, Isn't this subsumed by ordinary Haskell modules, barring the current compilers' limitation that modules are in 1-to-1 correspondence with files (and thus are somewhat heavy-weight)? E.g. the above could be structured as module MyDataLenses where data MyData = MyData { ... } makeLenses ''MyData module HelloWorld (module MyDataLenses, ...) where ... True. Unfortunately I've not seen much motion towards relaxing this limitation[1]. Cheers, - Ben [1] http://ghc.haskell.org/trac/ghc/ticket/2551 pgpjfzeZUOpNI.pgp Description: PGP signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] name lists
* Ben Gamari bgamari.f...@gmail.com [2013-09-17 12:41:05-0400] Roman Cheplyaka r...@ro-che.info writes: * Ben Gamari bgamari.f...@gmail.com [2013-09-17 10:03:41-0400] Another approach might be to introduce some notion of a name list which can appear in the export list. These lists could be built up by either user declarations in the source module or in Template Haskell splices and would serve as a way to group logically related exports. This would allow uses such as (excuse the terrible syntax), Hi Ben, Isn't this subsumed by ordinary Haskell modules, barring the current compilers' limitation that modules are in 1-to-1 correspondence with files (and thus are somewhat heavy-weight)? E.g. the above could be structured as module MyDataLenses where data MyData = MyData { ... } makeLenses ''MyData module HelloWorld (module MyDataLenses, ...) where ... True. Unfortunately I've not seen much motion towards relaxing this limitation[1]. Cheers, - Ben [1] http://ghc.haskell.org/trac/ghc/ticket/2551 I guess there simply were not many use cases for that. This may be one. At least if we are talking about changing the compiler anyway, it's better to stick with a well-understood and standardized mechanism. Roman signature.asc Description: Digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe