17 #ifndef VCSN_ALGEBRA_CONCEPT_SERIES_BASE_HH
18 # define VCSN_ALGEBRA_CONCEPT_SERIES_BASE_HH
20 # include <vaucanson/algebra/concept/semiring_base.hh>
21 # include <vaucanson/algebra/concept/freemonoid_base.hh>
41 typedef typename virtual_types<Self>::monoid_t
monoid_t;
44 typedef typename virtual_types<Self>::semiring_t
semiring_t;
70 typedef undefined_type monoid_elt_value_t;
71 typedef undefined_type semiring_elt_value_t;
74 template <
typename T,
typename W,
typename M>
75 struct mute_series_impl
77 typedef undefined_type ret;
80 template <
typename T,
typename W,
typename M>
81 struct mute_series_traits
83 typedef undefined_type ret;
98 template<
typename Self>
99 struct dynamic_traits<algebra::SeriesBase<Self> >
100 : dynamic_traits<algebra::SemiringBase<Self> >
103 template<
typename Self>
104 struct virtual_types<algebra::SeriesBase<Self> >
105 : virtual_types<algebra::SemiringBase<Self> >
107 typedef undefined_type monoid_t;
108 typedef undefined_type semiring_t;
116 template<
class Self,
typename T>
118 :
public MetaElement<algebra::SemiringBase<Self>, T>
165 bool is_finite_app()
const;
193 template <
typename S,
typename T>
198 template <
typename S,
typename T>
203 template <
typename S1,
typename S2,
typename T1,
typename T2>
208 template <
class S,
class T>
222 template <
typename S,
typename T>
226 template <
typename S,
typename T>
230 template <
class S,
class T>
234 template <
typename S,
typename T,
typename M,
typename W>
238 template <
class S,
class T>
243 template <
class S,
class M>
248 template <
class S,
class T>
252 template <
class S,
class T,
class U>
257 template<
typename S,
typename St,
typename T>
264 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
265 # include <vaucanson/algebra/concept/series_base.hxx>
266 # endif // VCSN_USE_INTERFACE_ONLY
268 #endif // ! VCSN_ALGEBRA_CONCEPT_SERIES_BASE_HH