Commit Graph

82 Commits

Author SHA1 Message Date
Louis Dionne
307d3d0ec8 Huge reorganization and refactoring.
- Split type class instances into separate files
- Instances provided automatically by a type class are actually MCDs
- Test each instance in a single file, not one file per method
- Refactor the operator system to fix the ADL-related bug.
2014-08-18 19:26:29 -04:00
Louis Dionne
2b76377f91 Core: replace when_valid by when + is_valid 2014-08-07 22:38:54 -04:00
Louis Dionne
4df8c27cbb Finer grained use of operators 2014-08-07 21:05:38 -04:00
Louis Dionne
b6cef58ca1 Core: add are to make it prettier when there are many data types. 2014-08-05 19:52:44 -04:00
Louis Dionne
b4cfc58e72 Searchable: flip the order of the arguments of the methods 2014-08-05 16:46:56 -04:00
Louis Dionne
f992faa91e Remove std::list adaptor; Iterable requires a Constant is_empty. 2014-08-05 12:14:40 -04:00
Louis Dionne
d132db0ebf Use finer grained assertions acknowledging Constants 2014-08-05 10:37:54 -04:00
Louis Dionne
c85db2c4d2 Tutorial: make examples compilable 2014-07-31 15:09:34 -04:00
Louis Dionne
e9dfdeb57b Core: merge instantiates into is_a for the same functionality 2014-07-31 13:00:57 -04:00
Louis Dionne
b61dfc00a6 Core: document header structure and use when<> in datatype<> 2014-07-31 11:41:42 -04:00
Louis Dionne
8a8ff797ab Split Core into subdirectories to reduce dependencies. 2014-07-30 11:15:26 -04:00
Louis Dionne
7e8f109d7f Modularize List and add a minimal instance 2014-07-16 16:26:23 -04:00
Louis Dionne
b3f9a3d09a Modularize Logical and remove nullary and_/or_ 2014-07-16 16:26:23 -04:00
Louis Dionne
b0b7b09736 Modularize Iterable 2014-07-16 16:26:23 -04:00
Louis Dionne
20814674c0 Modularize Monad 2014-07-16 16:26:22 -04:00
Louis Dionne
c8e8d88753 Modularize Comparable 2014-07-16 16:26:22 -04:00
Louis Dionne
a316800bea convert.cpp example: Add missing Comparable mcd 2014-07-15 11:33:49 -04:00
Louis Dionne
a5cab82de8 Core: make default_instance dependent on the type class arguments 2014-07-13 22:38:52 -04:00
Louis Dionne
49d9b40fc1 Core: Allow parametric data types and predicated instances to cohabit. 2014-07-13 22:06:49 -04:00
Louis Dionne
d65d47ba28 Core: use BOOST_HANA_TYPECLASS macro to create type classes. 2014-07-13 19:49:24 -04:00
Louis Dionne
5a2de2073e Reorganize and rename the adapted/ folder. 2014-07-07 12:42:20 -04:00
Louis Dionne
39c9b1b8e2 Add the bool.hpp header. 2014-07-01 16:45:12 -04:00
Louis Dionne
ae8c12ce17 Remove useless include. 2014-07-01 10:58:01 -04:00
Louis Dionne
96a2bb0a7f Core: allow instances to be explicitly disabled 2014-07-01 10:51:42 -04:00
Louis Dionne
85877825f8 Replace defaults for Comparable by a smarter predicated instance. 2014-06-30 14:22:42 -04:00
Louis Dionne
fb75a6da25 Fix TODO in example/core/typeclass 2014-06-26 13:48:28 -04:00
Louis Dionne
379f30d981 Core: fix problems with typeclass specialization 2014-06-25 23:55:29 -04:00
Louis Dionne
ea37adf66b Core: rethink type classes 2014-06-23 15:37:29 -04:00
Louis Dionne
09b2fff78e Make StdTuple a Monad. 2014-06-19 16:13:18 -04:00
Louis Dionne
c7a7aa4c89 Core: add is_a and instantiates 2014-06-19 12:19:51 -04:00
Louis Dionne
7e32f59837 core: Add conversion between data types 2014-06-18 20:23:53 -04:00
Louis Dionne
4043adb494 Core: document and don't require core.hpp for instance and defaults 2014-06-18 16:13:54 -04:00