diff --git a/packages/common/src/scopeSupportFacets/haskell.ts b/packages/common/src/scopeSupportFacets/haskell.ts index e89805c8c8..a567d90174 100644 --- a/packages/common/src/scopeSupportFacets/haskell.ts +++ b/packages/common/src/scopeSupportFacets/haskell.ts @@ -39,8 +39,8 @@ export const haskellScopeSupport: LanguageScopeSupportFacetMap = { functionCallee: unsupported, "functionCallee.constructor": unsupported, - "argument.actual": unsupported, - "argument.actual.iteration": unsupported, + "argument.actual": supported, + "argument.actual.iteration": supported, "argument.formal": unsupported, "argument.formal.iteration": unsupported, diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration1.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration1.scope similarity index 72% rename from packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration1.scope rename to packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration1.scope index a0f348d610..b657f557da 100644 --- a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration1.scope +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration1.scope @@ -5,8 +5,7 @@ fib n = fib (n-1) + fib (n-2) --- -[#1 Content] = -[#1 Removal] = +[#1 Range] = [#1 Domain] = 1:0-1:9 0| fib :: Integer -> Integer @@ -19,11 +18,8 @@ fib n = fib (n-1) + fib (n-2) 4| -[#1 Insertion delimiter] = "\n" - -[#2 Content] = -[#2 Removal] = +[#2 Range] = [#2 Domain] = 2:0-2:9 0| fib :: Integer -> Integer @@ -36,11 +32,8 @@ fib n = fib (n-1) + fib (n-2) 4| -[#2 Insertion delimiter] = "\n" - -[#3 Content] = -[#3 Removal] = +[#3 Range] = [#3 Domain] = 3:0-3:29 0| fib :: Integer -> Integer @@ -51,6 +44,3 @@ fib n = fib (n-1) + fib (n-2) 3| fib n = fib (n-1) + fib (n-2) >-----------------------------< 4| - - -[#3 Insertion delimiter] = "\n" diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration2.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration2.scope new file mode 100644 index 0000000000..3a6c22929d --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration2.scope @@ -0,0 +1,46 @@ +abs :: Int -> Int +abs x + | x >= 0 = x + | otherwise = -x + +--- + +[#1 Range] = +[#1 Domain] = 1:0-3:20 +0| abs :: Int -> Int + +1| abs x + >----- +2| | x >= 0 = x + -------------------- +3| | otherwise = -x + --------------------< +4| + + + +[#2 Range] = +[#2 Domain] = 2:6-2:20 +0| abs :: Int -> Int + +1| abs x + +2| | x >= 0 = x + >--------------< +3| | otherwise = -x + +4| + + + +[#3 Range] = +[#3 Domain] = 3:6-3:20 +0| abs :: Int -> Int + +1| abs x + +2| | x >= 0 = x + +3| | otherwise = -x + >--------------< +4| diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration3.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration3.scope new file mode 100644 index 0000000000..b0d9258f69 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration3.scope @@ -0,0 +1,46 @@ +bap :: Int -> Int +bap x + | x > 0, x == 0 = x + | otherwise = -x + +--- + +[#1 Range] = +[#1 Domain] = 1:0-3:20 +0| bap :: Int -> Int + +1| bap x + >----- +2| | x > 0, x == 0 = x + ------------------------ +3| | otherwise = -x + --------------------< +4| + + + +[#2 Range] = +[#2 Domain] = 2:6-2:24 +0| bap :: Int -> Int + +1| bap x + +2| | x > 0, x == 0 = x + >------------------< +3| | otherwise = -x + +4| + + + +[#3 Range] = +[#3 Domain] = 3:6-3:20 +0| bap :: Int -> Int + +1| bap x + +2| | x > 0, x == 0 = x + +3| | otherwise = -x + >--------------< +4| diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration4.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration4.scope new file mode 100644 index 0000000000..91ae5663fe --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration4.scope @@ -0,0 +1,69 @@ +compare :: Int -> Int -> Ordering +compare x y + | x < y = LT + | x == y = EQ + | x > y = GT + +--- + +[#1 Range] = +[#1 Domain] = 1:0-4:17 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >----------- +2| | x < y = LT + ----------------- +3| | x == y = EQ + ----------------- +4| | x > y = GT + -----------------< +5| + + + +[#2 Range] = +[#2 Domain] = 2:6-2:17 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + >-----------< +3| | x == y = EQ + +4| | x > y = GT + +5| + + + +[#3 Range] = +[#3 Domain] = 3:6-3:17 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-----------< +4| | x > y = GT + +5| + + + +[#4 Range] = +[#4 Domain] = 4:6-4:17 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-----------< +5| diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration5.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration5.scope new file mode 100644 index 0000000000..76eb6d892e --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual.iteration5.scope @@ -0,0 +1,46 @@ +fromEither :: (a -> c) -> (b -> c) -> Either a b -> c +fromEither f g x = case x of + Left l -> f l + Right r -> g r + +--- + +[#1 Range] = +[#1 Domain] = 1:0-3:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >---------------------------- +2| Left l -> f l + ------------------ +3| Right r -> g r + ------------------< +4| + + + +[#2 Range] = +[#2 Domain] = 2:4-2:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--------------< +3| Right r -> g r + +4| + + + +[#3 Range] = +[#3 Domain] = 3:4-3:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >--------------< +4| diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual1.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual1.scope new file mode 100644 index 0000000000..7efb659fb4 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual1.scope @@ -0,0 +1,201 @@ +fib :: Integer -> Integer +fib 0 = 0 +fib 1 = 1 +fib n = fib (n-1) + fib (n-2) + +--- + +[#1 Content] = +[#1 Domain] = 1:4-1:5 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + >-< +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#1 Removal] = 1:4-1:6 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + >--< +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#1 Leading delimiter] = 1:3-1:4 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + >-< +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#1 Trailing delimiter] = 1:5-1:6 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + >-< +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#1 Insertion delimiter] = " " + + +[#2 Content] = +[#2 Domain] = 2:4-2:5 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + >-< +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#2 Removal] = 2:4-2:6 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + >--< +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#2 Leading delimiter] = 2:3-2:4 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + >-< +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#2 Trailing delimiter] = 2:5-2:6 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + >-< +3| fib n = fib (n-1) + fib (n-2) + +4| + + +[#2 Insertion delimiter] = " " + + +[#3 Content] = +[#3 Domain] = 3:12-3:17 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >-----< +4| + + +[#3 Removal] = 3:12-3:18 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >------< +4| + + +[#3 Leading delimiter] = 3:11-3:12 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >-< +4| + + +[#3 Trailing delimiter] = 3:17-3:18 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >-< +4| + + +[#3 Insertion delimiter] = " " + + +[#4 Content] = +[#4 Domain] = 3:24-3:29 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >-----< +4| + + +[#4 Removal] = 3:23-3:29 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >------< +4| + + +[#4 Leading delimiter] = 3:23-3:24 +0| fib :: Integer -> Integer + +1| fib 0 = 0 + +2| fib 1 = 1 + +3| fib n = fib (n-1) + fib (n-2) + >-< +4| + + +[#4 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration2.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual2.scope similarity index 51% rename from packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration2.scope rename to packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual2.scope index b05609c4d3..65a920d23b 100644 --- a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration2.scope +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual2.scope @@ -6,97 +6,80 @@ abs x --- [#1 Content] = -[#1 Removal] = -[#1 Domain] = 1:0-3:20 +[#1 Domain] = 0:4-0:4 0| abs :: Int -> Int - -1| abs x - >----- -2| | x >= 0 = x - -------------------- -3| | otherwise = -x - --------------------< -4| - - -[#1 Insertion delimiter] = "\n" - - -[#2 Content] = -[#2 Domain] = 2:6-2:20 -0| abs :: Int -> Int - + >< 1| abs x 2| | x >= 0 = x - >--------------< + 3| | otherwise = -x 4| -[#2 Removal] = 2:4-2:20 +[#1 Removal] = 0:3-0:4 0| abs :: Int -> Int - + >-< 1| abs x 2| | x >= 0 = x - >----------------< + 3| | otherwise = -x 4| -[#2 Leading delimiter] = 2:5-2:6 +[#1 Leading delimiter] = 0:3-0:4 0| abs :: Int -> Int - + >-< 1| abs x 2| | x >= 0 = x - >-< + 3| | otherwise = -x 4| -[#2 Insertion delimiter] = "\n" +[#1 Insertion delimiter] = " " -[#3 Content] = -[#3 Domain] = 3:6-3:20 +[#2 Content] = +[#2 Domain] = 0:4-1:5 0| abs :: Int -> Int - + >------------- 1| abs x - + -----< 2| | x >= 0 = x 3| | otherwise = -x - >--------------< + 4| -[#3 Removal] = 3:4-3:20 +[#2 Removal] = 0:3-1:5 0| abs :: Int -> Int - + >-------------- 1| abs x - + -----< 2| | x >= 0 = x 3| | otherwise = -x - >----------------< + 4| -[#3 Leading delimiter] = 3:5-3:6 +[#2 Leading delimiter] = 0:3-0:4 0| abs :: Int -> Int - + >-< 1| abs x 2| | x >= 0 = x 3| | otherwise = -x - >-< + 4| -[#3 Insertion delimiter] = "\n" +[#2 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration3.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual3.scope similarity index 52% rename from packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration3.scope rename to packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual3.scope index b18f00920b..9c2da0c486 100644 --- a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration3.scope +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual3.scope @@ -6,97 +6,80 @@ bap x --- [#1 Content] = -[#1 Removal] = -[#1 Domain] = 1:0-3:20 +[#1 Domain] = 0:4-0:4 0| bap :: Int -> Int - -1| bap x - >----- -2| | x > 0, x == 0 = x - ------------------------ -3| | otherwise = -x - --------------------< -4| - - -[#1 Insertion delimiter] = "\n" - - -[#2 Content] = -[#2 Domain] = 2:6-2:24 -0| bap :: Int -> Int - + >< 1| bap x 2| | x > 0, x == 0 = x - >------------------< + 3| | otherwise = -x 4| -[#2 Removal] = 2:4-2:24 +[#1 Removal] = 0:3-0:4 0| bap :: Int -> Int - + >-< 1| bap x 2| | x > 0, x == 0 = x - >--------------------< + 3| | otherwise = -x 4| -[#2 Leading delimiter] = 2:5-2:6 +[#1 Leading delimiter] = 0:3-0:4 0| bap :: Int -> Int - + >-< 1| bap x 2| | x > 0, x == 0 = x - >-< + 3| | otherwise = -x 4| -[#2 Insertion delimiter] = "\n" +[#1 Insertion delimiter] = " " -[#3 Content] = -[#3 Domain] = 3:6-3:20 +[#2 Content] = +[#2 Domain] = 0:4-1:5 0| bap :: Int -> Int - + >------------- 1| bap x - + -----< 2| | x > 0, x == 0 = x 3| | otherwise = -x - >--------------< + 4| -[#3 Removal] = 3:4-3:20 +[#2 Removal] = 0:3-1:5 0| bap :: Int -> Int - + >-------------- 1| bap x - + -----< 2| | x > 0, x == 0 = x 3| | otherwise = -x - >----------------< + 4| -[#3 Leading delimiter] = 3:5-3:6 +[#2 Leading delimiter] = 0:3-0:4 0| bap :: Int -> Int - + >-< 1| bap x 2| | x > 0, x == 0 = x 3| | otherwise = -x - >-< + 4| -[#3 Insertion delimiter] = "\n" +[#2 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual4.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual4.scope new file mode 100644 index 0000000000..5881705908 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual4.scope @@ -0,0 +1,352 @@ +compare :: Int -> Int -> Ordering +compare x y + | x < y = LT + | x == y = EQ + | x > y = GT + +--- + +[#1 Content] = +[#1 Domain] = 1:8-1:9 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >-< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#1 Removal] = 1:8-1:10 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >--< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#1 Leading delimiter] = 1:7-1:8 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >-< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#1 Trailing delimiter] = 1:9-1:10 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >-< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#1 Insertion delimiter] = " " + + +[#2 Content] = +[#2 Domain] = 1:10-1:11 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >-< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#2 Removal] = 1:9-1:11 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >--< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#2 Leading delimiter] = 1:9-1:10 +0| compare :: Int -> Int -> Ordering + +1| compare x y + >-< +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + +5| + + +[#2 Insertion delimiter] = " " + + +[#3 Content] = +[#3 Domain] = 3:6-3:7 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#3 Removal] = 3:6-3:8 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >--< +4| | x > y = GT + +5| + + +[#3 Leading delimiter] = 3:5-3:6 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#3 Trailing delimiter] = 3:7-3:8 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#3 Insertion delimiter] = " " + + +[#4 Content] = +[#4 Domain] = 3:11-3:12 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#4 Removal] = 3:11-3:13 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >--< +4| | x > y = GT + +5| + + +[#4 Leading delimiter] = 3:10-3:11 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#4 Trailing delimiter] = 3:12-3:13 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + >-< +4| | x > y = GT + +5| + + +[#4 Insertion delimiter] = " " + + +[#5 Content] = +[#5 Domain] = 4:6-4:7 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-< +5| + + +[#5 Removal] = 4:6-4:9 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >---< +5| + + +[#5 Leading delimiter] = 4:5-4:6 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-< +5| + + +[#5 Trailing delimiter] = 4:7-4:9 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >--< +5| + + +[#5 Insertion delimiter] = " " + + +[#6 Content] = +[#6 Domain] = 4:11-4:12 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-< +5| + + +[#6 Removal] = 4:11-4:13 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >--< +5| + + +[#6 Leading delimiter] = 4:10-4:11 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-< +5| + + +[#6 Trailing delimiter] = 4:12-4:13 +0| compare :: Int -> Int -> Ordering + +1| compare x y + +2| | x < y = LT + +3| | x == y = EQ + +4| | x > y = GT + >-< +5| + + +[#6 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual5.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual5.scope new file mode 100644 index 0000000000..cdf9fdf405 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual5.scope @@ -0,0 +1,553 @@ +fromEither :: (a -> c) -> (b -> c) -> Either a b -> c +fromEither f g x = case x of + Left l -> f l + Right r -> g r + +--- + +[#1 Content] = +[#1 Domain] = 1:11-1:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#1 Removal] = 1:11-1:13 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >--< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#1 Leading delimiter] = 1:10-1:11 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#1 Trailing delimiter] = 1:12-1:13 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#1 Insertion delimiter] = " " + + +[#2 Content] = +[#2 Domain] = 1:13-1:14 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#2 Removal] = 1:13-1:15 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >--< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#2 Leading delimiter] = 1:12-1:13 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#2 Trailing delimiter] = 1:14-1:15 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#2 Insertion delimiter] = " " + + +[#3 Content] = +[#3 Domain] = 1:15-1:16 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#3 Removal] = 1:15-1:17 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >--< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#3 Leading delimiter] = 1:14-1:15 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#3 Trailing delimiter] = 1:16-1:17 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + >-< +2| Left l -> f l + +3| Right r -> g r + +4| + + +[#3 Insertion delimiter] = " " + + +[#4 Content] = +[#4 Domain] = 2:4-2:8 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >----< +3| Right r -> g r + +4| + + +[#4 Removal] = 2:4-2:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >------< +3| Right r -> g r + +4| + + +[#4 Leading delimiter] = 2:0-2:4 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >----< +3| Right r -> g r + +4| + + +[#4 Trailing delimiter] = 2:8-2:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--< +3| Right r -> g r + +4| + + +[#4 Insertion delimiter] = " " + + +[#5 Content] = +[#5 Domain] = 2:4-2:11 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-------< +3| Right r -> g r + +4| + + +[#5 Removal] = 2:4-2:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--------< +3| Right r -> g r + +4| + + +[#5 Leading delimiter] = 2:0-2:4 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >----< +3| Right r -> g r + +4| + + +[#5 Trailing delimiter] = 2:11-2:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-< +3| Right r -> g r + +4| + + +[#5 Insertion delimiter] = " " + + +[#6 Content] = +[#6 Domain] = 2:10-2:11 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-< +3| Right r -> g r + +4| + + +[#6 Removal] = 2:10-2:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--< +3| Right r -> g r + +4| + + +[#6 Leading delimiter] = 2:8-2:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--< +3| Right r -> g r + +4| + + +[#6 Trailing delimiter] = 2:11-2:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-< +3| Right r -> g r + +4| + + +[#6 Insertion delimiter] = " " + + +[#7 Content] = +[#7 Domain] = 2:17-2:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-< +3| Right r -> g r + +4| + + +[#7 Removal] = 2:16-2:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >--< +3| Right r -> g r + +4| + + +[#7 Leading delimiter] = 2:16-2:17 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + >-< +3| Right r -> g r + +4| + + +[#7 Insertion delimiter] = " " + + +[#8 Content] = +[#8 Domain] = 3:4-3:9 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-----< +4| + + +[#8 Removal] = 3:4-3:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >------< +4| + + +[#8 Leading delimiter] = 3:0-3:4 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >----< +4| + + +[#8 Trailing delimiter] = 3:9-3:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#8 Insertion delimiter] = " " + + +[#9 Content] = +[#9 Domain] = 3:4-3:11 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-------< +4| + + +[#9 Removal] = 3:4-3:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >--------< +4| + + +[#9 Leading delimiter] = 3:0-3:4 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >----< +4| + + +[#9 Trailing delimiter] = 3:11-3:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#9 Insertion delimiter] = " " + + +[#10 Content] = +[#10 Domain] = 3:10-3:11 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#10 Removal] = 3:10-3:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >--< +4| + + +[#10 Leading delimiter] = 3:9-3:10 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#10 Trailing delimiter] = 3:11-3:12 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#10 Insertion delimiter] = " " + + +[#11 Content] = +[#11 Domain] = 3:17-3:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#11 Removal] = 3:16-3:18 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >--< +4| + + +[#11 Leading delimiter] = 3:16-3:17 +0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c + +1| fromEither f g x = case x of + +2| Left l -> f l + +3| Right r -> g r + >-< +4| + + +[#11 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual6.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual6.scope new file mode 100644 index 0000000000..b44eb8570d --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argument.actual6.scope @@ -0,0 +1,644 @@ +zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] +zipWith f [] [] = [] +zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +--- + +[#1 Content] = +[#1 Domain] = 1:8-1:9 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#1 Removal] = 1:8-1:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >--< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#1 Leading delimiter] = 1:7-1:8 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#1 Trailing delimiter] = 1:9-1:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#1 Insertion delimiter] = " " + + +[#2 Content] = +[#2 Domain] = 1:10-1:12 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >--< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#2 Removal] = 1:10-1:13 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >---< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#2 Leading delimiter] = 1:9-1:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#2 Trailing delimiter] = 1:12-1:13 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#2 Insertion delimiter] = " " + + +[#3 Content] = +[#3 Domain] = 1:13-1:15 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >--< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#3 Removal] = 1:13-1:16 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >---< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#3 Leading delimiter] = 1:12-1:13 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#3 Trailing delimiter] = 1:15-1:16 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + >-< +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + +3| + + +[#3 Insertion delimiter] = " " + + +[#4 Content] = +[#4 Domain] = 2:8-2:9 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#4 Removal] = 2:8-2:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#4 Leading delimiter] = 2:7-2:8 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#4 Trailing delimiter] = 2:9-2:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#4 Insertion delimiter] = " " + + +[#5 Content] = +[#5 Domain] = 2:10-2:18 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--------< +3| + + +[#5 Removal] = 2:10-2:19 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---------< +3| + + +[#5 Leading delimiter] = 2:9-2:10 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#5 Trailing delimiter] = 2:18-2:19 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#5 Insertion delimiter] = " " + + +[#6 Content] = +[#6 Domain] = 2:11-2:12 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#6 Removal] = 2:11-2:13 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#6 Trailing delimiter] = 2:12-2:13 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#6 Insertion delimiter] = " " + + +[#7 Content] = +[#7 Removal] = +[#7 Domain] = 2:11-2:17 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >------< +3| + + +[#7 Insertion delimiter] = " " + + +[#8 Content] = +[#8 Domain] = 2:15-2:17 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#8 Removal] = 2:14-2:17 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---< +3| + + +[#8 Leading delimiter] = 2:14-2:15 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#8 Insertion delimiter] = " " + + +[#9 Content] = +[#9 Domain] = 2:19-2:27 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--------< +3| + + +[#9 Removal] = 2:19-2:28 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---------< +3| + + +[#9 Leading delimiter] = 2:18-2:19 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#9 Trailing delimiter] = 2:27-2:28 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#9 Insertion delimiter] = " " + + +[#10 Content] = +[#10 Domain] = 2:20-2:21 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#10 Removal] = 2:20-2:22 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#10 Trailing delimiter] = 2:21-2:22 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#10 Insertion delimiter] = " " + + +[#11 Content] = +[#11 Removal] = +[#11 Domain] = 2:20-2:26 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >------< +3| + + +[#11 Insertion delimiter] = " " + + +[#12 Content] = +[#12 Domain] = 2:24-2:26 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#12 Removal] = 2:23-2:26 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---< +3| + + +[#12 Leading delimiter] = 2:23-2:24 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#12 Insertion delimiter] = " " + + +[#13 Content] = +[#13 Domain] = 2:32-2:33 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#13 Removal] = 2:32-2:34 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#13 Leading delimiter] = 2:31-2:32 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#13 Trailing delimiter] = 2:33-2:34 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#13 Insertion delimiter] = " " + + +[#14 Content] = +[#14 Domain] = 2:34-2:35 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#14 Removal] = 2:34-2:36 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#14 Leading delimiter] = 2:33-2:34 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#14 Trailing delimiter] = 2:35-2:36 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#14 Insertion delimiter] = " " + + +[#15 Content] = +[#15 Domain] = 2:46-2:47 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#15 Removal] = 2:46-2:48 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#15 Leading delimiter] = 2:45-2:46 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#15 Trailing delimiter] = 2:47-2:48 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#15 Insertion delimiter] = " " + + +[#16 Content] = +[#16 Domain] = 2:48-2:50 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#16 Removal] = 2:48-2:51 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---< +3| + + +[#16 Leading delimiter] = 2:47-2:48 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#16 Trailing delimiter] = 2:50-2:51 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#16 Insertion delimiter] = " " + + +[#17 Content] = +[#17 Domain] = 2:51-2:53 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >--< +3| + + +[#17 Removal] = 2:50-2:53 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >---< +3| + + +[#17 Leading delimiter] = 2:50-2:51 +0| zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] + +1| zipWith f [] [] = [] + +2| zipWith f (x : xs) (y : ys) = f x y : zipWith f xs ys + >-< +3| + + +[#17 Insertion delimiter] = " " diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration4.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration4.scope deleted file mode 100644 index 830f94fce6..0000000000 --- a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration4.scope +++ /dev/null @@ -1,163 +0,0 @@ -compare :: Int -> Int -> Ordering -compare x y - | x < y = LT - | x == y = EQ - | x > y = GT - ---- - -[#1 Content] = -[#1 Removal] = -[#1 Domain] = 1:0-4:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - >----------- -2| | x < y = LT - ----------------- -3| | x == y = EQ - ----------------- -4| | x > y = GT - -----------------< -5| - - -[#1 Insertion delimiter] = "\n" - - -[#2 Content] = -[#2 Domain] = 2:6-2:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - >-----------< -3| | x == y = EQ - -4| | x > y = GT - -5| - - -[#2 Removal] = 2:4-2:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - >-------------< -3| | x == y = EQ - -4| | x > y = GT - -5| - - -[#2 Leading delimiter] = 2:5-2:6 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - >-< -3| | x == y = EQ - -4| | x > y = GT - -5| - - -[#2 Insertion delimiter] = "\n" - - -[#3 Content] = -[#3 Domain] = 3:6-3:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - >-----------< -4| | x > y = GT - -5| - - -[#3 Removal] = 3:4-3:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - >-------------< -4| | x > y = GT - -5| - - -[#3 Leading delimiter] = 3:5-3:6 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - >-< -4| | x > y = GT - -5| - - -[#3 Insertion delimiter] = "\n" - - -[#4 Content] = -[#4 Domain] = 4:6-4:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - -4| | x > y = GT - >-----------< -5| - - -[#4 Removal] = 4:4-4:17 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - -4| | x > y = GT - >-------------< -5| - - -[#4 Leading delimiter] = 4:5-4:6 -0| compare :: Int -> Int -> Ordering - -1| compare x y - -2| | x < y = LT - -3| | x == y = EQ - -4| | x > y = GT - >-< -5| - - -[#4 Insertion delimiter] = "\n" diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration5.scope b/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration5.scope deleted file mode 100644 index b4104462e9..0000000000 --- a/packages/cursorless-vscode-e2e/src/suite/fixtures/scopes/haskell/argumentOrParameter.iteration5.scope +++ /dev/null @@ -1,102 +0,0 @@ -fromEither :: (a -> c) -> (b -> c) -> Either a b -> c -fromEither f g x = case x of - Left l -> f l - Right r -> g r - ---- - -[#1 Content] = -[#1 Removal] = -[#1 Domain] = 1:0-3:18 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - >---------------------------- -2| Left l -> f l - ------------------ -3| Right r -> g r - ------------------< -4| - - -[#1 Insertion delimiter] = "\n" - - -[#2 Content] = -[#2 Domain] = 2:4-2:18 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - >--------------< -3| Right r -> g r - -4| - - -[#2 Removal] = 2:0-2:18 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - >------------------< -3| Right r -> g r - -4| - - -[#2 Leading delimiter] = 2:0-2:4 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - >----< -3| Right r -> g r - -4| - - -[#2 Insertion delimiter] = "\n" - - -[#3 Content] = -[#3 Domain] = 3:4-3:18 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - -3| Right r -> g r - >--------------< -4| - - -[#3 Removal] = 3:0-3:18 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - -3| Right r -> g r - >------------------< -4| - - -[#3 Leading delimiter] = 3:0-3:4 -0| fromEither :: (a -> c) -> (b -> c) -> Either a b -> c - -1| fromEither f g x = case x of - -2| Left l -> f l - -3| Right r -> g r - >----< -4| - - -[#3 Insertion delimiter] = "\n"