I have a struct that looks like this:

```
struct Lip {
    int     x;

    friend Lip mkLip(Tester t, bool full = false);

    bool operator == (Lip p) const { return x == p.x; }
    bool operator != (Lip p) const { return x != p.x; }
    bool operator <  (Lip p) const { return x < p.x;  }
};

```

The problem with this is that it throws error on Mac regarding the friend declaration specifying a default argument. I read that one way is to have a non-friend declaration somewhere out, but as you can see my friend function has the same return type as the actual struct itself. What's the proper way to fix this here?