<div dir="ltr"><div dir="ltr">Am Mi., 6. Mai 2020 um 21:13 Uhr schrieb David Feuer <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>>:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The Bounded class is broken because it combines two distinct concepts:<br>
BoundedAbove and BoundedBelow.</blockquote><div><br></div><div>Indeed, having that distinction would be useful. Just to add some bikeshedding regarding the names:</div><div><br></div><div>   * HasInfimum / HasSupremum or</div><div>   * HasInitialObject / HasTerminalObject  or shorter</div><div>   * HasInitial / HasTerminal (maybe a bit too short)</div><div><br></div><div>I wouldn't be too surprised if Edward K. already has something like this on Hackage. :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> If Maybe is to have instances similar<br>
to what it has now, they should surely look like<br>
<br>
instance BoundedBelow (Maybe a) where<br>
  minBound = Nothing<br>
instance BoundedAbove a => BoundedAbove (Maybe a) where<br>
  maxBound = Just maxBound<br></blockquote><div><br></div><div>Well, choosing Nothing to be the infimum is rather arbitrary, you could as well define:</div><div><br></div><div>instance BoundedBelow a => BoundedBelow (Maybe a) where</div><div>   minBound = Just minBound</div><div>instance BoundedAbove (Maybe a) where</div><div>   maxBound = Nothing</div><div><br></div><div>But the previous definition is probably a better fit given the Ord instance, nevertheless. the choice *is* arbitrary. Perhaps Maybe should not be an instance of either class?<br></div></div></div>