Louis Dionne
8a3efe60fe
StdTuple: Add note about redundant Applicative instance.
2014-07-14 20:45:14 -04:00
Louis Dionne
b19c801958
Lazy: refactor and make lazy more intuitive.
2014-07-14 20:45:14 -04:00
Louis Dionne
41c80e1d44
Applicative: make ap variadic.
2014-07-14 20:45:14 -04:00
Louis Dionne
de2959db74
Monad: add >> operator as an equivalent to bind.
2014-07-14 20:45:06 -04:00
Louis Dionne
40a3ef71c0
Add the Traversable type class.
2014-07-14 10:40:45 -04:00
Louis Dionne
af8b95e41f
Add a default mcd to minimal data types.
2014-07-14 10:09:17 -04:00
Louis Dionne
e1c3564c08
Remove todos in minimal::Monad.
2014-07-13 22:48:32 -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
87224fba92
Reorganize Monad unit tests.
2014-07-13 19:47:07 -04:00
Louis Dionne
f998098500
Reorganize Iterable unit tests.
2014-07-13 19:47:07 -04:00
Louis Dionne
c8530698c8
Core: Do not always force including core.hpp to get operators::enable
2014-07-13 19:47:06 -04:00
Louis Dionne
e0a981d58a
Reorganize Functor unit tests.
2014-07-13 19:47:06 -04:00
Louis Dionne
a0945bc6de
Reorganize Foldable unit tests.
2014-07-13 19:47:06 -04:00
Louis Dionne
cb69c60031
Reorganize Comparable unit tests.
2014-07-13 19:47:06 -04:00
Louis Dionne
cf531e560e
List: use a more efficient right fold.
2014-07-13 11:42:03 -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
ee90a1c898
Sandbox: sketch Traversable; the current data type system is not powerful enough to express this type class. ouch
2014-07-12 17:05:04 -04:00
Louis Dionne
3889cbe0b8
ext/boost/fusion: use Boost.Fusion algorithms whenever possible.
2014-07-12 15:15:49 -04:00
Louis Dionne
9169b3f188
Type: add rationale for trait_ and trait not being metafunction classes.
2014-07-08 11:18:56 -04:00
Louis Dionne
53a4d872db
Adapt boost::tuple.
2014-07-08 11:03:16 -04:00
Louis Dionne
13b330fa41
Move mpl and fusion from ext/ to ext/boost/
2014-07-08 10:13:02 -04:00
Louis Dionne
41eefb2d29
Remove meaningless or redundant (implied) todos.
2014-07-07 21:33:07 -04:00
Louis Dionne
48bb45394f
Type: add a not-too-dirty way to optimize metafunction classes.
2014-07-07 21:33:06 -04:00
Louis Dionne
573c863c49
Type: make metafunction, metafunction_class and template_ valid metafunction classes.
2014-07-07 20:05:11 -04:00
Louis Dionne
eecdf93453
Adapt non-associative ForwardSequences from Boost.Fusion.
2014-07-07 18:17:36 -04:00
Louis Dionne
7c6d9dd5bc
Iterable: add the for_each method
2014-07-07 15:45:31 -04:00
Louis Dionne
0db5c33548
Add laws for Comparable.
2014-07-07 13:56:51 -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
b89821bed4
Sandbox: Add a Lazy datatype which is a Monad.
2014-07-02 15:43:32 -04:00
Louis Dionne
ad60989660
Sandbox: add a basic Set data structure
2014-07-02 13:41:22 -04:00
Louis Dionne
ffbbfc3528
Sandbox: rename Map to HashMap and create a naive Map
2014-07-02 13:10:56 -04:00
Louis Dionne
f0e8c210ab
Sandbox: add thoughts about MonadZero, Pattern and Boolean
2014-07-02 11:50:34 -04:00
Louis Dionne
5efa23003f
Rename join to flatten.
2014-07-01 22:04:56 -04:00
Louis Dionne
faf609157a
Remove circular dependencies.
2014-07-01 20:41:04 -04:00
Louis Dionne
ddc0587689
Iterable: remove comparison between arbitrary Iterables
2014-07-01 18:01:42 -04:00
Louis Dionne
70a6c913b7
Type: refactor the interface
2014-07-01 17:32:32 -04:00
Louis Dionne
39c9b1b8e2
Add the bool.hpp header.
2014-07-01 16:45:12 -04:00
Louis Dionne
a2ec0ee117
Core: improve instantiates's implementation and decapitalize Core module
2014-07-01 16:22:01 -04:00
Louis Dionne
96a2bb0a7f
Core: allow instances to be explicitly disabled
2014-07-01 10:51:42 -04:00
Louis Dionne
6a984f3d52
Integral: Remove redundant operators
2014-06-30 16:21:08 -04:00
Louis Dionne
b845aa71b8
Orderable: add a default instance
2014-06-30 16:21:08 -04:00
Louis Dionne
13ba57bd86
Logical: remove obsolete workaround
2014-06-30 15:03:01 -04:00
Louis Dionne
6c1eb8b1f8
Explicitly convert Integrals to their underlying type in constexpr contexts.
2014-06-30 15:02:06 -04:00
Louis Dionne
85877825f8
Replace defaults for Comparable by a smarter predicated instance.
2014-06-30 14:22:42 -04:00
Louis Dionne
af30809dbd
Use code instead of Latex in Comparable laws.
2014-06-30 10:38:21 -04:00