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
Louis Dionne
1ab0174907
Use named operators consistently.
2014-06-30 10:17:22 -04:00
Louis Dionne
c255a2f418
Integral: instantiate Orderable
2014-06-29 15:57:33 -04:00
Louis Dionne
f2a063f4a1
Type: remove lambdas to workaround clang bugs.
2014-06-29 15:26:51 -04:00
Louis Dionne
f6d12dcbce
Add note about unit testing List instances.
2014-06-26 15:42:23 -04:00
Louis Dionne
8fcad90c09
Add the Orderable type class.
2014-06-26 15:17:09 -04:00
Louis Dionne
1cc9387998
Add detail::wrap.
2014-06-26 12:51:26 -04:00
Louis Dionne
de4864134e
StdArray: instantiate List
2014-06-26 12:34:37 -04:00
Louis Dionne
9ce785234c
List: instantiate Comparable
2014-06-26 12:15:34 -04:00
Louis Dionne
71be3a9949
Remove the foldable_from_iterable horror.
2014-06-26 11:40:55 -04:00
Louis Dionne
d5e215d672
Documentation: refactor and regenerate
2014-06-26 11:23:00 -04:00
Louis Dionne
44aa641599
List: remove list_t and list_c
2014-06-26 11:01:44 -04:00
Louis Dionne
08de7a9e27
Promote List to a type class.
2014-06-26 01:29:05 -04:00
Louis Dionne
541ad8b341
Maybe: instantiate Foldable
2014-06-26 01:12:37 -04:00
Louis Dionne
379f30d981
Core: fix problems with typeclass specialization
2014-06-25 23:55:29 -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
1a41064f04
Functor: add fill
2014-06-24 13:38:54 -04:00
Louis Dionne
5fbdf86311
Iterable: use eval_if instead of if_ in ComparableInstance
2014-06-23 17:03:06 -04:00