mpc
Haskell-like feature supports in C++
mpc::detail Namespace Reference

Implementation details are here. More...

Classes

struct  append_op
 
struct  bind_op
 bind :: forall a b. m a -> (a -> m b) -> m b More...
 
struct  clone_const
 Clones the const qualifier. More...
 
struct  clone_cv
 Clones cv qualifiers. More...
 
struct  clone_cvref
 Clones cv and reference qualifiers. More...
 
struct  clone_reference
 Clones the reference qualifier. More...
 
struct  clone_volatile
 Clones the volatile qualifier. More...
 
struct  combine_op
 combine :: f a -> f a -> f a More...
 
struct  compose_op
 
struct  cons_op
 
struct  constant_op
 
struct  copy_const
 Copies the const qualifier. More...
 
struct  copy_cv
 Copies cv qualifiers. More...
 
struct  copy_cvref
 Copies cv and reference qualifiers. More...
 
struct  copy_reference
 Copies the reference qualifier. More...
 
struct  copy_volatile
 Copies the volatile qualifier. More...
 
struct  discard1st_op
 discard1st :: f a -> f b -> f b More...
 
struct  discard2nd_op
 discard2nd :: f a -> f b -> f a More...
 
struct  empty_op
 empty :: f a More...
 
struct  eval_State_op
 
struct  eval_StateT_op
 
struct  exec_State_op
 
struct  exec_StateT_op
 
struct  flip_op
 
struct  fmap_op
 fmap :: (a -> b) -> f a -> f b More...
 
struct  foldr_op
 
struct  gets_op
 gets :: m s More...
 
struct  getss_op
 getss :: MonadState s m => (s -> a) -> m a More...
 
struct  is_either_impl
 
struct  is_either_impl< either< T, U > >
 
struct  is_explicitly_convertible
 is_explicitly_convertible More...
 
struct  is_explicitly_convertible< From, To, std::void_t< decltype(To(std::declval< From >()))> >
 A partial specialization of is_explicitly_convertible. More...
 
struct  is_Identity_impl
 
struct  is_Identity_impl< Identity< T > >
 
struct  is_implicitly_convertible
 is_implicitly_convertible More...
 
struct  is_implicitly_default_constructible
 is_implicitly_default_constructible More...
 
struct  is_list_impl
 
struct  is_list_impl< std::list< T, Alloc > >
 
struct  is_maybe_impl
 
struct  is_maybe_impl< maybe< T > >
 
struct  is_State_impl
 
struct  is_State_impl< StateT< S, M > >
 
struct  is_StateT_impl
 
struct  is_StateT_impl< StateT< S, M > >
 
struct  isalnum_op
 
struct  isalpha_op
 
struct  isblank_op
 
struct  iscntrl_op
 
struct  isdigit_op
 
struct  isgraph_op
 
struct  islower_op
 
struct  isprint_op
 
struct  ispunct_op
 
struct  isspace_op
 
struct  isupper_op
 
struct  isxdigit_op
 
struct  karrow_op
 karrow :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c) More...
 
struct  lift_op
 lift :: (Monad m) => m a -> t m a More...
 
struct  liftA2_op
 liftA2 :: (a -> b -> c) -> f a -> f b -> f c More...
 
struct  liftA_op
 liftA :: Applicative f => (a -> b -> ... -> z) -> f a -> f b -> ... -> f z More...
 
struct  liftA_op< N, std::index_sequence< Idx... > >
 A partial specialization of liftA. More...
 
struct  make_Identity_op
 
struct  make_State_op
 
struct  make_StateT_op
 
struct  map_State_op
 
struct  map_StateT_op
 
struct  modify_op
 modify :: MonadState s m => (s -> s) -> m () More...
 
struct  pure_op
 pure :: a -> f a More...
 
struct  put_op
 put :: s -> m () More...
 
struct  replace2nd_op
 replace2nd :: a -> f b -> f a More...
 
struct  run_Identity_op
 
struct  run_State_op
 
struct  run_StateT_op
 
struct  seq_apply_op
 seq_apply :: f (a -> b) -> f a -> f b More...
 
struct  sequence_op
 
