Skip to content

Miscellaneous #7

@MonoidMusician

Description

@MonoidMusician

Just a place to record my unorganized todo list:

  • (Recursive) zippers for Expr
  • Directed zippers: first/last, next/prev (or just use traversable for that? seems inefficient ...)
  • Import resolution algorithm forall f m s a void. (a -> f (Expr m s a)) -> Expr m s a -> ?f (Expr m s void) (what monad (transformer) will this run in?? it needs to ensure it is acyclic; maybe it will take a traverse argument to allow batching requests)
  • WIP: Pretty printing Pretty Printing #8
  • Just need to figure out how to do interact with ints better ...
  • Basic interactive editing (using change structures?)
    • Do we need to record focus of Strings?
  • Normalizing and typechecking incomplete ASTs (I guess this is just unification of metavariables)
    • What's the minimal checking we need to do to make sure normalizing is safe, i.e. finite? Maybe typechecking with unification will be good enough, since holes will unify with anything (but have to make sure it is consistent)
    • Should those algorithms happen in an incremental computational monad that bounds recursion?
  • Inject and Interpret https://github.com/dhall-lang/dhall-haskell/blob/master/dhall/src/Dhall.hs#L553-L1460 (now with row types! 😄)

Stretch goals:

  • Use dhall itself to configure interactive commands/UI elements
    • Maybe we're going to have to construct a DSL of finite Container functors that support just what we need ...
  • Need to find some way to integrate comonadic UIs, obviously.
  • Incrementalize things
    • Related: need a datatype (and printer!) for change structures that could be used to pretty-print diffs like the Haskell lib.
  • Prove things
  • Interactive normalization stepper (this could be the basis for interactive rewrite proofs too)
  • Interactive type checking judgments/algorithms and such, to tell the user why it’s wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions