On Mon, Oct 6, 2008 at 2:27 PM, Jason Dagit <dagit@codersbase.com> wrote:

For what it's worth, in my real program where this came up, sy was created by a recursive call like this:

I guess it should have been more like this:
 
blah :: Sealed (p x)
foo :: Sealed (q b)
foo = do
  p <- blah
  q <- foo
  return (Sealed (f p q))

Sorry for any confusion!