 }
 
 public func != <E>(rhs: E, lhs: BLNEggShell<E>) throws
-  where E: Comparable {
+  where E: Equatable {
     guard lhs.expected != nil else {
       //throw yell(lhs.lookingAt, "got", lhs.subject, "but expected", rhs)
       return

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

public func == <E>(rhs: E, lhs: BLNEggShell<E>) throws where E: Comparable {
  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>(expected: E?, spec: String) -> BLNEggShell<E>
  where E: Equatable {
    return BLNEggShell(expectation: spec, expected: expected)
}

