anchor.diff:  
   Hereby exchange rates can be accessed through an instanceof +ExchangeRateProvider+, which can be accessed from
   the +MonetaryConversions+ singleton:
  -
  +////
  +
  +== 通貨換算
  +
  +=== 基本
  +
  +金額を異なる通貨に換算するためには、 +MonetaryOperator+ を使います。
  ++MonetaryOperator+ は、金額を、実装クラスを同じくする他の金額へと変換する演算子です。
  +換算のレートは +ExchangeRate+ にしたがって行われます。
  ++ExchangeRate+ は、通貨Caにおける金額Aから、通貨Cbにおける金額Bのような変換を定義するものです。
  +
  +換算レートは +ExchangeRateProvider+ のインスタンスから取得できます。
  ++ExchangeRateProvider+ は +MonetaryConversions+ シングルトンから取得できます。
  +
  +////
   [source,java]
   .Access an +ExchangeRateProvider+ and get an +ExchangeRate+
   --------------------------------------------
   ExchangeRateProvider rateProvider = MonetaryConversions.getExchangeRateProvider("IMF");
   ExchangeRate chfToUsdRate = rateProvider.getExchangeRate("CHF", "USD");
   --------------------------------------------
  -
  +////
  +
  +[source,java]
  +.+ExchangeRateProvider+ から +ExchangeRate+ を取得する
  +--------------------------------------------
  +ExchangeRateProvider rateProvider = MonetaryConversions.getExchangeRateProvider("IMF");
  +ExchangeRate chfToUsdRate = rateProvider.getExchangeRate("CHF", "USD");
  +--------------------------------------------
  +
  +////
   As you see above we can access a provider by passing its (unique) name. But we can also combine multiple providers
   to an compound provider, by passing a chain of provider names. This defines the chain of providers to be used
   to evaluate a rate required. By default, the first result returned by a provider in the chain is returned. So if we
  
positive.code: }
  --------------------------------------------
  
  == Currency Conversion
  
  === Basics
  
negative.code: ExchangeRateProvider rateProvider = MonetaryConversions.getExchangeRateProvider("ECB", "IMF");
  ExchangeRate eurToChfRate = rateProvider.getExchangeRate("EUR", "CHF");
  --------------------------------------------
  ////
  
  上の例で見たように、プロバイダは一意の名前によって取得できます。
  また、名前を複数指定することで、複数のプロバイダを合成して複合的なプロバイダを作ることもできます。
  複合的なプロバイダは、プロバイダのチェーンを使って換算レートを決めます。
  デフォルトでは、チェーンの最初のプロバイダによるレートが戻ります。
  したがって、 "ECB" プロバイダを最初のプロバイダとして使い、
  "ECB" プロバイダがサポートしない通貨のためのフォールバック先として "IMF" プロバイダを使う場合は、次のように書きます。
  
  [source,java]
  .複合的な +ExchangeRateProvider+ から +ExchangeRate+ を取得する
  --------------------------------------------
  ExchangeRateProvider rateProvider = MonetaryConversions.getExchangeRateProvider("ECB", "IMF");
  ExchangeRate eurToChfRate = rateProvider.getExchangeRate("EUR", "CHF");
  --------------------------------------------
  
  ////
  Finally we can also omit the definition of a provider chain. This will use the default provider chain:
  
  [source,java]
  