
8 Dec
2017
8 Dec
'17
3:37 p.m.
Hi, The function `join` flattens a double-layered monad into one layer and its type signature is join :: (Monad m) => m (m a) -> m a But when the first argument supplied is `(,)`, the type signature becomes join (,) :: b -> (b, b) in ghci. The monad constraint is lost when supplied the first argument. So my question is why the type constraint is lost and what monad is supplied here. Regards, Qingbo Liu