> > Would not "liftM2 (,) [0..] [Sunday .. Saturday]" do the trick?
>> You mean
> liftM2 (,) [0..] [January .. December] ?
> (I chose Months in order to get a sensible example.)
Ah, yes. My mistake.
> I assume that the Bounded class exists in order to stay independent from
> the particular type. With minBound and maxBound you do not rely on whether
> the counting starts on Sunday or Monday if you only want to do something
> for all days.
Now I see. Sure, your code can be used for any bounded type while mine
is specific to Days (or Months).
Well, to achieve the same with cyclic enums I would need yet another
type class to get bounds which do not put any constraints on
exceptions for succ and pred. That would be rather stupid, I think.
Would be better with a dedicated cyclic enum class that do not have
the succ and pred constraints for bounded instances.
> > Sure there are subtleties, like what should [Monday .. Monday] return,
> either:
> > [Monday] or
> > [Monday, Tuesday ... Sunday]
> > but to settle for one would be ok to me.
>> You mean [Monday, Tuesday ... Sunday, Monday] ?
Actually not. No repetitions.
> I also think that there must be a possibility to obtain an empty list.
That would be tricky. Not sure why an empty list must be obtained.
/Johan