Description
This concept doesn't exist in the library (for Set
, Data.Maybe
does the trick of course), so we should add it.
But where should it belong? A Setoid
-with-a-point: is it an Algebra
(with a very boring signature, consisting of a single nullary operation), or a special kind of Setoid
, and hence should live with those things under Relation.Binary
?
(this may be a separate library design pain point regarding Setoid
: is that an Algebra
too, albeit one with no operations?)
UPDATED: grrr. Pointed
introduced in two ways already. Once to add a distinguished point; this apparently lives under Relation.Nullary.Construct.Add.Point
where
open import Data.Maybe.Base public
using () renaming (Maybe to Pointed; nothing to ∙; just to [_])
and once to add a distinguished point which is moreover an identity for a binary operation. And overloading the shared common use of Maybe
as the representing Free
functor. This seems a bit wart-y how to proceed?
Either way, we might then want a Free
such thing, (cf. #1962 / #1954 ) and know that its algebra is that of the usual adjoint/monadic situation arising from Maybe
and the forgetful operation of throwing away the distinguished point.