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... | |