[Haskell-cafe] Typeclasses -- if does not satisfy
Dmitry Bogatov
KAction at gnu.org
Sat May 24 17:08:01 UTC 2014
* adam vogt <vogt.adam at gmail.com> [2014-05-24 12:27:18-0400]
> Hi Dmitry,
>
> It's pretty straightforward to use OverlappingInstances:
>
> class Runnable a b where
> run :: a -> b
>
> instance (r ~ (s -> (m (a,s)))) => Runnable (StateT s m a) r where
> run m = runStateT m
>
> instance (r ~ (s -> (a,s))) => Runnable (StateT s Identity a) r where
> run m = runState m
>
> Involving a type family doesn't simplify things, since you still need
> two class instances to choose between runStateT and runState.
So simple and so good. Thank you.
--
Best regards, Dmitry Bogatov <KAction at gnu.org>,
Free Software supporter, esperantisto and netiquette guardian.
git://kaction.name/rc-files.git
GPG: 54B7F00D
More information about the Haskell-Cafe
mailing list