Commit Graph

202 Commits

Author SHA1 Message Date
Louis Dionne
a46cd6a90c [Tuto + Functor] Document parameterized gtypes and pimp Functor's docs 2015-02-24 19:54:21 -05:00
Louis Dionne
cc5764bc7d [Cheatsheet] Arguments for elem were flipped 2015-02-23 14:54:33 -05:00
Louis Dionne
a25e84cf3b [Doc] Refactor the tutorial 2015-02-22 16:50:00 -05:00
Louis Dionne
9604c9a9f6 Replace List by Sequence 2015-02-20 11:05:43 -05:00
Louis Dionne
272ffa7900 Add the MonadPlus concept 2015-02-17 15:11:07 -05:00
Louis Dionne
02c9c47510 Remove TypeList and IntegerList 2015-02-15 12:38:04 -05:00
Louis Dionne
efd5aa9624 [Documentation] Rename group-typeclasses to group-concepts 2015-02-15 11:42:42 -05:00
Louis Dionne
17d2ce584c [Integral] Rename to IntegralConstant and improve the API 2015-02-10 20:03:49 -05:00
Louis Dionne
88549c004c [IntegralConstant] Remove the concept 2015-02-10 19:18:40 -05:00
Louis Dionne
4654c6786a Split instances for foreign types 2014-12-06 16:30:16 -05:00
Louis Dionne
8756e81977 Add boost/hana/config.hpp and BOOST_HANA_*_CHECK macros. 2014-11-10 17:52:33 -05:00
Louis Dionne
0f0c2c4430 Replace when<is_valid<...>> by when_valid<...> 2014-11-07 15:41:10 -05:00
Louis Dionne
049046478e Move ASSERT macros out of the details 2014-11-04 09:43:44 -05:00
Louis Dionne
40a7456bb1 Remove outdated TODOS. 2014-10-27 17:15:59 -04:00
Louis Dionne
cc8455dd65 Use the nested hana struct to instantiate unary type classes. 2014-10-27 16:14:02 -04:00
Louis Dionne
220d92ed82 Use a nested hana struct to customize stuff inside user defined objects. 2014-10-27 15:24:14 -04:00
Louis Dionne
716ff897cc Add the Enumerable type class. 2014-10-16 20:52:29 -04:00
Louis Dionne
c184a742fb Add compile-time strings 2014-09-30 10:23:45 -04:00
Louis Dionne
3bb1bb9c6b Allow instantiating unary type classes from a data type. 2014-09-08 22:39:10 -07:00
Louis Dionne
00642be684 Add the Either data type. 2014-08-26 15:09:51 -04:00
Louis Dionne
3692a7bb81 Add the IntegralConstant type class 2014-08-18 19:26:29 -04:00
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
f2de95a841 Use detail::injection instead of a std::tuple in the tests 2014-08-16 14:25:57 -04:00
Louis Dionne
4c13c21f91 Add the IntegralDomain type class 2014-08-10 12:57:37 -04:00
Louis Dionne
f61ec22e11 Remove the Identity functor, which is now detail::Identity 2014-08-09 17:52:39 -04:00
Louis Dionne
cb9be38cf1 Add the Ring type class. 2014-08-09 09:45:33 -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
fecf7309d1 Add the Group type class 2014-08-07 17:01:22 -04:00
Louis Dionne
6c10ce440c Add the Identity functor. 2014-08-07 16:51:50 -04:00
Louis Dionne
474543ca14 Remove documentation for the laws.hpp headers of type classes.
This will be kept for internal use only.
2014-08-07 16:51:50 -04:00
Louis Dionne
b46db0bdc0 Add the Monoid type class 2014-08-07 16:51:49 -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
da8135ccec Foldable: flip the arguments of some methods 2014-08-05 19:52:44 -04:00
Louis Dionne
393cf06fb5 Tutorial: add a section on side effects 2014-08-05 14:44:02 -04:00
Louis Dionne
d4fde4f77a Documentation: refactoring and improvements in the tutorial 2014-08-04 18:44:38 -04:00
Louis Dionne
d6571e7681 Documentation: add indexes to the doxygen output 2014-07-31 18:15:27 -04:00
Louis Dionne
c382d9fca1 Tutorial: improve the section on data types 2014-07-31 16:31:56 -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
c6f0420145 Functional: pimp the documentation 2014-07-30 15:21:39 -04:00
Louis Dionne
3488fe71cb Rename groups to avoid clashes when doing references 2014-07-30 11:23:38 -04:00
Louis Dionne
8a8ff797ab Split Core into subdirectories to reduce dependencies. 2014-07-30 11:15:26 -04:00
Louis Dionne
cf9c6ab821 Reformulation in the "getting concrete" section of the tutorial
Fixes #3.
2014-07-29 11:24:01 -04:00
Louis Dionne
8e0f4e10ed Fix broken link in the tutorial. 2014-07-29 10:19:50 -04:00
Louis Dionne
41d6b75bc2 Add the product Type class and make Pair a simple data type 2014-07-28 18:35:57 -04:00
Louis Dionne
74654d6159 Tutorial: Polishing and explain the reference 2014-07-28 12:52:27 -04:00
Louis Dionne
5f7e784899 Miscellaneous and minor documentation tweaks 2014-07-27 16:57:38 -04:00
Louis Dionne
08f8e5f1f4 Tutorial: Write section on data types 2014-07-25 22:42:07 -04:00
Louis Dionne
c67ce48847 Tutorial: Add section on type classes 2014-07-24 22:53:38 -04:00
Louis Dionne
786816b391 Tutorial: Add organization section 2014-07-23 11:39:12 -04:00
Louis Dionne
aacfbfebde Tutorial: write the preface, introduction and quick start 2014-07-22 13:49:15 -04:00
Louis Dionne
3ead270cc0 Add the Record type class to adapt user defined types. 2014-07-21 13:53:27 -04:00
Louis Dionne
6c9823e176 Add the Constant data type. 2014-07-21 11:58:23 -04:00
Louis Dionne
5a00d66ad6 Add the Set data type. 2014-07-19 18:24:39 -04:00
Louis Dionne
97386dfb59 Add the Map data type. 2014-07-19 17:17:14 -04:00
Louis Dionne
74092b4bc9 Add the Searchable type class.
Remove any, all, none, find, elem and the *_of variants from Foldable
and move them into Searchable.
2014-07-19 11:44:34 -04:00
Louis Dionne
b0ba6ebb9e Add local todos. 2014-07-18 15:29:39 -04:00
Louis Dionne
40a3ef71c0 Add the Traversable type class. 2014-07-14 10:40:45 -04:00
Louis Dionne
3248004409 Move the Lazy data type from the sandbox to the library. 2014-07-12 18:11:27 -04:00
Louis Dionne
8db3203da7 Do not include ext/ in the master header.
The reason is that including the master header would then require the
user to have installed all the libraries for which we provide adaptors,
which is unreasonable.
2014-07-07 12:42:20 -04:00
Louis Dionne
5a2de2073e Reorganize and rename the adapted/ folder. 2014-07-07 12:42:20 -04:00
Louis Dionne
7cb6678d7a Adapt mpl::vector. 2014-07-07 10:20:13 -04:00
Louis Dionne
55a4964434 Adapt mpl::list. 2014-07-07 10:06:17 -04:00
Louis Dionne
39c9b1b8e2 Add the bool.hpp header. 2014-07-01 16:45:12 -04:00
Louis Dionne
8fcad90c09 Add the Orderable type class. 2014-06-26 15:17:09 -04:00
Louis Dionne
d5e215d672 Documentation: refactor and regenerate 2014-06-26 11:23:00 -04:00
Louis Dionne
08de7a9e27 Promote List to a type class. 2014-06-26 01:29:05 -04:00
Louis Dionne
52eead977e Adapt std::pair and instantiate Pair with it. 2014-06-24 21:33:08 -04:00
Louis Dionne
16d4ea0930 Add the Pair type class and data type. 2014-06-24 21:28:20 -04:00
Louis Dionne
ea37adf66b Core: rethink type classes 2014-06-23 15:37:29 -04:00
Louis Dionne
70f0e86fa7 Add missing Applicative include to master header. 2014-06-22 01:16:10 -04:00
Louis Dionne
585c0b8e76 Add the Applicative type class. 2014-06-21 18:16:56 -04:00
Louis Dionne
dfed9d39e7 Type: add lift and remove trait.hpp header 2014-06-21 14:09:08 -04:00
Louis Dionne
3f8198601c Adapt std::list. 2014-06-20 15:02:50 -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
Louis Dionne
92342e0402 Integral: harmonize with std::integral_constant 2014-06-13 23:30:04 -04:00
Louis Dionne
d951c3b594 core: document and test the type class instantiation system 2014-06-12 13:33:38 -04:00
Louis Dionne
9b1cdd81b9 Comparable: update the dispatching system 2014-06-11 16:43:10 -04:00
Louis Dionne
ac30caf7dc Comparable: improve documentation 2014-06-04 15:35:46 -04:00
Louis Dionne
50ebbfffc3 Documentation: move a couple of todos to the Doxygen doc 2014-06-04 14:15:57 -04:00
Louis Dionne
ce602dd4b4 Document a couple more components. 2014-06-02 21:52:26 -04:00
Louis Dionne
1cebe9821d Document the Functional module. 2014-06-02 21:49:35 -04:00
Louis Dionne
3d9480855e Make Typelist a transparent optimization. 2014-05-27 15:07:01 -04:00
Louis Dionne
5f616bb4f5 Add the Monad typeclass and make Type a Monad. 2014-05-27 11:01:20 -04:00
Louis Dionne
93f11124a7 Add the Maybe datatype. 2014-05-25 18:36:43 -04:00
Louis Dionne
d2f725f6fe Add Typelist; an optimized List for types. 2014-05-25 11:06:18 -04:00
Louis Dionne
88f59cf114 Move std_* to adapted/. 2014-05-24 13:28:48 -04:00
Louis Dionne
d1133c917b Split type and traits into two headers. 2014-05-24 12:39:12 -04:00
Louis Dionne
c0e005672e Adapt std::integer_sequence. 2014-05-21 19:22:01 -04:00
Louis Dionne
6c87bb8d93 Adapt std::tuple. 2014-05-21 18:37:56 -04:00
Louis Dionne
0fb1d96522 Adapt std::array. 2014-05-19 13:01:01 -04:00
Louis Dionne
8c7cdf7e02 Add functional utilities. 2014-05-19 12:15:44 -04:00
Louis Dionne
e511cff396 Add logical operations. 2014-05-18 18:21:33 -04:00
Louis Dionne
d6819d4dc6 Add the Comparable type class. 2014-05-18 17:57:01 -04:00
Louis Dionne
02b62cb8e7 Add if_. 2014-05-17 23:53:24 -04:00
Louis Dionne
49a15742a5 Add default operations to Iterable. 2014-05-16 08:46:05 -06:00
Louis Dionne
edb09990fc Add hana::Type. 2014-05-16 08:26:56 -06:00
Louis Dionne
6305321da3 Add Foldable. 2014-05-16 08:17:24 -06:00
Louis Dionne
61f73d4687 Add Range and List. 2014-05-16 07:56:09 -06:00
Louis Dionne
d732f5511b Add hana::Integral. 2014-05-15 16:52:55 -06:00