Имхо, потому что синоним не позволяет полморфные типа, в данном случае не опишешь синоним для 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 01:07 pm (UTC)А newtype позволяет определить тип со своим порядком следования полиморфных типов. И тогда мы можем сказать типа Monad (ReaderT r m) или MonadTrans (ReaderT r). Может быть за этим?
В смысле, описать то type MyReaderT r m a = r -> m a сможешь, а вот instance MonadTrans (MyReaderT r) хрен сделаешь, если я не ошибаюсь.