Edward Diener
Edward Diener
writes: [...]
Please consider also that you are using terminology in the present documentation which does not relate to C++ very well, although it may relate to Haskell for all I know. If you rework the documentation
On 7/29/2014 9:38 PM, Louis Dionne wrote: please
use C++ terminology for things. As an example you referred to Type<T> as an object when in C++ it is a class.
I am confused; `Type<T>` does not exist in Hana, so I doubt I mention it anywhere unless I made an error. There's `type<T>`, which is a variable template, and `Type`, which is a C++ struct.
Yes it is 'type<t>' and not 'Type<t>'. But...
"First, type is a variable template, and type<T> is an object representing the C++ type T."
The syntax 'type<T>' normally means a class in C++.
As Tongari points out correctly, `type<T>` is a variable template, as in the new feature in C++14. Specifically, it is declared as: template <typename T> constexpr unspecified type{}; Then, `type<T>` is an object equivalent to `unspecified{}`. Perhaps this was the cause of your confusion?
You also refer to type classes and data classes but C++ has no specific meaning for either of those terms.
What did people say when they first heard about: - Proto transforms - MPL metafunctions / metafunction classes - MPL/Fusion tags - any domain-specific term introduced in a library (Spirit has a lot of them)
Surely C++ had no specific meaning for any of those terms before they were introduced. With each library comes some terminology, and "type class" and "data type" are just that; new concepts for which names had to be chosen.
That being said, type classes feel like C++ concepts and data types feel like Fusion/MPL tags, so I'll seriously consider renaming them to that if it can make people happier. I'm a bit worried about renaming "type classes" to "concepts" though, as it could lead to confusion. What do you think?
I have no objection what you call them. I just felt that you should explain them as thoroughly as you feel possible ( remember you may know what you have designed but to others this is new ground ) before examples and not after.
I'll see if there are some places where I throw some code without enough explanation/context and try to make it clearer.
[...]
General advice. It mainly reflects that your method of explaining the conceptual elements of your syntax is very difficult for me, but may be welcomed by most others. I am just mentally incapable of understanding syntactical examples before I understand thoroughly the conceptual elements which the example is about.
I will reread the doc again to see if I can get anywhere. Thanks for your efforts !
Give me a couple of days to work on what has been discussed in the last days, and then give it a shot. Thank you a lot for your criticism, it is much appreciated. Louis -- View this message in context: http://boost.2283326.n4.nabble.com/Re-GSoC-Boost-Hana-Formal-review-request-... Sent from the Boost - Dev mailing list archive at Nabble.com.