лучше всего считать pure как что-то, что выполняет законы для монады, а все остальные определения это проекции и притягивания за уши
то есть даже формально, pure это функция, для которой выполняются условия
forall Monad m, type a b, e :: m a, x :: a, f :: a -> m b
e >>= pure = e
pure x >>= f = f x