by Vanessa McHale | 2018-04-18 01:41

Initially, I had written hackage-fetch to see if there was any use of coelgot anywhere on Hackage. At the time, there was not, but this has changed due to my gmpint package. As of writing, it is not surprisingly the only use of co-(Elgot algebra)s on the entirety of Hackage.

And Hackage is big! It's 12626 packages as of writing, totaling 37 million lines of code, 21.5 million of which are Haskell. You can see the table produced by polyglot below:

------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks ------------------------------------------------------------------------------- Alex 203 36652 29043 2387 5222 Agda 32 1578 1193 44 341 Assembly 62 37757 35923 1334 500 ATS 36 4755 4057 311 387 Autoconf 370 113138 107758 2133 3247 Automake 16 906 635 116 155 Bash 1095 48554 29913 11462 7179 Batch 29 680 626 0 54 Brainfuck 8 305 242 0 63 C 4554 3322442 2955363 28378 338701 C-- 9 2011 1625 15 371 C++ 1955 1993534 1798937 58140 136457 C Header 5838 1986296 1845474 0 140822 Cabal 14259 958586 861144 21730 75712 Cabal Project 116 346 324 9 13 Cassius 47 1679 1390 0 289 Coq 11 5384 5102 0 282 CSS 647 136184 126341 0 9843 Dhall 511 5793 5597 0 196 Elm 60 6453 6344 25 84 Emacs Lisp 71 26200 20530 2455 3215 Erlang 1 11 8 0 3 FLTK Data 12 3150 3140 0 10 Fortran 51 5240 4697 0 543 Go 29 589 504 3 82 Greencard 4 455 255 96 104 Hamlet 185 4704 4590 0 114 Happy 153 75841 58531 4810 12500 Haskell 142502 22371322 16827551 2650653 2893118 HTML 1238 219099 205686 0 13413 Idris 634 37591 29174 1190 7227 iPKG 31 414 297 2 115 Java 354 50846 44730 466 5650 JavaScript 2174 1254839 1125619 6148 123072 Julius 27 1149 1051 0 98 Jupyter 3 756 756 0 0 Lex 111 380 376 0 4 LLVM 100 7631 6266 0 1365 Lua 74 16892 13097 1115 2680 M4 60 5863 4884 0 979 Madlang 19 401 377 3 21 Makefile 666 28330 20120 2246 5964 Markdown 7515 434756 315136 0 119620 Nix 216 27154 22201 0 4953 Objective C 31 11247 9524 0 1723 OCaml 1 9 7 0 2 Perl 30 12698 11749 65 884 PHP 6 1610 1474 0 136 Plaintext 1895 4544911 4482274 0 62637 Plutus 3 25 25 0 0 PowerShell 6 471 384 0 87 Python 110 28160 24012 2001 2147 PureScript 672 9483 6937 0 2546 R 19 1235 1095 0 140 Ruby 15 463 396 0 67 Rust 1 12 3 5 4 Scala 2 100 78 0 22 Swift 7 630 592 0 38 TCL 5 1109 892 0 217 TeX 1528 49389 40684 2952 5753 TOML 167 1698 1255 129 314 VHDL 4 943 821 0 122 Vimscript 84 5118 2616 2087 415 Yacc 1 435 381 0 54 YAML 5118 416583 377111 4864 34608 ------------------------------------------------------------------------------- Total 195793 38322975 31488917 2807374 4026684 -------------------------------------------------------------------------------

So there's a lot of different stuff on Hackage. Some of that is unsurprising (Elm, PureScript, Dhall, Agda, and Idris are implemented in Haskell), but some of it is more off-beat (VHDL, Coq, ATS).

C is the second-most popular language, with 3.3 million lines of C on Hackage. This is somewhat surprising - it is one seventh as common as Haskell! Perhaps due to its prolixity, but nonetheless striking.

That's our brief tour of the ecosystem. Hopefully it manages to impress upon you the scale of extant Haskell, as well as some of the cross-pollination happening with other ecosystems.