<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Sep 4, 2008, at 12:50 PM, minh thu wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: -webkit-monospace; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><blockquote type="cite">I'd have thought you wanted "IORef (Maybe Thing)", which says that the<br></blockquote><blockquote type="cite">pointer always exists, but may not point to anything. &nbsp;On the other hand<br></blockquote><blockquote type="cite">"Maybe (IORef Thing)" says that the pointer may or may not exist.<br></blockquote><br>Yes, someone else said it too. But you saiy that regarding the pointer. If you<br>look at the thing the pointer (if any) points at, what's the difference ?<br>Either there is none : Nothing or IORef Nothing, or there is one :<br>Just (IORef 5)<br>or IORef (Just 5).</span></blockquote></div><br><div>There is still a difference. With Maybe (IORef a), the nothingness is expressed only locally, but with IORef (Maybe a), the nothingness can be shared and mutated by any other IORefs that point to it as well.</div><div><br></div><div>- Jake McArthur</div></body></html>