 	}
 }
 
-/// Bind | Applies a function to any non-error value contained in the given Either.
+/// Bind | Applies a function to any non-error value contained in the given `Either`.
 ///
 /// If the `Either` is `.Left`, the given function is ignored and the result of this function is
-/// `.Left`.  Else the reuslt of this function is the application of the function to the value
-/// contained in teh Either.
+/// `.Left`.  Else the result of this function is the application of the function to the value
+/// contained in the `Either`.
 public func >>- <L, RA, RB>(a : Either<L, RA>, f : RA -> Either<L, RB>) -> Either<L, RB> {
 	switch a {
 	case let .Left(l):

		}
	}

	/// Determines if this `Either` value is a Left.
	public var isLeft : Bool {
		switch self {
		case Left(_):

}

/// Ap | Given an `Either` containing an error value or a function, applies the function to any non-
/// error values contained in the given `Either`.
///
/// If the `Either` containing the function is `.Left` the result of this function is `.Left`.  Else
/// the result of this function is the result of `fmap`ing the function over the given `Either`.
///
/// Promotes function application to sums of values and functions applied to sums of values.
public func <*> <L, RA, RB>(f : Either<L, RA -> RB>, e : Either<L, RA>) -> Either<L, RB> {
