# Module adapton::reflect
[−]
[src]

Reflects the DCG engine, including both the effects of the
programs running in it, and the internal effects of the engine
cleaning and dirtying the DCG. For the latter effects, see the
`trace`

module.

**Reflected Values**. Notably, the values in the engine
(including the values of mutable and compute nodes, and the values
stored on edges between them) are reflected here into a special `Val`

type. Primarily, the distinction between actual Rust values and
this reflected `Val`

type is what makes the DCG engine "reflected"
by the definitions in this module, and not identical to them.

This module provides an interface used by Adapton Lab to produce
HTML visualizations of these internal structures, for
experimentation and debugging (namely, the `dcg_reflect_begin`

and
`dcg_reflect_end`

functions). For the purposes of debugging,
visualization and design/exploration, we exploit the reflected
version of values to "walk" them, finding their articulations, and
walking their values, recursively.

## Reexports

`pub use engine::reflect_dcg::*;` |

## Modules

trace |
Gives effects and traces for cleaning and dirtying, the engine's
internal DCG traversal/processing. By contrast, the enclosing
module ( |

## Structs

CompNode |
Reflected version of |

DCG |
Reflected version of |

Frame |
Reflected version of |

Loc |
Reflected version of |

Pred |
Reflected version of |

PureNode |
Reflected version of |

RefNode |
Reflected version of |

Succ |
Reflected version of |

## Enums

ArtContent |
The content of an articulation: Either a cell holding a value, or a thunk that has optionally produced a value. |

Const |
Primitive constants |

Effect |
Reflected version of |

Node |
Reflected version of |

Val |
Reflected value; Gives a syntax for inductive data type
constructors ( |

## Traits

Reflect |
This trait consists of the ability for a reference to |

## Functions

preds_of_node |
Get the |

reflect_val |
Wrapper for |

succs_of_node |
Get the |

## Type Definitions

Path |
A |