struct  state_op
 state :: (s -> (a, s)) -> m a More...
 
struct  StateT_alternative_traits_combine
 
struct  StateT_alternative_traits_combine< ST >
 
struct  StateT_alternative_traits_empty
 
struct  StateT_alternative_traits_empty< ST >
 
struct  tagged_union_impl
 
struct  tagged_union_impl< std::index_sequence< Idx... >, Args... >
 
struct  uncons_op
 
struct  with_StateT_op
 

Concepts

concept  has_alternative_traits_empty
 has_alternative_traits_empty
 
concept  has_alternative_traits_combine
 has_alternative_traits_combine
 

Typedefs

template<std::size_t N>
using make_reversed_index_sequence = decltype(reversed_index_sequence_impl(std::make_index_sequence< N >{}))
 make_reversed_index_sequence
 
template<class From , class To >
using copy_const_t = typename copy_const< From, To >::type
 A helper alias template for copy_const.
 
template<class From , class To >
using clone_const_t = typename clone_const< From, To >::type
 A helper alias template for clone_const.
 
template<class From , class To >
using copy_volatile_t = typename copy_volatile< From, To >::type
 A helper alias template for copy_volatile.
 
template<class From , class To >
using clone_volatile_t = typename clone_volatile< From, To >::type
 A helper alias template for clone_volatile.
 
template<class From , class To >
using copy_cv_t = typename copy_cv< From, To >::type
 A helper alias template for copy_cv.
 
template<class From , class To >
using clone_cv_t = typename clone_cv< From, To >::type
 A helper alias template for clone_cv.
 
template<class From , class To >
using copy_reference_t = typename copy_reference< From, To >::type
 A helper alias template for copy_reference.
 
template<class From , class To >
using clone_reference_t = typename clone_reference< From, To >::type
 A helper alias template for clone_reference.
 
template<class From , class To >
using copy_cvref_t = typename copy_cvref< From, To >::type
 A helper alias template for copy_cvref.
 
template<class From , class To >
using clone_cvref_t = typename clone_cvref< From, To >::type
 A helper alias template for clone_cvref.
 

Variables

const auto alnum = satisfy % mpc::isalnum or left % "expecting alnum"s
 
const auto alpha = satisfy % mpc::isalpha or left % "expecting alpha"s
 
const auto lower = satisfy % mpc::islower or left % "expecting lower"s
 
const auto upper = satisfy % mpc::isupper or left % "expecting upper"s
 
const auto digit = satisfy % mpc::isdigit or left % "expecting digit"s
 
const auto xdigit = satisfy % mpc::isxdigit or left % "expecting xdigit"s
 
const auto cntrl = satisfy % mpc::iscntrl or left % "expecting cntrl"s
 
const auto graph = satisfy % mpc::isgraph or left % "expecting graph"s
 
const auto space = satisfy % mpc::isspace or left % "expecting space"s
 
const auto blank = satisfy % mpc::isblank or left % "expecting blank"s
 
const auto print = satisfy % mpc::isprint or left % "expecting print"s
 
const auto punct = satisfy % mpc::ispunct or left % "expecting punct"s
 
const auto any_char = satisfy % (constant % true)
 
template<class T >
constexpr bool is_implicitly_default_constructible_v
 A helper inline variable for is_implicitly_default_constructible. More...
 
template<class From , class To >
constexpr bool is_explicitly_convertible_v = is_explicitly_convertible<From, To>::value
 A helper inline variable for is_explicitly_convertible.
 
template<class From , class To >
constexpr bool is_implicitly_convertible_v = is_implicitly_convertible<From, To>::value
 A helper inline variable for is_implicitly_convertible.
 

Detailed Description

Implementation details are here.

instance (Functor m, MonadPlus m) => Alternative (StateT s m) where empty = StateT $ (_ -> mzero) StateT m <|> StateT n = StateT $ s -> m s mplus n s

Variable Documentation

◆ is_implicitly_default_constructible_v

template<class T >
constexpr bool mpc::detail::is_implicitly_default_constructible_v
inlineconstexpr
Initial value:
=
is_implicitly_default_constructible
Definition: type_traits.hpp:38

A helper inline variable for is_implicitly_default_constructible.