Wed, 26 Apr 2000 23:49:43 -0700, Mike Jones <[EMAIL PROTECTED]> pisze:
> (||*):: Vi Bool -> Vi Bool -> Vi Bool
> b1 ||* b2 = do
> p <- b1
> if p then return True else b2
The definition does not use anything specific to this particular monad.
The most general type that can be derived for this function is
(||*):: Monad m => m Bool -> m Bool -> m Bool
> Should I make a new class from Monad, say InstrumentMonad, define
> my state monads with it, then write:
>
> (||*):: (InstrumentMonad a) => a Bool -> a Bool -> a Bool
This would be needed if there was some operation used there that
applies to all InstrumentMonads, but only to them.
--
__("< Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
\__/ GCS/M d- s+:-- a23 C+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-