| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- id: 'idea--thule-alternatives'
 
- content: |
 
-   The big alternative I know of is
 
-   [TermKit](https://github.com/unconed/TermKit), which is an interesting
 
-   experiment: but, to me, it's filled with far too many special cases
 
-   and not enough nice primitives. For example, there's a special
 
-   way of outputting a list of files (e.g. output from `ls`) but this
 
-   isn't because "files" are necessarily a distinct thing, but because
 
-   there's a special type of output for `ls`-like commands (in this
 
-   case, `application/json; schema=termkit.files`, which corresponds
 
-   to a list of filenames.)
 
-   Thule builds on top of this by having a standard set of building
 
-   blocks, so that you no longer have the special-case "list of files",
 
-   but rather primitive building blocks like `list` and `file`.
 
-   Consider the output from `wc`: this also contains file references,
 
-   but it additionally contains a table mapping those to values. In
 
-   a TermKit-like setting, you'd have to come up with a new schema
 
-   (say, `application/json; schema=termkit.wordcount`) that understands
 
-   which parts of the output are files and which aren't. This is
 
-   particularly tricky for `wc`, because you want to have the
 
-   final `total` row, which does _not_ contain a file. And what if
 
-   other tools also print table-like structures? Can those be
 
-   processed with the same tools?
 
-   Thule aims to pull those low-level building blocks out, so the
 
-   output from `ls` might give you a collection like
 
-       (set (file "/tmp/foo.txt") (file "/tmp/bar.c"))
 
-   and the output from `wc` will give you
 
-       (table ((text "lines") (text "words") (text "characters") (text "file"))
 
-         ((int 10) (int 30) (int 300)  (file "/tmp/foo.txt"))
 
-         ((int 20) (int 60) (int 900)  (file "/tmp/bar.c"))
 
-         ((int 30) (int 90) (int 1200) (text "total")))
 
-   rather the structure of the collections would be a hint to the
 
-   shell on how to display them in a rich way.
 
- related:
 
-   - name: idea--thule
 
-     why: The high-level idea
 
 
  |