anchor.diff:    if(t)                  showTabs = showNonprinting = true;
     if(numberNonblank)                         number = true;
   
  -  if (files.isEmpty) {
  -    // Default to stdin.
  -    files = [Input.parse('-')];
  -  } else {
  -    // TODO: If there are multiple stdin files ('-') does cat store the
  -    // stdin content for the later ones?
  -  }
  +  // Default to stdin.
  +  if (files.isEmpty) files = [Input.parse('-')];
   
     forEachAsync(files, (Input input) {
   
  -    var bytesToLines = UTF8.decoder.fuse(const LineSplitter());
  -    var lines = input.stream.transform(bytesToLines);
  +    // Get lines.
  +    var lines = input.stream.transform(UTF8.decoder.fuse(const LineSplitter()));
   
  +    // Squeeze blank lines.
       if(squeezeBlank) lines = squeezeBlankLines(lines);
   
  +    // Number lines.
       if(number) {
         lines = enumerateStream(lines);
         if(numberNonblank) {
  
positive.code: import 'dart:async';
  import 'dart:convert';
  
  import 'package:unscripted/unscripted.dart';
  import 'package:quiver/async.dart';
  import 'package:quiver/iterables.dart';
  import 'package:quiver/strings.dart';
  
  main(arguments) => sketch(cat).execute(arguments);
  
  @Command(help: 'Concatenate FILE(s), or standard input, to standard output.')
  @ArgExample('f - g', help: "Output f's contents, then standard input, then g's contents.")
  @ArgExample('', help: 'Copy standard input to standard output.')
  /// A dart implementation of the unix utility [cat][cat_wiki].
  /// [cat_wiki]: http://en.wikipedia.org/wiki/Cat_(Unix)
  cat(
      List<Input> files,
      {@Flag(abbr: 'n', help: 'number all output lines')
  
negative.code:      bool showTabs,
       @Flag(abbr: 'E', help: r'display $ at end of each line')
       bool showEnds,
       @Flag(abbr: 'v', help: 'use ^ and M- notation, except for LFD and TAB')
       bool showNonprinting}) {
  
    if(showAll) showEnds = showTabs = showNonprinting = true;
  