Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Structured graphs #7

Merged
merged 384 commits into from Jun 19, 2016
Merged

Structured graphs #7

merged 384 commits into from Jun 19, 2016

Conversation

robrix
Copy link
Owner

@robrix robrix commented Mar 27, 2016

This PR adds structured graphs, as described in Functional Programming with Structured Graphs by Bruno C. d. S. Oliveira & William R. Cook.

Note that the implementation herein is additionally implemented over higher-order functors (of kind (* -> *) -> * -> *) rather than the paper’s standard functors (of kind * -> *).

The goal is to replace our use of hcata and HFix with HGraph and its various folds, making computation of recursive properties more tractable.

This will presumably also necessitate new API for introducing recursive parsers within the PHOAS context of the HGraph.


  • Smart constructors can’t be used within mu.
  • This PR introduces a bunch of experimental chaff which should be 🔥’d before merge.
  • Define deriv over structured graph parsers.
  • Migrate all the HFix parser stuff to structured graph parsers.
  • 🔥 Data.Higher.Fix.
  • 🔥 Data.Memo.
  • The parseNull call in deriv is unsound.
  • Add a smart constructor to make Parser a wrapping forall v. Combinator v a.

robrix added 30 commits April 3, 2016 11:09
I find this more mnemonic than h.
@robrix
Copy link
Owner Author

robrix commented Jun 19, 2016

Well, it works.

Now to clean it up I guess.

@robrix robrix merged commit 01e6cd0 into master Jun 19, 2016
@robrix robrix deleted the structured-graphs branch June 19, 2016 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant