Louis Dionne
3bb1bb9c6b
Allow instantiating unary type classes from a data type.
2014-09-08 22:39:10 -07:00
Louis Dionne
80763053b3
Initialize methods with constexpr whenever possible.
2014-09-07 10:01:57 -07:00
Louis Dionne
0065ced91d
Add operator[] for Tuple and Range.
2014-09-05 17:02:50 -04:00
Louis Dionne
444ffa8d48
Improve the documentation for IntegralConstant
2014-09-03 11:06:46 -04:00
Louis Dionne
3da09cc73e
Core: is_a also allows checking for data types
2014-09-03 09:21:59 -04:00
Louis Dionne
943c59c0a1
Refactor benchmarks.
2014-09-02 13:21:51 -04:00
Louis Dionne
2d10fb461a
Use minimal includes in unit tests.
2014-09-01 18:14:55 -04:00
Louis Dionne
d323c940d3
List: fix the MCD, which used Searchable
2014-09-01 10:02:45 -04:00
Louis Dionne
5d3ae825e5
StdTuple: Fix missing includes
2014-09-01 10:02:45 -04:00
Louis Dionne
980cda48ef
Detail: add variadic::drop_into
2014-09-01 10:02:45 -04:00
Louis Dionne
118ca61066
Range: optimize the Foldable instance and fix includes
2014-08-31 20:27:23 -04:00
Louis Dionne
faef709431
Minor improvements:
...
- Test that detail::variadic::at can handle const objects
- Add perfect forwarding in functional/id
- Sandbox: experiment with a std compatible tuple
2014-08-31 10:16:03 -04:00
Louis Dionne
028e672822
Refactor examples and fix broken links
2014-08-30 17:18:26 -04:00
Louis Dionne
af0e2444ed
Set: fix the Comparable instance so it works with runtime keys
2014-08-30 14:25:56 -04:00
Louis Dionne
fadb7a2af0
Core: document how operators work.
2014-08-29 11:18:26 -04:00
Louis Dionne
26af39f3d9
Flip the arguments of several methods.
...
Flipped:
- traverse
- fmap, adjust, fill, replace
- drop_while, drop_until
- take_while, take_until
2014-08-29 10:24:19 -04:00
Louis Dionne
aceed6a29a
Tuple: specialize make
so it is more optimized
2014-08-28 12:53:33 -04:00
Louis Dionne
919bc2f465
Move for_each to Foldable and optimize it with unpack
2014-08-28 12:53:33 -04:00
Louis Dionne
d6b765f794
Add variadic::reverse_apply
2014-08-28 10:47:35 -04:00
Louis Dionne
00642be684
Add the Either
data type.
2014-08-26 15:09:51 -04:00
Louis Dionne
1e6d390626
Add slice_c
, take_c
, drop_c
and at_c
shorthands.
2014-08-25 17:45:10 -04:00
Louis Dionne
81a242c1f1
Replace into
by make
in the List type class.
2014-08-25 16:48:02 -04:00
Louis Dionne
cbeb6ae983
Core: add the make function
2014-08-25 12:33:49 -04:00
Louis Dionne
3147d9b5d5
Refactor and fix broken examples.
2014-08-25 12:33:49 -04:00
Louis Dionne
04c3fffbd8
Foreign: instantiate Foldable for builtin arrays
2014-08-25 12:33:48 -04:00
Louis Dionne
7cc729bd05
List: add the slice method
2014-08-25 12:33:48 -04:00
Louis Dionne
1463014414
Core: Using when-able metafunctions with too many arguments is an error.
2014-08-25 12:33:48 -04:00
Louis Dionne
ae8442482d
Do not bring operators in the hana namespace automatically.
...
This caused an issue with types defined in the hana namespace and
type class instances for foreign types. For example, doing
`Integral{} == Integral{}` would hit the recursion depth limit
because `Integral` was defined in `boost::hana`, so ADL found
`boost::hana::operators::operator==` and we recursed in the foreign
instance for `Comparable`.
2014-08-25 12:33:48 -04:00
Louis Dionne
c4e4313c8e
Remove the Foreign data type.
...
The Foreign data type made stuff like `to<int>` become
`to<Foreign<int>>`, which is not as clean.
2014-08-25 12:33:48 -04:00
Louis Dionne
be808cca69
Re-add unit tests for Fusion adaptors
2014-08-25 12:33:48 -04:00
Louis Dionne
24d8f1f591
Workaround bugs in libc++ when adapting std::tuple.
2014-08-25 12:33:47 -04:00
Louis Dionne
084fe9582d
Re-add MPL vector.
2014-08-18 19:26:29 -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
7894be3e2f
Searchable: add the subset
method
2014-08-16 14:25:58 -04:00
Louis Dionne
04ba0bc426
Core: use when
instead of enable_if
in convert
2014-08-16 14:25:58 -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
ba5a74b81f
Record: workaround weird ICE in LLVM codegen after adding perfect forwarding
2014-08-16 14:25:52 -04:00
Louis Dionne
828fffdaa4
Split the type traits emulation.
2014-08-10 21:08:43 -04:00
Louis Dionne
9823128862
Add support for perfect forwarding in type class methods
2014-08-10 20:54:55 -04:00
Louis Dionne
a67c592a1f
Fusion: instantiate Searchable
2014-08-10 16:46:09 -04:00
Louis Dionne
1d986e4c04
Refactor the unit tests and examples
...
In particular, merge some unit tests and examples to reduce compilation
times.
2014-08-10 15:42:03 -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
356ee03483
Refactor the unit tests and remove some minimal instances
2014-08-09 17:49:16 -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
3d5acb2080
Remove old scattered operations on variadics
2014-08-07 17:56:30 -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
4a3f458f71
TypeList: use Foldable::unpack_mcd
2014-08-06 22:27:53 -04:00
Louis Dionne
af36f99f5d
Foldable: add unpack_mcd
2014-08-06 18:17:47 -04:00
Louis Dionne
c7af842ea5
Detail: refactor variadic folds and at
2014-08-06 17:59:24 -04:00
Louis Dionne
d56bb224d3
Integral: consider specifying its type
2014-08-06 11:10:47 -04:00
Louis Dionne
82bc4a38da
List: add span
, group
and group_by
2014-08-06 11:08:10 -04:00
Louis Dionne
2f16a364af
Comparable: add the comparing
helper function
2014-08-06 11:08:10 -04:00
Louis Dionne
64e160f9ab
Searchable: add the in
utility function
2014-08-06 08:38:45 -04:00
Louis Dionne
1d031b4556
Functional: add infix
and use it to implement on
2014-08-05 22:49:18 -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
2900faec86
List: flip the order of arguments of some methods
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
7bd5afd95f
Ext: show all the includes in the examples, because some includes are tricky
2014-08-05 15:06:56 -04:00
Louis Dionne
875a13a02f
Fix wrong include guard
2014-08-05 14:50:12 -04:00
Louis Dionne
393cf06fb5
Tutorial: add a section on side effects
2014-08-05 14:44:02 -04:00
Louis Dionne
a7b38d3fff
Range: add the range_c constructor
2014-08-05 14:44:02 -04:00
Louis Dionne
f5bc67709e
Add master headers for ext/ components
2014-08-05 14:01:46 -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
7a00af4755
Fix typo in documentation
2014-08-05 11:47:47 -04:00
Louis Dionne
d132db0ebf
Use finer grained assertions acknowledging Constants
2014-08-05 10:37:54 -04:00
Louis Dionne
d4fde4f77a
Documentation: refactoring and improvements in the tutorial
2014-08-04 18:44:38 -04:00
Louis Dionne
b46460842b
Constant: consider renaming to UniversalConstant
2014-08-04 18:44:38 -04:00
Louis Dionne
b2e8017de8
Integral: make equivalent to a corresponding std::integral_constant
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
8c683c6e08
Adapt MPL IntegralConstants with Constant.
2014-07-30 19:00:06 -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
6c852e957e
Make Constant a type class
2014-07-30 08:55:07 -04:00
Louis Dionne
f66871ec2c
MPLVector: Document and instantiate List.
2014-07-29 15:44:45 -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
aaf8897cb8
Searchable: rename find_mcd
to mcd
2014-07-29 10:14:01 -04:00
Louis Dionne
36edeacbc8
Maybe: refactor the documentation and add only_when
2014-07-29 10:09:06 -04:00
Louis Dionne
9199f53ae2
Reintroduce foldl optimizations for TypeList.
2014-07-29 01:26:18 -04:00
Louis Dionne
4fd8b27635
Detail: Add missing constexpr in variadic_unrolled left fold
2014-07-28 22:35:27 -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
aafd11ed82
Remove redundant examples introduced when refactoring the docs.
2014-07-27 16:57:38 -04:00
Louis Dionne
5f7e784899
Miscellaneous and minor documentation tweaks
2014-07-27 16:57:38 -04:00
Louis Dionne
4dfdbba0c6
List: refactor documentation
2014-07-27 16:57:38 -04:00
Louis Dionne
fdc5f75d5e
Pair: refactor documentation
2014-07-27 16:57:38 -04:00
Louis Dionne
527fe09dda
Traversable: refactor documentation
2014-07-27 16:57:38 -04:00
Louis Dionne
9ca69bca71
Type: revert commit making metafunction & al SFINAE friendly
2014-07-27 16:57:37 -04:00
Louis Dionne
02dfa4d012
Detail: First argument to dependent_on is now a boolean
2014-07-27 16:57:37 -04:00
Louis Dionne
98189f9d4b
Fix definition of BOOST_HANA_STATIC_ASSERT when generating documentation
2014-07-27 16:57:37 -04:00
Louis Dionne
308368291f
Searchable: refactor the documentation
2014-07-27 16:57:37 -04:00
Louis Dionne
47797a7f0d
Monad: refactor documentation
2014-07-27 16:57:37 -04:00
Louis Dionne
d9c1d44992
Type: make metafunction
and friends SFINAE friendly
2014-07-27 16:57:37 -04:00
Louis Dionne
8e91303552
Logical: refactor documentation
2014-07-27 16:57:37 -04:00
Louis Dionne
14f890b4b2
Iterable: refactor docs and make FoldableInstance a detail of implementation
2014-07-27 16:57:36 -04:00
Louis Dionne
c37347943e
Functor: refactor documentation
2014-07-27 16:57:36 -04:00
Louis Dionne
184bf94382
Foldable: refactor the documentation
2014-07-27 16:57:36 -04:00
Louis Dionne
dab794edb1
Orderable: Refactor docs and add the ordering
utility
2014-07-27 16:57:36 -04:00
Louis Dionne
eab9434945
Comparable: refactor documentation
2014-07-27 16:11:59 -04:00
Louis Dionne
05d80cb123
Applicative: refactor documentation
2014-07-27 16:11:59 -04:00
Louis Dionne
08f8e5f1f4
Tutorial: Write section on data types
2014-07-25 22:42:07 -04:00
Louis Dionne
e5be3a481a
List: add some benchmark plots to the documentation
2014-07-25 09:49:02 -04:00
Louis Dionne
c67ce48847
Tutorial: Add section on type classes
2014-07-24 22:53:38 -04:00
Louis Dionne
1b4cfc9191
List: add the unzip
method
2014-07-24 14:16:09 -04:00
Louis Dionne
0fb8990a13
List: add the unfoldr
and unfoldl
methods
2014-07-24 13:24:45 -04:00
Louis Dionne
3e75ad9159
Integral: Allow comparison and ordering with any arithmetic type
2014-07-24 11:34:10 -04:00
Louis Dionne
c42aeba92c
Monad: add the tap
method
2014-07-24 10:15:06 -04:00
Louis Dionne
a0133f546e
Monad: replace >> by |
2014-07-24 09:43:16 -04:00
Louis Dionne
a0acbacc84
Monad: add the then
method to sequence monadic actions
2014-07-24 09:26:20 -04:00
Louis Dionne
7d5243a312
Type: fix bug in construction and force explicit use of intializer_list
2014-07-24 08:48:38 -04:00
Louis Dionne
c42daba4a2
Searchable: document keys and values
2014-07-23 20:46:51 -04:00
Louis Dionne
95d227cd57
Lazy: allow calls of the form lazy(f)().
2014-07-23 20:43:34 -04:00
Louis Dionne
310b44666d
Comparable: make objects of different data types compare uneual by default
2014-07-23 20:11:00 -04:00
Louis Dionne
a2f90528cc
Typeclasses: fix dependency on mcds for builtin instances
2014-07-23 19:00:46 -04:00
Louis Dionne
83dca441bb
Typeclasses: move provided instances for non-builtin types out of the forward decls.
2014-07-23 16:13:40 -04:00
Louis Dionne
786816b391
Tutorial: Add organization section
2014-07-23 11:39:12 -04:00
Louis Dionne
b69029e9bf
Map: document issue with mixed Type/Integral keys
2014-07-22 17:19:42 -04:00
Louis Dionne
aacfbfebde
Tutorial: write the preface, introduction and quick start
2014-07-22 13:49:15 -04:00
Louis Dionne
c816fbe112
Remove almost all dependencies on the standard library.
2014-07-21 21:07:14 -04:00
Louis Dionne
cc6ee9370b
Remove empty laws; I'll add them if I actually have laws to check
2014-07-21 15:47:20 -04:00
Louis Dionne
aba2bae382
Record: Fix ordering issues by using a list of pairs instead of a map
2014-07-21 15:47:12 -04:00
Louis Dionne
689b6c7118
List: add error message to static_assert in concat
2014-07-21 15:09:15 -04:00
Louis Dionne
d0a83b8d30
Functional: Allow 2 arguments or more in compose
2014-07-21 14:57:19 -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
d24b8e21ae
List: add todo
2014-07-21 11:15:04 -04:00
Louis Dionne
653504ebe5
Remove more dependencies on <cstddef>
2014-07-21 11:08:26 -04:00
Louis Dionne
22a26fb9b7
Integral: remove dependency on <cstddef> and move integral struct out of operators namespace
2014-07-21 11:04:57 -04:00
Louis Dionne
15af56943a
Core: Workaround Clang bug in is_a and is_an
2014-07-21 10:45:21 -04:00
Louis Dionne
6d150cf5ee
List: add scanr, scanl, scanr1 and scanl1
2014-07-20 14:25:10 -04:00
Louis Dionne
3ccf6f4d62
Searchable: rename find_key to lookup
2014-07-19 18:58:14 -04:00
Louis Dionne
5a00d66ad6
Add the Set data type.
2014-07-19 18:24:39 -04:00
Louis Dionne
d1cc466342
Map: add missing include
2014-07-19 17:55:34 -04:00
Louis Dionne
97386dfb59
Add the Map data type.
2014-07-19 17:17:14 -04:00
Louis Dionne
61576fc1ae
Functor: improve laws and check them widely
2014-07-19 15:08:58 -04:00
Louis Dionne
120410868e
Searchable: add the find_key method
2014-07-19 13:42:46 -04:00
Louis Dionne
888e84f4e5
Foldable: Remove lazy_foldr and lazy_foldl
2014-07-19 13:29:41 -04:00
Louis Dionne
e051255009
List: instantiate Searchable
2014-07-19 11:44:34 -04:00
Louis Dionne
aaea302ea9
Maybe: instantiate Searchable
2014-07-19 11:44:34 -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
0010b72a2e
Sandbox: add SearchableSet
2014-07-18 14:50:55 -04:00
Louis Dionne
1d2bda9ef1
Fix ambiguities when defining stuff in the operators namespace
2014-07-17 18:30:40 -04:00
Louis Dionne
e95882b790
Start moving the sandbox out of detail/
2014-07-17 16:19:38 -04:00
Louis Dionne
3a7944a6de
Check laws for Orderable
2014-07-17 12:00:30 -04:00
Louis Dionne
2eb9867ec5
Comparable: Check laws widely
2014-07-16 17:12:19 -04:00
Louis Dionne
b6e46748df
Add missing foldable_instance includes.
2014-07-16 16:26:23 -04:00
Louis Dionne
7e8f109d7f
Modularize List and add a minimal instance
2014-07-16 16:26:23 -04:00
Louis Dionne
408a5c7db5
Modularize Pair
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
674a889347
Modularize Foldable
2014-07-16 16:26:23 -04:00
Louis Dionne
8492b8eea4
Modularize Orderable
2014-07-16 16:26:22 -04:00
Louis Dionne
3c5aa0aceb
Modularize Traversable
2014-07-16 16:26:22 -04:00
Louis Dionne
20814674c0
Modularize Monad
2014-07-16 16:26:22 -04:00
Louis Dionne
489353c0cc
Modularize Applicative
2014-07-16 16:26:22 -04:00
Louis Dionne
83bd276b3e
Modularize Functor
2014-07-16 16:26:22 -04:00
Louis Dionne
c8e8d88753
Modularize Comparable
2014-07-16 16:26:22 -04:00
Louis Dionne
7e9ce05d5b
Add the detail::dependent_on utility.
2014-07-15 11:34:23 -04:00
Louis Dionne
8b1a689a5c
Core: use variadic templates instead of an unspecified type in instance
2014-07-15 10:45:54 -04:00
Louis Dionne
5d68bcdf45
Iterable: Remove the provided Comparable instance
2014-07-15 10:30:50 -04:00
Louis Dionne
c5e3352180
Core: workaround an assertion in Clang with to
being a lambda
2014-07-15 10:28:44 -04:00
Louis Dionne
86c0d427a0
StdIntegerSequence: improve the Comparable instance.
2014-07-15 10:05:30 -04:00
Louis Dionne
13b50b5a72
Remove empty instances.
2014-07-14 20:45:14 -04:00
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
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
Louis Dionne
ea37adf66b
Core: rethink type classes
2014-06-23 15:37:29 -04:00
Louis Dionne
99748a3566
Functor: fix typos
2014-06-22 13:17:35 -04:00
Louis Dionne
5ba2f9abb9
Applicative: rename unit to lift
2014-06-22 10:51:53 -04:00
Louis Dionne
159dbaecf6
Type: improve support for different metafunctions and rename lift
2014-06-22 10:31:10 -04:00
Louis Dionne
70f0e86fa7
Add missing Applicative include to master header.
2014-06-22 01:16:10 -04:00
Louis Dionne
fa98685327
Move unit from Monad to Applicative and remove pure.
2014-06-21 19:29:28 -04:00
Louis Dionne
7440fd0c5e
Applicative: add Maybe and StdTuple instances
2014-06-21 18:56:33 -04:00
Louis Dionne
585c0b8e76
Add the Applicative type class.
2014-06-21 18:16:56 -04:00
Louis Dionne
09fc489963
sandbox: add an implementation of repeat
2014-06-21 15:10:06 -04:00
Louis Dionne
dfed9d39e7
Type: add lift and remove trait.hpp header
2014-06-21 14:09:08 -04:00
Louis Dionne
7b7bbd2290
Logical: add not_
2014-06-21 12:39:19 -04:00
Louis Dionne
13e3bf02f6
Core: fix bug with datatype and inheritance
2014-06-21 11:28:15 -04:00
Louis Dionne
56f74519fe
Functor: add replace and adjust
2014-06-20 22:54:46 -04:00
Louis Dionne
0a09ddaa97
Foldable: add the elem method
2014-06-20 21:35:58 -04:00
Louis Dionne
2c1bb3a607
sandbox: add a naive and incomplete map implementation
2014-06-20 20:53:33 -04:00
Louis Dionne
3c31001786
Range: remove impossible todo item
2014-06-20 16:55:57 -04:00
Louis Dionne
3f8198601c
Adapt std::list.
2014-06-20 15:02:50 -04:00
Louis Dionne
92d28ac0b0
Adapted: Fix include guards
2014-06-20 14:30:02 -04:00
Louis Dionne
09b2fff78e
Make StdTuple a Monad.
2014-06-19 16:13:18 -04:00
Louis Dionne
56a8a50de2
sandbox: add lazy
2014-06-19 15:33:00 -04:00
Louis Dionne
c8ef9d4d47
Core: do not include type_traits
2014-06-19 12:34:07 -04:00
Louis Dionne
c7a7aa4c89
Core: add is_a and instantiates
2014-06-19 12:19:51 -04:00
Louis Dionne
6cfe3ac1b9
Functional: add function call and array subscript to placeholders
2014-06-19 11:56:24 -04:00
Louis Dionne
7e32f59837
core: Add conversion between data types
2014-06-18 20:23:53 -04:00
Louis Dionne
9e06246a67
Comparable: add unit tests for the mcds
2014-06-18 16:51:48 -04:00
Louis Dionne
848ee2a978
Maybe: minor refactoring
2014-06-18 16:35:55 -04:00
Louis Dionne
d6dbd5aa37
Core: slightly improve the performance of datatype<>
2014-06-18 16:28:02 -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
2b65b95cd5
Functor: documentation style revamp
2014-06-18 14:47:15 -04:00
Louis Dionne
cd37845ce2
Range: convert Integrals to their underlying type explicitly
2014-06-18 14:46:45 -04:00
Louis Dionne
42bb091e71
Foldable: reduce the mcd, steal find from Iterable and improve tests
2014-06-18 13:37:34 -04:00
Louis Dionne
390cc968a3
Integral: make integral<T, n> equivalent to true_ for n >= 1 in a boolean context
2014-06-18 12:22:21 -04:00
Louis Dionne
061ab74465
Traits: convert Integrals to their underlying integer explicitly
2014-06-18 10:51:41 -04:00
Louis Dionne
f69a799886
List: refactor and use eval_if more consistently
2014-06-18 10:47:37 -04:00
Louis Dionne
db9a37c6e4
Monad: test the minimal complete definitions
2014-06-18 10:36:55 -04:00
Louis Dionne
b185b652d7
Type: minor refactoring
2014-06-18 10:24:20 -04:00
Louis Dionne
9498f34c3d
Use c-style variadics in at_index::overload_resolution to reduce instantiations.
2014-06-18 10:06:20 -04:00
Louis Dionne
874c28eade
Functional: refactor to reduce coupling
2014-06-18 10:06:19 -04:00
Louis Dionne
fd17244c4c
Core: document bug with data type retrieval
2014-06-16 08:48:33 -04:00
Louis Dionne
d41e17b12b
Type: make type<> more compiler-friendly
2014-06-16 08:45:27 -04:00
Louis Dionne
ee9681f7aa
Minor ungrouped improvements and bug fixes.
2014-06-16 08:17:08 -04:00
Louis Dionne
8124e7e097
Iterable: use eval_if in some places
2014-06-15 15:32:30 -04:00
Louis Dionne
10a050c854
Logical: add conservative eval_if
2014-06-15 15:13:57 -04:00
Louis Dionne
90c9e64755
List: allow 0 arguments in zip_with and sort methods in (mostly) alphabetical order
2014-06-15 11:00:33 -04:00
Louis Dionne
56baf71826
sandbox: remove TODOs in array
2014-06-15 10:18:14 -04:00
Louis Dionne
8e1d12171a
Make Logical a type class
2014-06-14 12:49:06 -04:00
Louis Dionne
92342e0402
Integral: harmonize with std::integral_constant
2014-06-13 23:30:04 -04:00
Louis Dionne
77c925d239
Add examples in Foldable and add the sizeof_ method
2014-06-13 22:16:12 -04:00
Louis Dionne
5019effa3f
List: "partial ordering" -> "strict weak ordering" in sort
2014-06-13 20:26:09 -04:00
Louis Dionne
28e54f6ee9
List: reimplement partition, document sort_by and add permutations
2014-06-13 20:24:14 -04:00
Louis Dionne
2d0d4f42df
Use internal enable_if to avoid including type_traits
2014-06-13 14:20:19 -04:00
Louis Dionne
4b60dfa6d0
Iterable: document provided instances
2014-06-13 14:07:56 -04:00
Louis Dionne
6c2534216c
functional: add an example for a use case of always
2014-06-13 13:20:03 -04:00
Louis Dionne
c1d9ff5529
doc: document instances
2014-06-12 20:36:21 -04:00
Louis Dionne
488ebc24f8
Iterable: test comparison with heterogeneous data types
2014-06-12 16:51:45 -04:00
Louis Dionne
d951c3b594
core: document and test the type class instantiation system
2014-06-12 13:33:38 -04:00
Louis Dionne
e93f1eb4e0
Range: make the implementation less naive
2014-06-12 13:33:38 -04:00
Louis Dionne
48ec7b231e
Foldable: add examples for some methods
2014-06-12 13:33:38 -04:00
Louis Dionne
e943411fd6
Remove Doxygen warnings.
2014-06-12 09:38:59 -04:00
Louis Dionne
ed9d70d8bf
Remove redundant _template_ keyword.
2014-06-12 09:02:02 -04:00
Louis Dionne
beca8ade95
Iterable: use the new dispatching system
2014-06-12 09:00:11 -04:00
Louis Dionne
60a1741016
Use the new dispatching system with Monad.
2014-06-12 07:06:18 -04:00
Louis Dionne
ec10170b57
Use the new dispatching system with Foldable and Functor.
2014-06-12 07:02:24 -04:00
Louis Dionne
9b1cdd81b9
Comparable: update the dispatching system
2014-06-11 16:43:10 -04:00
Louis Dionne
1d81e02944
Fix a bug with c-style variadics in at_index and improve arg<>
2014-06-10 15:12:49 -04:00
Louis Dionne
809101956b
Type: add construction capabilities
2014-06-09 18:22:33 -04:00
Louis Dionne
d572e3b094
functional: consider making compose variadic
2014-06-09 18:22:33 -04:00
Louis Dionne
e9267aecc8
Type: documentation and example for untype
2014-06-09 18:22:31 -04:00
Louis Dionne
293b066ea4
TypeList: fix the ADL-related bug
2014-06-09 13:19:20 -04:00
Louis Dionne
ee6c805ca8
Type: decouple library from its internal representation
2014-06-09 10:39:05 -04:00
Louis Dionne
2567066828
Type: documentation and decoupling
2014-06-08 16:41:52 -04:00
Louis Dionne
e376b606e1
Monad: documentation
2014-06-08 09:05:17 -04:00
Louis Dionne
2f88b2d40b
range: documentation and type decoupling
2014-06-08 09:03:41 -04:00
Louis Dionne
71a70764e8
maybe: documentation and API improvements
2014-06-07 17:32:34 -04:00
Louis Dionne
d3883f98f6
List: remove done "todo" item
2014-06-05 23:38:34 -04:00
Louis Dionne
415b5c6906
List: fix a bug in head; don't use c-style variadics
2014-06-05 22:55:19 -04:00
Louis Dionne
d4d82639f5
List: documentation and examples
2014-06-05 22:47:39 -04:00
Louis Dionne
aea42f9d18
Integral: Fix a bug with negative literals.
2014-06-05 22:45:55 -04:00
Louis Dionne
b694f5e465
Integral: Strip cv-qualifiers of the integral type.
2014-06-05 21:17:06 -04:00
Louis Dionne
80d115e017
Sandbox: add a linked list, std::array and std::string
2014-06-05 16:24:14 -04:00
Louis Dionne
e86b9d3f4a
Sandbox: add a possible infix operator implementation
2014-06-05 03:34:12 -04:00
Louis Dionne
8cd1863896
Move length from Iterable to Foldable.
2014-06-04 22:19:42 -04:00
Louis Dionne
12058791c7
Documentation: improvements in Integral
2014-06-04 22:04:55 -04:00
Louis Dionne
61f0770b44
Integral: refactoring, documentation and decoupling
2014-06-04 21:24:31 -04:00
Louis Dionne
5b4d569962
Type: Add decltype_ and remove coupling.
2014-06-04 21:24:19 -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
99a6e58487
Functional: Add note about infix operators.
2014-06-04 12:26:41 -04:00
Louis Dionne
a1ab4fab6b
Functional: add fbind
2014-06-04 11:54:09 -04:00
Louis Dionne
178b25476d
Functional: add arg<n>
2014-06-04 11:29:08 -04:00
Louis Dionne
806981bbcf
Functional: remove argwise, add on and lockstep
2014-06-04 11:29:00 -04:00
Louis Dionne
c0b7a91e31
Move any, all and none to Foldable.
2014-06-03 12:28:05 -04:00
Louis Dionne
91689fe4f0
Make the header comment and license uniform.
2014-06-03 11:46:24 -04:00
Louis Dionne
4b61774472
Add lazy_foldr to Foldable.
2014-06-03 11:38:54 -04:00
Louis Dionne
ce602dd4b4
Document a couple more components.
2014-06-02 21:52:26 -04:00
Louis Dionne
6215e82a01
Improve type traits and partially document Integral.
2014-06-02 21:49:36 -04:00
Louis Dionne
49cbdbdd6e
Document the Core module.
2014-06-02 21:49:36 -04:00
Louis Dionne
1cebe9821d
Document the Functional module.
2014-06-02 21:49:35 -04:00
Louis Dionne
b0ebffce2f
Check Monad laws.
2014-06-01 12:18:51 -04:00
Louis Dionne
e77dab7c55
Generalize curry.
2014-06-01 10:03:07 -04:00
Louis Dionne
7b70a24d2b
Add user-defined literal for integral constants.
2014-05-31 15:36:02 -04:00
Louis Dionne
cec5d4edf8
Add unpack and remove Functor from Range.
2014-05-31 14:55:11 -04:00
Louis Dionne
7562f8cecf
Add argwise to functional.
2014-05-31 14:41:34 -04:00
Louis Dionne
418b8941ad
Test Functor laws and modify Type's fmap.
2014-05-31 10:40:21 -04:00
Louis Dionne
decb1a4d8c
Add curry<n> to functional.
2014-05-27 15:46:52 -04:00
Louis Dionne
3d9480855e
Make Typelist a transparent optimization.
2014-05-27 15:07:01 -04:00
Louis Dionne
3bb00967ef
Make Maybe a Monad.
2014-05-27 14:12:11 -04:00
Louis Dionne
9e74d48e3c
Define operator== and operator!= for Comparables.
2014-05-27 13:36:54 -04:00
Louis Dionne
09274a9ea3
Make List a Monad.
2014-05-27 11:12:05 -04:00
Louis Dionne
5f616bb4f5
Add the Monad typeclass and make Type a Monad.
2014-05-27 11:01:20 -04:00
Louis Dionne
49672fd986
Introduce datatypes for dispatching.
2014-05-27 10:52:53 -04:00
Louis Dionne
eda7ea303a
Add a more efficient at_index algorithm.
2014-05-26 14:21:29 -04:00
Louis Dionne
d85eb7ccb2
Add init to List and implement length better.
2014-05-26 12:32:38 -04:00
Louis Dionne
6086633003
Add sort and partition.
2014-05-26 11:27:05 -04:00
Louis Dionne
12273221e1
Add placeholders in functional/.
2014-05-26 10:07:27 -04:00
Louis Dionne
003b3ae4b9
Add count to Foldable.
2014-05-25 19:28:00 -04:00
Louis Dionne
c611dcfd73
Allow runtime bool conditions in if_.
2014-05-25 19:24:06 -04:00
Louis Dionne
f1694b3f4c
Add find and drop_until to Iterable.
2014-05-25 18:45:10 -04:00
Louis Dionne
93f11124a7
Add the Maybe datatype.
2014-05-25 18:36:43 -04:00
Louis Dionne
24b907db66
Add drop_while to Iterable.
2014-05-25 17:33:41 -04:00
Louis Dionne
080fe25e2b
Reduce the number of instantiated variable templates in list_t.
2014-05-25 11:20:04 -04:00
Louis Dionne
d2f725f6fe
Add Typelist; an optimized List for types.
2014-05-25 11:06:18 -04:00
Louis Dionne
316f6a14ec
Optimize foldl for lifted computations.
2014-05-25 09:51:41 -04:00
Louis Dionne
05593b652c
Redefine lift as an equivalence of categories.
...
This allows us to mechanically translate most type traits, which is
a good hint that we've found a way to merge type computation with
value computation. The problematic type traits will be tackled later.
2014-05-24 19:06:41 -04:00
Louis Dionne
5d57f6808d
Use homemade integer_sequence in Range.
2014-05-24 15:41:55 -04:00
Louis Dionne
fd567bd8b1
Add homemade integer_sequence.
...
<utility> is way too large to include just for that.
2014-05-24 15:41:46 -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
b9e8bf180d
Add left_folds::variadic_unrolled.
2014-05-23 16:00:40 -04:00
Louis Dionne
d59b31d184
Use simpler recursion.
2014-05-23 15:28:05 -04:00
Louis Dionne
9d88d63133
Put decltype(lift<f>) into detail namespace.
2014-05-22 12:46:16 -04:00
Louis Dionne
60f524dba4
Add default behavior for equal and not_equal.
2014-05-21 19:22:22 -04:00
Louis Dionne
c0e005672e
Adapt std::integer_sequence.
2014-05-21 19:22:01 -04:00
Louis Dionne
54a61c7cbe
Remove dependency on cstddef in integral.hpp
2014-05-21 18:58:22 -04:00
Louis Dionne
46eacef345
Implement details with if_ instead of pattern matching.
2014-05-21 18:55:14 -04:00
Louis Dionne
6c87bb8d93
Adapt std::tuple.
2014-05-21 18:37:56 -04:00
Louis Dionne
8a87ec288a
Implement List with lambdas.
2014-05-21 18:12:09 -04:00
Louis Dionne
2b890a71f3
Use the y combinator in take_while.
2014-05-21 16:32:12 -04:00
Louis Dionne
0032d4bedb
Add the fixpoint combinator.
2014-05-21 16:32:12 -04:00
Louis Dionne
b7440c5190
Use constexpr lambdas whenever possible. Wow.
2014-05-20 18:29:38 -04:00
Louis Dionne
f168f94b43
Use if_ whenever possible in Iterable.
2014-05-20 17:23:04 -04:00
Louis Dionne
20ae6e927c
Add partial to functional/.
2014-05-20 16:48:47 -04:00
Louis Dionne
43e5a4e943
Split unit tests for List.
2014-05-20 16:26:59 -04:00
Louis Dionne
b66c0e8c14
Add list_t.
2014-05-20 13:50:44 -04:00
Louis Dionne
a3036c2bc4
Add id, compose, always and flip.
2014-05-19 17:16:31 -04:00
Louis Dionne
e8f1a71671
Add more functions to List.
2014-05-19 16:39:53 -04:00
Louis Dionne
7d4b1108ab
Add sum and product.
2014-05-19 15:38:57 -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
1fac38b7bc
Add any, all, none and {any,all,none}_of.
2014-05-18 20:27:58 -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
033770cc42
Add zip_with to List and improve Foldable.
2014-05-18 15:26:35 -04:00
Louis Dionne
cb06f221cf
Fix minor bug in BOOST_HANA_STATIC_ASSERT.
2014-05-18 15:20:42 -04:00
Louis Dionne
02b62cb8e7
Add if_.
2014-05-17 23:53:24 -04:00
Louis Dionne
ebe7b15a54
Add operators to Integral
.
2014-05-17 21:00:05 -04:00
Louis Dionne
60add46fb4
Add drop
to Iterable.
2014-05-17 20:46:25 -04:00
Louis Dionne
44138a1a53
Add type traits to Type.
2014-05-17 18:31:30 -06: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