1
1
mirror of https://github.com/github/semantic.git synced 2024-12-19 12:51:52 +03:00

🔥 the hand-rolled alignSyntax' function.

This commit is contained in:
Rob Rix 2016-07-11 13:57:53 -04:00
parent ee260949ea
commit a9577a2037

View File

@ -42,11 +42,3 @@ alignCofreeWith contrast terms = fromMaybe (pure terms) $ case terms of
These t1 t2 -> let (a1 :< s1, a2 :< s2) = (runCofree t1, runCofree t2) in These t1 t2 -> let (a1 :< s1, a2 :< s2) = (runCofree t1, runCofree t2) in
wrap . (These a1 a2 :<) . fmap (alignCofreeWith contrast) <$> contrast s1 s2 wrap . (These a1 a2 :<) . fmap (alignCofreeWith contrast) <$> contrast s1 s2
_ -> Nothing _ -> Nothing
alignSyntax' :: Syntax leaf a1 -> Syntax leaf a2 -> Maybe (Syntax leaf (These a1 a2))
alignSyntax' a b = case (a, b) of
(Leaf _, Leaf s2) -> Just (Leaf s2)
(Indexed a, Indexed b) -> Just (Indexed (align a b))
(Fixed a, Fixed b) -> Just (Fixed (align a b))
(Keyed a, Keyed b) -> Just (Keyed (align a b))
_ -> Nothing