{"body":"memo' :: forall t a. Grouping t => (t -> a) -> IO (t -> IO a)\nmemo' t2a = do\n  output <- newIORef (error \"you done goofed\")\n  f <- getGroup (grouping @t) \\(t2a -> a) -> do\n    writeIORef output a\n    return \\_ -> writeIORef output a\n  return \\t -> f t t *> readIORef output","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/MCWdxUyf","modified":1641346828,"id":"MCWdxUyf","size":273,"lines":7,"own_paste":false,"theme":"","date":1641346828}