 
 // MARK: - Protocol: Quote Type
 
-protocol FXQuoteType {
+public protocol FXQuoteType {
     var ticker: String { get }
     var rate: BankersDecimal { get }
     var date: NSDate { get }


// MARK: - FX Types

struct FXQuote: FXQuoteType {
    let ticker: String
    let rate: BankersDecimal
    let date: NSDate
}

struct FXTransaction<P: FXProviderType, M: MoneyType>: FXTransactionType {
    typealias Provider = P
    typealias Money = M

    let money: M

    init(money: M) {
        self.money = money
    }
}

// MARK: - FX Providers

struct FX {

    enum Error: ErrorType, Equatable {
        case NetworkError(NSError)
        case NoData
        case InvalidData(NSData)

 In addition to FX exchanges, a provide will have its 
 own characteristics, such as a name and fee structure.
*/
public protocol FXProviderType {

    typealias RequestType
    typealias QuoteType: FXQuoteType
