{"body":"memo' :: forall t a. Grouping t => (t -> a) -> IO (t -> IO a)\nmemo' t2a = do\n  f <- getGroup (grouping @t) \\ref1 -> do\n     a <- readIORef ref1\n     pure \\ref2 -> writeIORef ref2 a\n  pure \\t -> do\n    ref <- newIORef (t2a t) -- laziness to the rescue\n    f t ref\n    readIORef ref","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/7zTQAoyz","modified":1641348048,"id":"7zTQAoyz","size":280,"lines":9,"own_paste":false,"theme":"","date":1641348048}