anchor.diff:  
   
       print >>f, ".SH SYNOPSIS"
  -    if options.get("userspace"):
  -        print >>f, ".B %s" % comp_name
  +    if rest:
  +        print >>f, rest
       else:
  -        if rest:
  -            print >>f, rest
  -        else:
  -            print >>f, ".HP"
  -            if options.get("singleton") or options.get("count_function"):
  -                if has_personality:
  -                    print >>f, ".B loadrt %s personality=\\fIP\\fB" % comp_name,
  +        print >>f, ".HP"
  +        print >>f, ".B loadrt %s" % comp_name
  +        print >>f, ".HP"
  +        print >>f, ".B newinst %s <newinstname> [ pincount=\\fIN\\fB | iprefix=\\fIprefix\\fB ]" % comp_name
  +        print >>f, ".B                          [instanceparamX=\\fIX\\fB | argX=\\fIX\\fB ]"
  +        for type, name, default, doc in modparams:
  +            print >>f, "[%s=\\fIN\\fB]" % name,
  +        print >>f
  +
  +        hasparamdoc = False
  +        for type, name, default, doc in modparams:
  +            if doc: hasparamdoc = True
  +
  +        if hasparamdoc:
  +            print >>f, ".RS 4"
  +            for type, name, default, doc in modparams:
  +                print >>f, ".TP"
  +                print >>f, "\\fB%s\\fR" % name,
  +                if default:
  +                    print >>f, "[default: %s]" % default
                   else:
  -                    print >>f, ".B loadrt %s" % comp_name,
  -            else:
  -                if has_personality:
  -                    print >>f, ".B loadrt %s [count=\\fIN\\fB|names=\\fIname1\\fB[,\\fIname2...\\fB]] [personality=\\fIP,P,...\\fB]" % comp_name,
  -                else:
  -                    print >>f, ".B loadrt %s [count=\\fIN\\fB|names=\\fIname1\\fB[,\\fIname2...\\fB]]" % comp_name,
  -            for type, name, default, doc in modparams:
  -                print >>f, "[%s=\\fIN\\fB]" % name,
  -            print >>f
  -
  -            hasparamdoc = False
  -            for type, name, default, doc in modparams:
  -                if doc: hasparamdoc = True
  -
  -            if hasparamdoc:
  -                print >>f, ".RS 4"
  -                for type, name, default, doc in modparams:
  -                    print >>f, ".TP"
  -                    print >>f, "\\fB%s\\fR" % name,
  -                    if default:
  -                        print >>f, "[default: %s]" % default
  -                    else:
  -                        print >>f
  -                    print >>f, doc
  -                print >>f, ".RE"
  -
  -        if options.get("constructable") and not options.get("singleton"):
  -            print >>f, ".PP\n.B newinst %s \\fIname\\fB" % comp_name
  +                    print >>f
  +                print >>f, doc
  +            print >>f, ".RE"
   
       doc = finddoc('descr')
       if doc and doc[1]:
  
positive.code:     has_data = options.get("data")
  
      has_array = False
      has_personality = False
      for name, type, array, dir, value, personality in pins:
          if array: has_array = True
          if isinstance(array, tuple): has_personality = True
          if personality: has_personality = True
      for name, type, array, dir, value, personality in params:
          if array: has_array = True
          if isinstance(array, tuple): has_personality = True
          if personality: has_personality = True
      for type, name, default, doc in modparams:
          decl = mp_decl_map[type]
          if decl:
  
negative.code:     return s
  
  def document(filename, outfilename):
      #return
      ## don't process docs for now
  
      if outfilename is None:
          outfilename = os.path.splitext(filename)[0] + ".9comp"
  
      a, b = parse(filename)
      f = open(outfilename, "w")
  
      print >>f, ".TH %s \"9\" \"%s\" \"Machinekit Documentation\" \"HAL Component\"" % (comp_name.upper(), time.strftime("%F"))
      print >>f, ".de TQ\n.br\n.ns\n.TP \\\\$1\n..\n"
  
      print >>f, ".SH NAME\n"
  