mirror of
https://github.com/github/semantic.git
synced 2024-11-24 08:54:07 +03:00
Stub in recurring through indexed terms.
This commit is contained in:
parent
a30328e682
commit
e620eb76ff
@ -5,6 +5,7 @@ import Control.Monad.Free
|
|||||||
import Control.Comonad.Cofree
|
import Control.Comonad.Cofree
|
||||||
import Operation
|
import Operation
|
||||||
import Diff
|
import Diff
|
||||||
|
import Syntax
|
||||||
|
|
||||||
constructAndRun :: Term a Info -> Term a Info -> Maybe (Diff a)
|
constructAndRun :: Term a Info -> Term a Info -> Maybe (Diff a)
|
||||||
constructAndRun a b =
|
constructAndRun a b =
|
||||||
@ -14,6 +15,8 @@ constructAndRun a b =
|
|||||||
run :: Algorithm a (Diff a) -> Maybe (Diff a)
|
run :: Algorithm a (Diff a) -> Maybe (Diff a)
|
||||||
run (Pure diff) = Just diff
|
run (Pure diff) = Just diff
|
||||||
run (Free (Recursive a b f)) = recur a b where
|
run (Free (Recursive a b f)) = recur a b where
|
||||||
|
recur (_ :< Indexed a') (_ :< Indexed b') | length a' == length b' =
|
||||||
|
run $ f $ Pure Patch { old = Just a, new = Just b }
|
||||||
recur _ _ = run $ f $ Pure Patch { old = Just a, new = Just b }
|
recur _ _ = run $ f $ Pure Patch { old = Just a, new = Just b }
|
||||||
|
|
||||||
interpret :: Term a Info -> Term a Info -> Diff a
|
interpret :: Term a Info -> Term a Info -> Diff a
|
||||||
|
Loading…
Reference in New Issue
Block a user