Suitable new name for Dimensional library

All, For quite a while[1] now I've been wanting to change the name of my Dimensional library[2]. The library blurb is: "Dimensional is a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities/units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units. The library is designed to, as far as is practical, enforce/encourage best practices of unit usage." There are two primary reasons I have been wanting to change the name. Firstly I wanted to move the library from the arbitrary 'Buckwalter.Dimensional' namespace into the standard hierarchy. At Don's suggestion (patch) the library has been moved to the 'Numeric.Dimensional' namespace and if no-one objects it will remain under 'Numeric'. Secondly, I feel that "Dimensional" is to vague and ambiguous, in particular it could just as well refer to dimensions in the linear algebra sense as physical dimensions. I'd like a more specific and perhaps less pretentious name for the library. This is where I would appreciate some feedback as to what would be appropriate. Some suggestions are: - Numeric.Units - Numeric.PhysicalUnits - Numeric.PhysicalDimensions - Numeric.SI - Numeric.SIUnits - Numeric.Units.Static (While the library isn't limited to SI units or even the SI dimensions they are the main focus and default export.) Personally I like 'Numeric.Units' (it emphasizes that units are the key to interacting with the library) but I'd love to get a second, third and fourth opinion! Thanks, Bjorn Buckwalter [1] http://www.haskell.org/pipermail/haskell/2006-December/018993.html [2] http://dimensional.googlecode.com

Björn Buckwalter wrote:
There are two primary reasons I have been wanting to change the name.
Firstly I wanted to move the library from the arbitrary 'Buckwalter.Dimensional' namespace into the standard hierarchy. At Don's suggestion (patch) the library has been moved to the 'Numeric.Dimensional' namespace and if no-one objects it will remain under 'Numeric'.
seems fine to me
Secondly, I feel that "Dimensional" is to vague and ambiguous, in particular it could just as well refer to dimensions in the linear algebra sense as physical dimensions.
They are somewhat related. But indeed your library only deals with specific named dimensions...
I'd like a more specific and perhaps less pretentious name for the library. This is where I would appreciate some feedback as to what would be appropriate. Some suggestions are:
- Numeric.Units - Numeric.PhysicalUnits - Numeric.PhysicalDimensions - Numeric.SI - Numeric.SIUnits - Numeric.Units.Static
(While the library isn't limited to SI units or even the SI dimensions they are the main focus and default export.)
Personally I like 'Numeric.Units' (it emphasizes that units are the key to interacting with the library) but I'd love to get a second, third and fourth opinion!
perhaps: Numeric.Units.SI exports the SI units... but then it's not obvious what to do with the other exports (Dimensionless etc.) - Numeric.Units I guess? I don't remember, is it possible for modules that import yours, to define arbitrary new units of their own? Is the module's API good enough (or unlikely enough to be duplicated or significantly changed) to use a clean name -- or are we not supposed to be worrying about that because of namespace separation by package? I'm a little confused here, but I think it doesn't matter if our infrastructure is good enough? Isaac

On Thu, 27 Sep 2007, Björn Buckwalter wrote:
Secondly, I feel that "Dimensional" is to vague and ambiguous, in particular it could just as well refer to dimensions in the linear algebra sense as physical dimensions. I'd like a more specific and perhaps less pretentious name for the library. This is where I would appreciate some feedback as to what would be appropriate. Some suggestions are:
- Numeric.Units - Numeric.PhysicalUnits - Numeric.PhysicalDimensions - Numeric.SI - Numeric.SIUnits - Numeric.Units.Static
It's certainly a good idea to distinguish between static and dynamic implementations. Incidentally, my implementation of numbers with units uses dynamic unit checking. It is also implemented in a generic way for any unit system, but has a specialisation for SI units. Currently it does not adhere to standard top-level module names (which are these and why?) but this could be changed. I use: Number/Physical.hs Number/Physical/Read.hs Number/Physical/Show.hs Number/Physical/Unit.hs Number/Physical/UnitDatabase.hs Number/SI.hs Number/SI/Unit.hs To be compatible with your library, the module names should contain some hint to their dynamic nature. See: http://darcs.haskell.org/numericprelude/src/Number/
participants (4)
-
Ashley Yakeley
-
Björn Buckwalter
-
Henning Thielemann
-
Isaac Dupree