---
Function {
 argument: None,
 arguments: FunctionArguments {
  arguments: [
   FunctionArgument {
    identifier: "options",
    default: None,
   },
   FunctionArgument {
    identifier: "pkgs",
    default: None,
   },
   FunctionArgument {
    identifier: "lib",
    default: None,
   },
   FunctionArgument {
    identifier: "config",
    default: None,
   },
  ],
  ellipsis: false,
 },
 definition: With {
  expression: Variable {
   identifier: "lib",
   position: (3, 6),
  },
  target: LetIn {
   bindings: [
    KeyValue(
     AttributePath {
      attributes: [
       Raw {
        content: "cfg",
        position: (6, 3),
       },
      ],
     },
     PropertyAccess {
      expression: Variable {
       identifier: "config",
       position: (6, 9),
      },
      attribute_path: AttributePath {
       attributes: [
        Raw {
         content: "services",
         position: (6, 16),
        },
        Raw {
         content: "prometheus",
         position: (6, 25),
        },
        Raw {
         content: "exporters",
         position: (6, 36),
        },
        Raw {
         content: "lnd",
         position: (6, 46),
        },
       ],
      },
      default: None,
     },
    ),
   ],
   target: Map {
    bindings: [
     KeyValue(
      AttributePath {
       attributes: [
        Raw {
         content: "port",
         position: (9, 3),
        },
       ],
      },
      Int {
       value: 9092,
       position: (9, 10),
      },
     ),
     KeyValue(
      AttributePath {
       attributes: [
        Raw {
         content: "extraOpts",
         position: (10, 3),
        },
       ],
      },
      Map {
       bindings: [
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "lndHost",
            position: (11, 5),
           },
          ],
         },
         FunctionApplication {
          function: Variable {
           identifier: "mkOption",
           position: (11, 15),
          },
          arguments: [
           Map {
            bindings: [
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "type",
                 position: (12, 7),
                },
               ],
              },
              PropertyAccess {
               expression: Variable {
                identifier: "types",
                position: (12, 14),
               },
               attribute_path: AttributePath {
                attributes: [
                 Raw {
                  content: "str",
                  position: (12, 20),
                 },
                ],
               },
               default: None,
              },
             ),
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "default",
                 position: (13, 7),
                },
               ],
              },
              String {
               parts: [
                Raw {
                 content: "localhost:10009",
                 position: (13, 18),
                },
               ],
              },
             ),
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "description",
                 position: (14, 7),
                },
               ],
              },
              String {
               parts: [
                Raw {
                 content: "lnd instance gRPC address:port.\n",
                 position: (15, 1),
                },
               ],
              },
             ),
            ],
            recursive: false,
            position: (11, 24),
           },
          ],
         },
        ),
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "lndTlsPath",
            position: (19, 5),
           },
          ],
         },
         FunctionApplication {
          function: Variable {
           identifier: "mkOption",
           position: (19, 18),
          },
          arguments: [
           Map {
            bindings: [
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "type",
                 position: (20, 7),
                },
               ],
              },
              PropertyAccess {
               expression: Variable {
                identifier: "types",
                position: (20, 14),
               },
               attribute_path: AttributePath {
                attributes: [
                 Raw {
                  content: "path",
                  position: (20, 20),
                 },
                ],
               },
               default: None,
              },
             ),
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "description",
                 position: (21, 7),
                },
               ],
              },
              String {
               parts: [
                Raw {
                 content: "Path to lnd TLS certificate.\n",
                 position: (22, 1),
                },
               ],
              },
             ),
            ],
            recursive: false,
            position: (19, 27),
           },
          ],
         },
        ),
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "lndMacaroonDir",
            position: (26, 5),
           },
          ],
         },
         FunctionApplication {
          function: Variable {
           identifier: "mkOption",
           position: (26, 22),
          },
          arguments: [
           Map {
            bindings: [
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "type",
                 position: (27, 7),
                },
               ],
              },
              PropertyAccess {
               expression: Variable {
                identifier: "types",
                position: (27, 14),
               },
               attribute_path: AttributePath {
                attributes: [
                 Raw {
                  content: "path",
                  position: (27, 20),
                 },
                ],
               },
               default: None,
              },
             ),
             KeyValue(
              AttributePath {
               attributes: [
                Raw {
                 content: "description",
                 position: (28, 7),
                },
               ],
              },
              String {
               parts: [
                Raw {
                 content: "Path to lnd macaroons.\n",
                 position: (29, 1),
                },
               ],
              },
             ),
            ],
            recursive: false,
            position: (26, 31),
           },
          ],
         },
        ),
       ],
       recursive: false,
       position: (10, 15),
      },
     ),
     KeyValue(
      AttributePath {
       attributes: [
        Raw {
         content: "serviceOpts",
         position: (33, 3),
        },
        Raw {
         content: "serviceConfig",
         position: (33, 15),
        },
       ],
      },
      Map {
       bindings: [
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "ExecStart",
            position: (34, 5),
           },
          ],
         },
         String {
          parts: [
           Raw {
            content: "",
            position: (35, 1),
           },
           Expression {
            expression: PropertyAccess {
             expression: Variable {
              identifier: "pkgs",
              position: (35, 9),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "prometheus-lnd-exporter",
                position: (35, 14),
               },
              ],
             },
             default: None,
            },
           },
           Raw {
            content: "/bin/lndmon \\\n  --prometheus.listenaddr=",
            position: (35, 38),
           },
           Expression {
            expression: PropertyAccess {
             expression: Variable {
              identifier: "cfg",
              position: (36, 35),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "listenAddress",
                position: (36, 39),
               },
              ],
             },
             default: None,
            },
           },
           Raw {
            content: ":",
            position: (36, 53),
           },
           Expression {
            expression: FunctionApplication {
             function: Variable {
              identifier: "toString",
              position: (36, 56),
             },
             arguments: [
              PropertyAccess {
               expression: Variable {
                identifier: "cfg",
                position: (36, 65),
               },
               attribute_path: AttributePath {
                attributes: [
                 Raw {
                  content: "port",
                  position: (36, 69),
                 },
                ],
               },
               default: None,
              },
             ],
            },
           },
           Raw {
            content: " \\\n  --prometheus.logdir=/var/log/prometheus-lnd-exporter \\\n  --lnd.host=",
            position: (36, 74),
           },
           Expression {
            expression: PropertyAccess {
             expression: Variable {
              identifier: "cfg",
              position: (38, 22),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "lndHost",
                position: (38, 26),
               },
              ],
             },
             default: None,
            },
           },
           Raw {
            content: " \\\n  --lnd.tlspath=",
            position: (38, 34),
           },
           Expression {
            expression: PropertyAccess {
             expression: Variable {
              identifier: "cfg",
              position: (39, 25),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "lndTlsPath",
                position: (39, 29),
               },
              ],
             },
             default: None,
            },
           },
           Raw {
            content: " \\\n  --lnd.macaroondir=",
            position: (39, 40),
           },
           Expression {
            expression: PropertyAccess {
             expression: Variable {
              identifier: "cfg",
              position: (40, 29),
             },
             attribute_path: AttributePath {
              attributes: [
               Raw {
                content: "lndMacaroonDir",
                position: (40, 33),
               },
              ],
             },
             default: None,
            },
           },
           Raw {
            content: " \\\n  ",
            position: (40, 48),
           },
           Expression {
            expression: FunctionApplication {
             function: Variable {
              identifier: "concatStringsSep",
              position: (41, 11),
             },
             arguments: [
              String {
               parts: [
                Raw {
                 content: " \\\n  ",
                 position: (41, 29),
                },
               ],
              },
              PropertyAccess {
               expression: Variable {
                identifier: "cfg",
                position: (41, 38),
               },
               attribute_path: AttributePath {
                attributes: [
                 Raw {
                  content: "extraFlags",
                  position: (41, 42),
                 },
                ],
               },
               default: None,
              },
             ],
            },
           },
           Raw {
            content: "\n",
            position: (41, 53),
           },
          ],
         },
        ),
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "LogsDirectory",
            position: (43, 5),
           },
          ],
         },
         String {
          parts: [
           Raw {
            content: "prometheus-lnd-exporter",
            position: (43, 22),
           },
          ],
         },
        ),
        KeyValue(
         AttributePath {
          attributes: [
           Raw {
            content: "ReadOnlyPaths",
            position: (44, 5),
           },
          ],
         },
         List {
          elements: [
           PropertyAccess {
            expression: Variable {
             identifier: "cfg",
             position: (44, 23),
            },
            attribute_path: AttributePath {
             attributes: [
              Raw {
               content: "lndTlsPath",
               position: (44, 27),
              },
             ],
            },
            default: None,
           },
           PropertyAccess {
            expression: Variable {
             identifier: "cfg",
             position: (44, 38),
            },
            attribute_path: AttributePath {
             attributes: [
              Raw {
               content: "lndMacaroonDir",
               position: (44, 42),
              },
             ],
            },
            default: None,
           },
          ],
          position: (44, 21),
         },
        ),
       ],
       recursive: false,
       position: (33, 31),
      },
     ),
    ],
    recursive: false,
    position: (8, 1),
   },
   position: (5, 1),
  },
  position: (3, 1),
 },
 position: (1, 1),
}