| Safe Haskell | None |
|---|
Language.Syntactic.Sharing.Reify
Description
Reifying the sharing in an AST
This module is based on Type-Safe Observable Sharing in Haskell (Andy Gill, Haskell Symposium, 2009).
Documentation
Arguments
| :: Typeable a | |
| => (forall a. ASTF dom a -> Maybe (SatWit ctx a)) | A function that decides whether a given node can be shared.
|
| -> ASTF dom a | |
| -> IO (ASG ctx dom a) |
Convert a syntax tree to a sharing-preserving graph
This function is not referentially transparent (hence the IO). However, it
is well-behaved in the sense that the worst thing that could happen is that
sharing is lost. It is not possible to get false sharing.