@Override
  protected Money parseDataType(final CycNaut naut) throws ParseException {
    final Currency currency = lookupCurrency(naut.getFunctor());
    if (currency == null) {
      throwParseException(naut, this.getClass().getName() + " does not recognize " + naut.getFunctor() + " as a currency.");
    } else if (naut.getArity() != 1) {
      throwParseException(naut, this.getClass().getName() + " can only parse Cyc terms with an arity of 1.");
    }

    return new Money(parseBigDecimal(naut.getArg(1), "amount"), currency);
  }