Про инстанс я понимаю. А в жизни это зачем нужно? Вот тут у них, типа, конструктор свой, поэтому стандартных инстансов нет, так что, newtype используется не за этим.
Имхо, потому что синоним не позволяет полморфные типа, в данном случае не опишешь синоним для r -> m a. А newtype позволяет определить тип со своим порядком следования полиморфных типов. И тогда мы можем сказать типа Monad (ReaderT r m) или MonadTrans (ReaderT r). Может быть за этим?
В смысле, описать то type MyReaderT r m a = r -> m a сможешь, а вот instance MonadTrans (MyReaderT r) хрен сделаешь, если я не ошибаюсь.
Re: читаю
Date: 2006-12-05 11:55 am (UTC)Re: читаю
Date: 2006-12-05 12:28 pm (UTC)newtype
Date: 2006-12-05 01:02 pm (UTC)Re: newtype
Date: 2006-12-05 01:09 pm (UTC)Re: читаю
Date: 2006-12-05 01:07 pm (UTC)А newtype позволяет определить тип со своим порядком следования полиморфных типов. И тогда мы можем сказать типа Monad (ReaderT r m) или MonadTrans (ReaderT r). Может быть за этим?
В смысле, описать то type MyReaderT r m a = r -> m a сможешь, а вот instance MonadTrans (MyReaderT r) хрен сделаешь, если я не ошибаюсь.
Re: читаю
Date: 2006-12-05 01:16 pm (UTC)Re: читаю
Date: 2006-12-05 02:19 pm (UTC)