# Freemonoid
[Algebra]

Collaboration diagram for Freemonoid:

## Classes

struct | FreeMonoidBase< Self >
| Structural element for free monoid. More...
struct | dynamic_traits< algebra::FreeMonoidBase< Self > >
struct | MetaElement< algebra::FreeMonoidBase< Self >, T >
| Element of a free monoid i.e. words. More...
struct | FreeMonoid< A >
| Implementation of a free monoid which aggregates its alphabet. More...
struct | dynamic_traits< algebra::FreeMonoid< A > >
| Meta information about FreeMonoid. More...
struct | MetaElement< algebra::FreeMonoid< A >, T >
| Services of an element of a free monoid implemented with FreeMonoid. More...

## Functions

template<typename S , typename T >
Element< S, T > | mirror (const Element< S, T > &e)
| Return a fresh word that is the mirror.
template<typename S , typename T >
std::pair< bool, int > | parse_word (Element< S, T > &dest, const std::string &s)
| Parse the beginning of the string looking for a word.

## Function Documentation

std::pair< bool, int > parse_word | ( | Element< S, T > & | dest,
|  | const std::string & | s |
| ) |  |  |

Parse the beginning of the string looking for a word.

Return a pair indicating whether the source string was fully parsed and how much characters were read.

Definition at line 156 of file freemonoid_base.hxx.

References vcsn::algebra::op_parse(), Element< S, T >::structure(), and Element< S, T >::value().