[Haskell-cafe] collection monads
tpledger at ihug.co.nz
tpledger at ihug.co.nz
Wed Oct 4 17:34:19 EDT 2006
Matthias Fischmann wrote:
> another beginners question about monads: given the type
>
> | data (Ix x) => Permutation x = Permutation [x]
>
> i wanted to define
>
> | instance Monad Permutation where
> | return xs = Permutation xs
>
> but of course nothing about the monad class guarantees xs
to be of
> type list. the monad class seems unsuitable for holding
collections,
> and i am inclined to not instantiate permutations.
>
> just to be sure: is there any easy way to do it that i
missed?
Do you expect the contained type x to change during a
sequence of monadic actions? e.g. would you ever use (>>=)
at the type 'Permutation Int -> (Int -> Permutation Bool) ->
Permutation Bool'?
If not, you could separate each permutation into keys and
values:
data Permutation k v = Permutation [(k, v)]
instance (Ix k) => Monad (Permutation k)
Regards,
Tom
More information about the Haskell-Cafe
mailing list