[John Baez #6](https://forum.azimuthproject.org/discussion/comment/16420/#Comment_16420) wrote:

> For example, I think the alternative characterization of Galois connections works fine for preorders.

I actually see 4 equivalent definitions of a Galois connection \$$f \dashv g\$$ for two preorders \$$\langle A, \sqsubseteq\rangle\$$ and \$$\langle B, \preceq\rangle\$$:

(1) \$$f(a) \preceq b\$$ if and only if \$$a \sqsubseteq g(b)\$$

(2) \$$f\$$ and \$$g\$$ are mono and \$$f(g(b)) \preceq b\$$ and \$$a \sqsubseteq g(f(a))\$$

(3) \$$f\$$ is mono and \$$f(g(b)) \preceq b\$$ and \$$f(a) \preceq b \Longrightarrow a \sqsubseteq g(b)\$$

(4) \$$g\$$ is mono and \$$a \sqsubseteq g(f(a))\$$ and \$$a \sqsubseteq g(b) \Longrightarrow f(a) \preceq b\$$

--------------------------------------------

(3) and (4) are based on Owen Biesel's observation.

It looks like these definitions are pretty general - I think you can use them to give alternate ways of programming adjunctions in Haskell.

Let me double check, if this is the case we can maybe make a change to the Haskell adjunctions library.