|
mpc
Haskell-like feature supports in C++
|
#include <mpc/control/functor.hpp>#include <mpc/functional/partial.hpp>#include <mpc/prelude/constant.hpp>#include <mpc/prelude/flip.hpp>#include <mpc/prelude/identity.hpp>#include <mpc/type_traits.hpp>Go to the source code of this file.
Classes | |
| struct | mpc::detail::pure_op< F > |
| pure :: a -> f a More... | |
| struct | mpc::detail::seq_apply_op |
| seq_apply :: f (a -> b) -> f a -> f b More... | |
| struct | mpc::detail::liftA2_op |
| liftA2 :: (a -> b -> c) -> f a -> f b -> f c More... | |
| struct | mpc::detail::discard2nd_op |
| discard2nd :: f a -> f b -> f a More... | |
| struct | mpc::detail::discard1st_op |
| discard1st :: f a -> f b -> f b More... | |
| struct | mpc::applicatives::detail::fmap_op |
| fmap :: (a -> b) -> f a -> f b More... | |
| struct | mpc::applicatives::detail::liftA2_op |
| liftA2 :: (a -> b -> c) -> f a -> f b -> f c More... | |
| struct | mpc::applicatives::detail::discard1st_opt_op |
| discard1st :: f a -> f b -> f b More... | |
| struct | mpc::detail::liftA_op< N, std::index_sequence< Idx... > > |
| A partial specialization of liftA. More... | |
Namespaces | |
| namespace | mpc::detail |
| Implementation details are here. | |
| namespace | mpc::cpo |
| Customization point objects are here. | |
| namespace | mpc::applicatives |
| Methods deducible from other methods of applicative . | |
Concepts | |
| concept | mpc::applicative_traits_specialized |
| applicative_traits_specialized | |
| concept | mpc::applicative |
| Requires functor and pure, seq_apply, liftA2, discard2nd and discard1st is valid in applicative_traits . | |
Variables | |
| template<class F > | |
| constexpr partial< detail::pure_op< F > > | mpc::cpo::pure {} |
| pure :: a -> f a More... | |
| constexpr partial< detail::seq_apply_op > | mpc::cpo::seq_apply {} |
| seq_apply :: f (a -> b) -> f a -> f b More... | |
| constexpr partial< detail::liftA2_op > | mpc::cpo::liftA2 {} |
| liftA2 :: (a -> b -> c) -> f a -> f b -> f c More... | |
| constexpr partial< detail::discard2nd_op > | mpc::cpo::discard2nd {} |
| discard2nd :: f a -> f b -> f a More... | |
| constexpr partial< detail::discard1st_op > | mpc::cpo::discard1st {} |
| discard1st :: f a -> f b -> f b More... | |
| constexpr partial< detail::fmap_op > | mpc::applicatives::fmap {} |
| fmap :: (a -> b) -> f a -> f b More... | |
| constexpr auto | mpc::applicatives::seq_apply = mpc::liftA2 % identity |
| seq_apply :: f (a -> b) -> f a -> f b More... | |
| constexpr partial< detail::liftA2_op > | mpc::applicatives::liftA2 {} |
| liftA2 :: (a -> b -> c) -> f a -> f b -> f c More... | |
| constexpr auto | mpc::applicatives::discard2nd = mpc::liftA2 % constant |
| discard2nd :: f a -> f b -> f a More... | |
| constexpr auto | mpc::applicatives::discard1st = mpc::liftA2 % (flip % constant) |
| discard1st :: f a -> f b -> f b More... | |
| constexpr partial< detail::discard1st_opt_op > | mpc::applicatives::discard1st_opt {} |
| discard1st :: f a -> f b -> f b More... | |
| template<std::size_t N> | |
| constexpr partial< detail::liftA_op< N > > | mpc::cpo::liftA {} |
| liftA :: Applicative f => (a -> b -> ... -> z) -> f a -> f b -> ... -> f z More... | |