jberryman <brandon.m.simm...@gmail.com> writes:

> This may be a dumb question, but why can we not declare a Monad
> instance of a type synonym? This question came to me while working
> with the State monad recently and feeling that the requirement that we
> wrap our functions in the State constructor is a bit... kludgy.
>

Because type defines an _alias_.  If you define "type Foo = Maybe Int",
then everywhere you have a "Foo" the compiler should be able to replace
it with "Maybe Int".

As such, if you have a custom instance on your type synonym (say a
custom Show instance for Foo), then which instance will the compiler
use?

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to