namespace trial {
namespace dynamic {
template<template< typename > class Allocator> struct basic_array;
template<template< typename > class Allocator> struct basic_map;
template<template< typename > class Allocator> class basic_variable;
struct boolean;
struct integer;
struct real;
struct string;
struct u16string;
struct u32string;
struct wstring;
enum nullable { null };
typedef basic_variable< std::allocator > variable;
typedef basic_array< std::allocator > array;
typedef basic_map< std::allocator > map;
template<template< typename > class Allocator, typename U>
basic_variable< Allocator >
operator+(const basic_variable< Allocator > &, const U &);
template<template< typename > class Allocator>
basic_variable< Allocator >
operator+(nullable, const basic_variable< Allocator > &);
template<typename T, typename U> bool operator==(const T &, const U &);
template<typename T, typename U> bool operator!=(const T &, const U &);
template<typename T, typename U> bool operator<(const T &, const U &);
template<template< typename > class Allocator, typename U>
bool operator<=(const basic_variable< Allocator > &, const U &);
template<template< typename > class Allocator, typename U>
bool operator>(const basic_variable< Allocator > &, const U &);
template<template< typename > class Allocator, typename U>
bool operator>=(const basic_variable< Allocator > &, const U &);
}
}