//
//  RACSequenceExamples.h
//  ReactiveCocoa
//
//  Created by Justin Spahr-Summers on 2012-11-01.
//  Copyright (c) 2012 GitHub, Inc. All rights reserved.
//

// The name of the shared examples for RACSequence instances.
extern NSString * const RACSequenceExamples;

// RACSequence *
extern NSString * const RACSequenceExampleSequence;

// NSArray *
extern NSString * const RACSequenceExampleExpectedValues;
