aoc2025

Advent of Code 2025
git clone git://git.rr3.xyz/aoc2025
Log | Files | Refs | Submodules

commit aaa3daa5a1939bcf5de11bc68ed75b9e175d06cc
parent eff0a03b28482b76bc2e3e7877ddfe3428529771
Author: Robert Russell <robert@rr3.xyz>
Date:   Mon, 22 Dec 2025 11:40:28 -0800

Add some work on 06 Part 2 (not sure what)

Diffstat:
A06/Common | 2++
M06/Main.hs | 87++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
M06/input.txt | 2+-
Mpackage.yaml | 2++
4 files changed, 62 insertions(+), 31 deletions(-)

diff --git a/06/Common b/06/Common @@ -0,0 +1 @@ +../lib/Common/ +\ No newline at end of file diff --git a/06/Main.hs b/06/Main.hs @@ -1,67 +1,93 @@ module Main (main) where +import Common.Matrix (Matrix) +import Common.Matrix qualified as M import Control.Applicative +import Control.Arrow (second, (***)) +import Control.Monad import Data.ByteString (ByteString) import Data.ByteString qualified as BS -import Data.Functor -import Data.List +import Data.Char (isDigit, isSpace, ord) +import Data.Functor ((<$)) +import Data.List (transpose, unsnoc) +import Data.List.Split (splitWhen) +import Data.Maybe (mapMaybe) +import Safe (headMay) import Sparsec import System.Exit (die) -------------------------------------------------------------------------------- -- Solution +data Operand = Digit Int | Space deriving (Show) data Operator = Add | Mul deriving (Show) -data Problem = Problem Operator [Int] deriving (Show) +data Input = Input [[Operand]] [Operator] deriving (Show) -solve :: Problem -> Int -solve (Problem operator operands) = case operator of - Add -> sum operands - Mul -> product operands +-- data Problem = Problem Operator [[Token]] -part1 :: [Problem] -> Int -part1 = sum . map solve +-- tokenOp :: Token -> Maybe Operator +-- tokenOp = \case +-- Op op -> Just op +-- _ -> Nothing + +-- [[Token]] +-- Maybe ([[Token]], [Token]) +-- Maybe ([[[Token]]], [Operator]) +-- Maybe ([[[Token]]], [Operator]) + +-- lanes :: [[Token]] -> [[[Token]]] +-- lanes = let x = traverse ((sequenceA . second headMay . unzip) <=< traverse unsnoc) . splitWhen (all (== Space)) . transpose in undefined +-- lanes = let x = fmap (uncurry zip . (splitWhen (all (== Space)) *** mapMaybe tokenOp)) . unsnoc in undefined + + +-- solve :: Problem -> Int +-- solve (Problem operator operands) = case operator of +-- Add -> sum operands +-- Mul -> product operands + +-- part1 :: [Problem] -> Int +-- part1 = sum . map solve -------------------------------------------------------------------------------- -- Parsing -data ParseError = ErrorUtf8 Loc | ErrorOther deriving (Show) +data ParseError = ErrorUtf8 Loc | ErrorMatrix deriving (Show) instance Utf8Error ParseError where utf8Error = ErrorUtf8 type P a = Parse ParseError a -pVws :: P ByteString -pVws = charWhile \c -> c == '\r' || c == '\n' - pHws :: P ByteString -pHws = charWhile \c -> c == ' ' || c == '\t' +pHws = charWhile isSpace -token :: P a -> P a -token = (<* pHws) +pLine :: P a -> P a +pLine = (<* char '\n') -line :: P a -> P a -line p = pHws *> p <* pVws +pToken :: P a -> P a +pToken = (<* pHws) -pOperand :: P Int -pOperand = token $ fromIntegral <$> natural 10 +pDigit :: P Int +pDigit = subtract (ord '0') . ord <$> charIf isDigit + +pOperand :: P Digit +pOperand = Digit <$> pDigit <|> Space <$ char ' ' pOperator :: P Operator -pOperator = token $ (char '+' $> Add) <|> (char '*' $> Mul) +pOperator = Add <$ char '+' <|> Mul <$ char '*' + +pInput :: P Input +pInput = Input <$> many (pLine $ many pOperand) <*> -pProblems :: P [Problem] -pProblems = do - operands <- many . line . some $ pOperand - operators <- line . some $ pOperator - eof - pure $ zipWith Problem operators (transpose operands) +-- many pRow >>= \rs -> case M.fromList rs of +-- Just m -> pure m +-- Nothing -> err ErrorMatrix -------------------------------------------------------------------------------- -- Main -getInput :: IO [Problem] +getInput :: IO [[Token]] getInput = do raw <- BS.getContents - case runParse pProblems raw locZero of + case runParse pInput raw locZero of Ok input _ _ -> pure input Fail -> die "parse failure" Error e -> die $ "parse error: " ++ show e @@ -69,6 +95,7 @@ getInput = do main :: IO () main = do input <- getInput - print . part1 $ input + print input +-- print . part1 $ input -- print . part2 $ input diff --git a/06/input.txt b/06/input.txt @@ -2,4 +2,4 @@ 6 87 39 72 56 12 69 79 58 4378 86 49 146 5 412 85 7751 577 69 813 55 9942 753 49 734 587 15 779 148 499 961 55 93 93 51 73 54 69 6 539 734 6659 23 88 39 7 894 52 69 11 6536 269 7963 227 63 871 76 7929 51 31 48 84 921 571 887 32 65 8 24 335 373 1259 216 6154 79 627 36 827 29 17 977 69 35 6987 822 41 421 43 79 7 222 569 994 196 51 472 869 511 174 9 71 477 64 38 265 64 69 348 14 346 493 1246 7 38 673 82 34 3337 41 863 2826 78 41 356 61 314 46 29 93 841 71 889 38 95 64 366 3633 228 18 84 5 88 752 292 93 58 31 17 181 174 1928 443 76 636 741 323 678 261 86 99 128 79 41 5499 81 241 48 278 326 4914 39 893 47 81 249 61 889 98 9428 472 68 34 99 135 43 56 112 3 99 984 64 32 54 342 96 957 467 6 5 28 33 631 383 3 785 757 688 4 99 9 46 2 486 51 923 657 36 698 318 721 67 878 52 8 8 42 415 325 15 77 8 243 89 23 3871 638 25 35 6859 165 51 53 96 49 19 6849 92 27 468 9576 75 299 51 63 15 41 68 7671 667 8 3 3555 4911 645 8521 669 13 473 62 44 82 17 1432 8 94 26 6 43 47 23 72 5 536 92 795 3884 56 232 31 34 72 717 24 46 99 46 34 74 5186 5964 13 442 896 5464 91 5 76 696 2 9 668 14 98 99 3 241 18 956 72 22 43 95 117 2577 53 17 4 12 3 499 9 883 57 13 87 96 75 75 22 69 3 8117 89 194 4372 943 337 5 76 39 549 989 99 42 1346 55 92 69 229 14 3 8 766 55 825 717 4 421 213 936 7324 11 63 81 31 845 5222 12 4762 9197 57 1132 21 41 17 116 59 6445 327 6249 47 31 81 159 24 6396 439 85 518 26 1854 425 79 1422 79 32 4 17 288 32 472 566 9696 13 152 48 329 84 86 84 744 559 5 974 92 93 146 588 1543 331 643 72 5 17 2722 1 147 983 2 3271 597 788 21 18 56 349 22 141 624 83 52 98 24 39 96 828 677 422 856 18 154 166 29 59 52 134 83 7468 6126 781 23 97 921 656 42 59 4 6 324 796 63 55 72 47 12 45 316 6694 7486 68 622 5 591 35 83 81 185 61 532 4278 8 97 52 347 975 89 631 98 41 36 44 661 92 45 29 663 695 31 876 685 52 22 375 116 965 41 63 87 7183 991 86 45 17 2 987 97 9842 21 52 899 71 72 52 51 2548 35 189 393 58 7517 7 986 86 56 252 25 186 16 26 892 187 692 34 445 991 868 6467 91 98 9313 314 657 877 99 25 78 5927 14 894 56 73 67 6148 579 115 334 69 293 98 6 315 484 16 97 562 4861 1 65 31 81 135 368 86 624 54 6126 44 497 97 46 66 11 9 461 178 48 1756 846 391 228 47 38 8212 39 949 443 321 43 958 838 952 145 9113 71 144 438 34 654 3 7 719 588 78 42 932 71 86 52 24 529 9649 2131 629 14 4 56 5289 12 214 76 1752 27 393 954 98 933 13 143 6962 72 5 813 832 15 86 677 8174 94 778 3 853 24 53 62 862 37 21 56 728 3828 37 56 67 239 57 5 753 993 95 1 47 81 683 46 73 59 97 193 651 7694 54 8 94 39 631 27 7 815 363 142 542 487 3 42 59 935 6 72 498 22 36 153 294 171 87 74 746 54 764 17 15 76 77 39 62 68 24 31 4247 535 659 691 76 985 7 552 21 418 297 398 46 16 525 8772 45 816 21 36 4 767 553 52 58 832 16 921 72 528 3 312 34 95 169 196 8917 75 428 174 76 25 1332 18 3336 75 87 176 693 127 174 76 62 9154 67 437 95 9 9627 1477 992 155 693 275 5 1519 49 863 3753 74 29 46 43 56 72 46 453 63 77 642 21 94 857 229 283 67 896 499 8 346 15 24 72 197 83 857 9616 78 7 37 37 636 453 937 65 3688 59 421 9591 7725 75 39 97 33 2451 29 559 34 328 32 6495 784 18 864 98 6 45 683 57 919 26 641 858 168 8 842 44 18 13 12 524 597 7 45 31 723 122 522 3 926 773 23 632 64 58 3548 9 292 458 398 58 96 64 24 68 75 89 64 62 66 2 67 156 211 9 34 88 673 12 52 817 886 36 9 36 36 21 158 18 9551 396 22 33 99 54 61 558 9476 648 8 54 2 853 789 394 197 9 4262 2485 488 43 1364 99 799 99 32 54 674 53 35 586 24 7623 97 34 7 2 62 15 57 27 789 439 53 84 4 7226 4115 8 96 398 89 484 83 6751 74 5 922 514 47 95 519 827 446 82 72 76 21 31 32 96 3257 21 21 171 2 31 17 9178 977 11 469 58 712 162 4 1 132 91 84 72 741 576 55 7822 7 53 37 14 63 284 386 524 2824 67 9 61 5 116 27 97 13 145 259 2786 921 78 5846 2 9264 82 95 5 43 365 2841 795 4 26 1 19 763 518 7755 29 7363 684 489 72 227 93 13 694 81 45 848 661 85 32 99 92 35 972 676 327 4387 21 39 339 794 911 2 639 6869 23 81 38 261 26 812 3 313 941 168 65 23 2966 11 37 8918 5 334 947 62 394 259 6416 11 232 39 15 73 53 751 25 51 658 525 8963 248 86 47 5 97 354 59 62 56 39 82 286 391 3347 669 47 382 818 749 896 666 15 78 955 96 87 4981 7 817 53 298 77 2238 29 52 16 8 191 48 292 23 3896 89 88 68 2 7254 181 87 896 27 128 44 97 641 97 646 12 94 631 4 27 21 52 671 15 18 374 191 886 8 75 51 65 64 812 4 841 215 487 164 313 575 51 329 978 339 14 73 6976 56 2 82 97 843 33 783 54 248 59 48 577 5766 39 41 91 3 34 5918 46 47 894 6959 88 32 68 62 96 86 53 6996 336 929 4 2236 9665 148 9481 395 26 632 22 56 34 75 8461 43 48 14 42 47 851 61 72 9 835 834 812 151 19 353 46 21 76 796 67 89 57 75 28 697 9918 4272 55 226 167 43 97 53 38 561 4 53 768 796 791 5 97 981 9 466 61 82 23 59 263 4475 11 75 65 18 5 559 6 927 664 54 29 25 66 1 55 94 11 4945 54 67 7998 253 41 737 86 82 257 59 35 39 2111 775 98 21 726 77 68 14 517 24 884 72 86 18 847 455 922 14 396 52 866 8682 2461 594 2826 87 78 5235 549 76 756 213 22 3512 9959 1651 881 12 75 32 86 718 88 24 998 94 117 797 95 1895 56 74 7 77 968 93 12 528 11 56 252 94 1635 21 638 96 54 238 1 576 54 19 866 994 79 513 175 12 52 771 5177 83 49 483 59 878 287 115 63 34 14 534 51 946 996 71 82 46 33 17 51 466 832 984 67 5 832 155 28 894 98 166 188 1848 4874 92 34 24 162 191 24 62 2 5 824 827 11 8 57 3 93 96 141 6579 419 89 652 5 5713 58 37 91 552 85 393 829 52 81 76 44 626 74 16 98 11 75 59 489 82 77 14 279 512 3 181 675 8 93 183 394 168 69 21 21 8185 951 83 51 68 4 29 97 4254 23 51 333 28 62 31 919 553 26 258 68 62 242 87 53 48 48 164 79 824 27 4 698 266 355 87 763 444 753 845 369 92 6998 931 291 241 17 59 53 3539 92 695 5 36 119 334 72 85 665 84 887 774 553 568 1527 14 39 4271 2619 746 651 792 68 611 167 91 6674 257 1771 55 787 81 73 264 684 44 4893 789 29 439 561 361 884 37 71 9261 38 673 784 426 46 9228 279 47 172 3178 82 446 217 83 334 9 4 49 7 82 85 7686 57 52 83 47 288 718 166 894 37 8 92 4278 32 761 15 8639 6326 872 535 6 48 93 9923 17 44 86 953 956 2936 71 375 3188 23 635 68 93 163 39 38 49 57 96 658 459 42 86 25 51 782 24 8 218 94 21 4534 8768 27 882 76 519 88 38 631 464 2465 243 6 74 57 773 4 36 152 877 463 665 211 19 5 23 153 53 83 137 37 84 662 582 751 91 29 18 76 974 75 75 86 32 49 9 44 62 55 5154 512 81 96 858 755 16 817 11 747 746 5796 54 16 366 3893 1 129 78 5667 282 729 47 71 27 646 33 853 455 34 72 592 59 168 237 392 153 39 186 729 78 288 25 76 687 61 2 317 72 55 228 21 17 779 17 58 41 4 4263 4786 466 81 563 955 3 6758 51 138 3429 99 72 44 885 3 47 66 24 636 9473 896 672 17 992 78 246 541 655 897 6 19 57 23 57 214 34 374 548 61 9 919 65 216 7841 973 22 13 116 456 862 4254 83 94 75 88 7532 2 393 56 756 952 1916 698 2 647 77 3 566 735 96 572 47 422 155 729 69 169 52 73 89 47 41 191 2 47 39 567 433 696 8 968 486 62 968 62 66 2783 2 187 861 91 85 4 32 95 314 35 81 89 2 22 9 99 297 682 2 36 66 5879 826 25 97 977 46 57 91 741 22 41 28 824 714 163 53 65 81 85 591 164 52 96 98 73 325 16 791 535 96 1297 1738 145 9 3686 89 295 49 43 86 19 15 472 233 4 3372 79 54 9 13 11 72 727 31 583 41 1299 97 51 6367 5137 273 52 333 78 4217 644 7587 17 99 5682 19 29 27 938 9472 154 36 76 5 89 37 5 28 6 95 49 82 66 7 44 8183 524 38 819 11 7 825 9 8 397 48 79 64 619 147 1 3246 6 16 11 95 77 439 62 463 668 42 9 67 75 314 42 3 39 12 435 83 458 8 1974 8 6 62 1 1 76 319 9586 295 2 27 8 73 722 9 6487 23 8667 416 853 68 82 65 8 127 81 8 53 565 22 93 97 8 11 9511 89 34 8237 3 52 312 389 715 52 444 4487 77 62 14 946 6 733 7 1 937 71 88 4 1185 33 6 7137 7 1 296 81 954 749 3223 6 712 56 32 5 77 4 7 91 144 429 3589 62 42 35 21 5 972 6 9 53 82 12 977 53 15 7 5 114 169 588 191 35 96 84 68 5 52 3611 9 682 35 424 93 2698 29 6 29 2 752 35 428 13 264 25 73 58 3 4646 614 58 413 29 368 3 695 961 17 545 837 21 54 3 76 22 12 293 57 41 262 766 592 3 92 98 43 7171 94 1 52 11 638 63 282 9 25 996 612 465 85 14 7415 96 9 9 87 585 13 919 51 6 53 76 682 3997 33 72 42 3 5 5112 54 37 2 3248 66 22 8 33 67 792 22 9236 939 555 49 8724 672 313 9386 533 38 63 2 23 886 75 2212 351 75 97 33 69 289 39 82 14 982 154 598 13 91 194 9 9 86 91 4 3387 82 7 52 522 8958 9942 2 643 574 36 3 96 13 97 9 77 143 783 686 4 87 779 9 762 976 51 53 43 6 4459 4 96 45 93 8 519 52 615 234 238 57 68 79 3 61 51 477 7717 76 6 3912 332 9 354 218 45 664 8 25 358 1372 818 33 93 375 37 51 86 696 39 93 26 51 38 823 276 988 95 976 55 216 5135 7337 814 41 54 7 9963 132 21 175 868 5 6725 1637 97 248 97 71 65 65 535 66 44 817 5 35 942 65 5414 73 76 8 82 733 96 9 534 2 3 8 7 7935 2 821 33 7 935 25 6 42 91 85 14 57 644 829 21 35 417 1839 672 33 69 87 44 62 23 77 3 622 71 6 5 997 98 3 31 52 87 9 92 47 964 2 1 654 97 17 797 22 662 496 3144 86 58 87 2 13 93 3 32 6 76 6 562 9 1 14 8 4 18 81 7765 66 61 53 87 8427 34 63 9 826 66 6 67 56 6 49 29 423 34 18 7 58 7 57 58 51 75 81 831 54 4 172 97 5 545 835 45 372 75 84 22 8734 7 18 98 73 2 6 78 8956 11 79 512 87 53 1 449 46 8 245 98 2 4 26 38 3 26 144 2 3 948 4 282 962 387 1 112 636 444 213 149 71 4365 635 541 878 32 42 29 75 81 647 2 27 919 2 35 69 25 46 62 566 747 513 6521 94 46 1911 4664 173 213 798 48 111 9 85 8692 422 8193 658 871 9 92 627 778 2837 8523 17 85 82 683 839 955 89 144 6742 185 546 9 848 7 1616 964 85 451 332 7 52 48 1 622 6 8 55 5 69 59 1548 41 58 23 63 672 99 799 17 51 21 26 8341 24 547 93 6633 8885 452 741 8 9 844 3218 9 9 11 94 844 3698 14 25 6952 82 92 775 6 189 544 65 1 17 76 819 23 5 2 46 44 372 6 8 4588 79 96 6373 1469 3 99 37 272 97 54 1998 971 21 417 54 88 43 922 4 49 915 3 334 722 13 48 9 9 329 75 96 925 81 38 112 293 1774 9 68 22 2 199 292 87 6 98 11 8 45 69 4 7866 88 2 9 356 778 21 17 15 36 61 4384 24 8 81 6931 9 911 21 5578 729 475 29 49 752 2867 13 527 221 43 48 548 85 862 933 816 16 45 4 14 1 665 29 13 434 63 9 453 7 8 56 1 89 27 8 2 27 3 872 2552 253 4 59 898 1 1678 71 77 6925 7 78 84 726 2 86 71 34 286 2752 933 655 57 32 1 422 264 698 383 47 76 18 67 53 668 5 25 78 29 4 769 99 663 8321 444 29 22 839 56 6 3487 7 28 69 27 11 5 639 88 59 963 739 833 1 343 69 1 794 447 24 76 52 849 13 843 44 161 29 51 22 9 97 5 72 79 76 22 772 848 8 872 379 5 652 7 81 925 21 98 823 3 2736 8 89 39 532 29 69 63 2 84 53 7 546 11 3 64 6 2196 613 3 14 536 31 48 77 148 81 65 65 58 466 858 24 25 19 858 852 299 84 57 47 89 447 88 41 672 51 2335 9395 234 5 753 78 872 44 73 28 64 83 777 77 6 954 22 24 33 82 83 4 468 96 647 9 5715 52 99 694 6722 734 92 6 76 4265 993 676 37 96 2159 54 94 13 354 -+ + + * * * + * * + * + * * + + + + * + * + * + * * * * + * + + + + * + * * * * * + * + * + * * * + + * + * + + * + + + + * * + + * + + + + * + * + * * * + * * + + * + * * + * * + + * * + + * + + * * * + * + * + * + * + + + * + + + * + * + + + + * + * + * + + * * + + * * + * + + * + * * * * + * * * + + * * * + * + + * + * + + + + * * * + * + + + * * + + + * * + + + * * + + * * * + + * * + * + + + + * + * * + + + + + + + + * * * * + * * * * * * * * + + * * + * * * + + + * + + * * * * * + + * * + + * * + * * * + * + + + + * + * * * * * + + + + + * * + + + * * + * * + + * * * * + + + * + + + + + * * + + * * * + * * * * * + * * * * + + * + * + + * * * * * + + + + * + * + * + * + * * + + * * + * * * + * + + * * * * * * * + * * + * + * + * * * * + + + + + * + + * * * * + + + + + + * * + * * * * + * + + * + * + + + + * + + + * + + * + * + * * + * * + + * + + * + + * * * * + * + + * * * * + * * * * * * + + * * * * + * + * * + * + + * + * * * * + + * * + * * + * * + + + + * * * + + * * + * * + * * * + + + * + * * + + * + + * * + + * * * * + * * + + + * * + * * * + + + * * * * * * + * + + * + * * + * * * * * * * * + + * + * + * * + + + + * + + + * + + * * + + + * + + * * * + * * + + + + * * + * + + * + * * * * * * + + + + + * + * + * + + + * * * + * + + + + + * + * * * * + + * + * * * * * + + * + * * + * + * + + + * + + + + + * * * * + * + + * + * + + * + + * + * + + * * * * * * + + + + + * * * + * * + * + * + * + * * + * * * + + * * * * + * * + * + + + * * + + * + * + + * * * + * + * * * + + * * * * + + * + + + * * + + + * * * * + * * + + + * * * * * + * * + + * + + + * * * * + * + * + * * * * + + + + * + + + * + + + * + + * + + + * + + * * + * * * * * * * * + + + + * + * * * * * + + + + * + + + * + + * + + + * * * + + + * * * + * + + * * + * * * + * * * * * * + + + * * + * * * + * + + * * + * + * * * * + * * * + * * * + * + + + * + * * + * * + + + + + + + * + * + * + + + * * * + * + + + + * * + * + + + + * * * * + + * + * + * * + * * + + + * + + + * * * + * + * * + * * + + ++ + + * * * + * * + * + * * + + + + * + * + * + * * * * + * + + + + * + * * * * * + * + * + * * * + + * + * + + * + + + + * * + + * + + + + * + * + * * * + * * + + * + * * + * * + + * * + + * + + * * * + * + * + * + * + + + * + + + * + * + + + + * + * + * + + * * + + * * + * + + * + * * * * + * * * + + * * * + * + + * + * + + + + * * * + * + + + * * + + + * * + + + * * + + * * * + + * * + * + + + + * + * * + + + + + + + + * * * * + * * * * * * * * + + * * + * * * + + + * + + * * * * * + + * * + + * * + * * * + * + + + + * + * * * * * + + + + + * * + + + * * + * * + + * * * * + + + * + + + + + * * + + * * * + * * * * * + * * * * + + * + * + + * * * * * + + + + * + * + * + * + * * + + * * + * * * + * + + * * * * * * * + * * + * + * + * * * * + + + + + * + + * * * * + + + + + + * * + * * * * + * + + * + * + + + + * + + + * + + * + * + * * + * * + + * + + * + + * * * * + * + + * * * * + * * * * * * + + * * * * + * + * * + * + + * + * * * * + + * * + * * + * * + + + + * * * + + * * + * * + * * * + + + * + * * + + * + + * * + + * * * * + * * + + + * * + * * * + + + * * * * * * + * + + * + * * + * * * * * * * * + + * + * + * * + + + + * + + + * + + * * + + + * + + * * * + * * + + + + * * + * + + * + * * * * * * + + + + + * + * + * + + + * * * + * + + + + + * + * * * * + + * + * * * * * + + * + * * + * + * + + + * + + + + + * * * * + * + + * + * + + * + + * + * + + * * * * * * + + + + + * * * + * * + * + * + * + * * + * * * + + * * * * + * * + * + + + * * + + * + * + + * * * + * + * * * + + * * * * + + * + + + * * + + + * * * * + * * + + + * * * * * + * * + + * + + + * * * * + * + * + * * * * + + + + * + + + * + + + * + + * + + + * + + * * + * * * * * * * * + + + + * + * * * * * + + + + * + + + * + + * + + + * * * + + + * * * + * + + * * + * * * + * * * * * * + + + * * + * * * + * + + * * + * + * * * * + * * * + * * * + * + + + * + * * + * * + + + + + + + * + * + * + + + * * * + * + + + + * * + * + + + + * * * * + + * + * + * * + * * + + + * + + + * * * + * + * * + * * + + diff --git a/package.yaml b/package.yaml @@ -37,7 +37,9 @@ dependencies: - containers - mtl - naturals + - safe - sparsec + - split - vector executables: