#line 570 "/home/travis/build/felix-lang/felix/src/packages/io.fdoc"
  
  // Author Mike Maul
  #### Color output formatting for Ansi Terminals.
  class AnsiTerminal
  {
    const cc:char = "(char)27";
  
    // No colour
    fun  NC_ () => cc + '[0m';
    fun  NC_(s:string) => NC_() + s;
    proc NC()     { print$ NC_(""); }
    proc NC(s:string)     { print$ NC_(s); }
  
    // Blue
    fun blue_() => cc + '[1;34m';
    fun blue_(s:string) => blue_() + s + NC_();
    proc blue()   { print$ blue_(); }
    proc blue(s:string)   { print$ blue_(s); }
    fun BLUE_() => cc + '[1;34;1m';
    fun BLUE_(s:string) => BLUE_() + s + NC_();
    proc BLUE()   { print$ BLUE_(); }
    proc BLUE(s:string)   { print$ BLUE_(s); }
  
    // Cyan
    fun cyan_() => cc + '[0;36m';
    fun cyan_(s:string) => cyan_()+ s + NC_();
    proc cyan()   { print$ cyan_(); }
    proc cyan(s:string)   { print$ cyan_(s); }
    fun CYAN_() => cc + '[1;36;1m';
    fun CYAN_(s:string) => CYAN_() + s + NC_();
    proc CYAN()   { print$ CYAN_(); }
    proc CYAN(s:string)   { print$ CYAN_(s); }
  
    // Green
    fun green_() => cc + '[0;32m';
    fun green_(s:string) => green_() + s + NC_();
    proc green()  { print$ green_(); }
    proc green(s:string)   { print$ green_(s); }
    fun GREEN_() => cc + '[1;32;1m';
    fun GREEN_(s:string) => GREEN_() + s + NC_();
    proc GREEN()  { print$ GREEN_(); }
    proc GREEN(s:string)   { println$ GREEN_(s); }
  
    // Red
    fun red_() => cc + '[0;31m';
    fun red_(s:string) => red_()+ s + NC_();
    proc red()   { print$ red_(); }
    proc red(s:string)   { print$ red_(s); }
    fun RED_() => cc + '[0;31;1m';
    fun RED_(s:string) => red_()+ s + NC_();
    proc RED()   { print$ red_(); }
    proc RED(s:string)   { print$ red_(s); }
  
    // Yellow
    fun yellow_() => cc + '[0;33m';
    fun yellow_(s:string) => yellow_() + s + NC_();
    proc yellow() { print$ yellow_(); }
    proc yellow(s:string)   { print$ yellow_(s); }
    fun YELLOW_() => cc + '[1;33;1m';
    fun YELLOW_(s:string) => YELLOW_() + s + NC_();
    proc YELLOW() { print$ YELLOW_(); }
    proc YELLOW(s:string)   { print$ YELLOW_(s); }
  }