 /// - parameter param: lhs BLNEggShell<S>
 /// - parameter param: lhs S?
 /// - throws: BLNShellCrackError
-public func == <E>(lhs: BLNEggShell<E>, rhs: E?) throws where E: Comparable {
+public func == <E>(lhs: BLNEggShell<E>, rhs: E?) throws
+  where E: Equatable {
   guard lhs.expected != nil && rhs != nil else { return }
   guard lhs.expected == rhs else {
     throw lhs.shellCracked(by: rhs)
   }
 }
 
-public func == <E>(lhs: BLNEggShell<E>, rhs: E) throws where E: Comparable {
+public func == <E>(lhs: BLNEggShell<E>, rhs: E) throws
+  where E: Equatable {
   guard lhs.expected != nil else { return }
   guard lhs.expected == rhs else {
     throw lhs.shellCracked(by: rhs)

/// - parameter subject: S?
/// - returns: BLNEggShell<S>
public func .= <E>(spec: String, expected: E?) -> BLNEggShell<E>
  where E: Comparable {
    return BLNEggShell(expectation: spec, expected: expected)
}

public func .= <E>(spec: String, expected: E) -> BLNEggShell<E>
  where E: Comparable {
    return BLNEggShell(expectation: spec, expected: expected)
}


/// - parameter subject: S?
/// - returns: BLNEggShell<S>
public func => <E>(expected: E?, spec: String) -> BLNEggShell<E>
  where E: Equatable {
    return BLNEggShell(expectation: spec, expected: expected)
}

