You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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?
Just a place to record my unorganized todo list:
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 atraverseargument to allow batching requests)InjectandInterprethttps://github.com/dhall-lang/dhall-haskell/blob/master/dhall/src/Dhall.hs#L553-L1460 (now with row types! 😄)Stretch goals:
Containerfunctors that support just what we need ...