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