mpc
Haskell-like feature supports in C++
class.hpp File Reference

Go to the source code of this file.

Classes

struct  mpc::detail::state_op< ST >
 state :: (s -> (a, s)) -> m a More...
 
struct  mpc::detail::gets_op< ST >
 gets :: m s More...
 
struct  mpc::detail::put_op< ST >
 put :: s -> m () More...
 
struct  mpc::states::detail::gets_op< ST >
 
struct  mpc::states::detail::gets_op< ST >::closure
 
struct  mpc::states::detail::put_op< ST >
 
struct  mpc::states::detail::put_op< ST >::closure
 
struct  mpc::detail::modify_op< ST >
 modify :: MonadState s m => (s -> s) -> m () More...
 
struct  mpc::detail::modify_op< ST >::closure
 
struct  mpc::detail::getss_op< ST >
 getss :: MonadState s m => (s -> a) -> m a More...
 
struct  mpc::detail::getss_op< ST >::closure
 

Namespaces

namespace  mpc::detail
 Implementation details are here.
 
namespace  mpc::cpo
 Customization point objects are here.
 

Variables

template<class ST >
constexpr partial< detail::state_op< ST > > mpc::cpo::state {}
 state :: (s -> (a, s)) -> m a
 
template<class ST >
constexpr detail::gets_op< ST > mpc::cpo::gets {}
 gets :: m s
 
template<class ST >
constexpr partial< detail::put_op< ST > > mpc::cpo::put {}
 put :: s -> m ()
 
template<class ST >
constexpr detail::gets_op< ST > mpc::states::gets {}
 gets :: m s
 
template<class ST >
constexpr partial< detail::put_op< ST > > mpc::states::put {}
 put :: s -> m ()
 
template<class ST >
constexpr partial< detail::modify_op< std::remove_cvref_t< ST > > > mpc::cpo::modify {}
 modify :: MonadState s m => (s -> s) -> m ()
 
template<class ST >
constexpr partial< detail::getss_op< std::remove_cvref_t< ST > > > mpc::cpo::getss {}
 getss :: MonadState s m => (s -> a) -> m a