anchor.diff:          ++ (if tun ? crypto.tagsToSend then
               optionalNullInt "crypto.tagstosend" tun.crypto.tagsToSend else []);
           in concatStringsSep "\n" outTunOpts))
  -    (flip mapAttrs
  -      (collect (name: tun: tun ? port && tun ? address) cfg.inTunnels)
  +    (flip map
  +      (collect (tun: tun ? port && tun ? address) cfg.inTunnels)
         (tun: let inTunOpts = [
  -        (sec name)
  +        (sec tun.name)
           "type = server"
           (intOpt "port" tun.port)
           (strOpt "host" tun.address)
  
positive.code:       (sec "addressbook")
        (strOpt "defaulturl" cfg.addressbook.defaulturl)
      ] ++ (optionalEmptyList "subscriptions" cfg.addressbook.subscriptions)
        ++ (flip mapAttrs
        (collect (name: proto: proto ? port && proto ? address && proto ? name) cfg.proto)
        (proto: let protoOpts = [
          (sec name)
          (boolOpt "enabled" proto.enable)
          (strOpt "address" proto.address)
          (intOpt "port" proto.port)
  
negative.code: 
        inTunnels = mkOption {
          default = {};
          type = with types; attrsOf (submodule (
            { name, ... }: {
              options = {
                inPort = mkOption {
  