MatrixAI / Emergence

Distributed Infrastructure Orchestration
Apache License 2.0
1 stars 0 forks source link

Bidirectional Transformation of Data #33

Open CMCDragonkai opened 5 years ago

CMCDragonkai commented 5 years ago

It appears that Emergence will deal with this quite a lot either via FFI boundaries or via configuration files.

If you want to find early papers on the topic of lenses, you'd be better served by going off to read the papers by Benjamin Pierce on Boomerang. In there he defines several notions of lenses. The ones that correspond to the form of functional references used in Haskell would be what he calls a "very well behaved lens". He then proceeds to generalize them in a different direction than the path I take in the lens package. He focuses on using them to restore invariants, while "very well behaved" lenses just don't break the invariants in the first place. Edward KMETT

CMCDragonkai commented 5 years ago

It may be quite useful for doing manipulation of the underlying artifact config. Since the artifact specific config can be Nix or Docker: https://github.com/NixOS/nix/issues/165

This sort of work is also related to my js project for tree index. That is when transforming to an in-memory tree of the configuration file (git config file in the case of polykey), you want to also "index" the tree so that you can find things quickly, but the index has to be robust in the face of mutations. https://github.com/MatrixAI/js-tree-order-index