packages feed

dhall-1.19.0: tests/parser/success/largeExpressionA.dhall

  λ ( xs
    : List
      { cores             : Natural
      , host              : Text
      , key               : Text
      , mandatoryFeatures : List Text
      , platforms         :
          List
          < AArch64_Linux  : {}
          | ARMv5tel_Linux : {}
          | ARMv7l_Linux   : {}
          | I686_Cygwin    : {}
          | I686_Linux     : {}
          | MIPS64el_Linux : {}
          | PowerPC_Linux  : {}
          | X86_64_Cygwin  : {}
          | X86_64_Darwin  : {}
          | X86_64_FreeBSD : {}
          | X86_64_Linux   : {}
          | X86_64_Solaris : {}
          >
      , speedFactor       : Natural
      , supportedFeatures : List Text
      , user              : Optional Text
      }
    )
→ List/fold
  { cores             : Natural
  , host              : Text
  , key               : Text
  , mandatoryFeatures : List Text
  , platforms         :
      List
      < AArch64_Linux  : {}
      | ARMv5tel_Linux : {}
      | ARMv7l_Linux   : {}
      | I686_Cygwin    : {}
      | I686_Linux     : {}
      | MIPS64el_Linux : {}
      | PowerPC_Linux  : {}
      | X86_64_Cygwin  : {}
      | X86_64_Darwin  : {}
      | X86_64_FreeBSD : {}
      | X86_64_Linux   : {}
      | X86_64_Solaris : {}
      >
  , speedFactor       : Natural
  , supportedFeatures : List Text
  , user              : Optional Text
  }
  xs
  Text
  (   λ ( x
        : { cores             : Natural
          , host              : Text
          , key               : Text
          , mandatoryFeatures : List Text
          , platforms         :
              List
              < AArch64_Linux  : {}
              | ARMv5tel_Linux : {}
              | ARMv7l_Linux   : {}
              | I686_Cygwin    : {}
              | I686_Linux     : {}
              | MIPS64el_Linux : {}
              | PowerPC_Linux  : {}
              | X86_64_Cygwin  : {}
              | X86_64_Darwin  : {}
              | X86_64_FreeBSD : {}
              | X86_64_Linux   : {}
              | X86_64_Solaris : {}
              >
          , speedFactor       : Natural
          , supportedFeatures : List Text
          , user              : Optional Text
          }
        )
    → λ(y : Text)
    →     (     Optional/fold
                Text
                x.user
                Text
                (λ(user : Text) → user ++ "@" ++ x.host ++ "")
                x.host
            ++  " "
            ++  ( merge
                  { Empty    = λ(_ : {}) → ""
                  , NonEmpty = λ(result : Text) → result
                  }
                  ( List/fold
                    < AArch64_Linux  : {}
                    | ARMv5tel_Linux : {}
                    | ARMv7l_Linux   : {}
                    | I686_Cygwin    : {}
                    | I686_Linux     : {}
                    | MIPS64el_Linux : {}
                    | PowerPC_Linux  : {}
                    | X86_64_Cygwin  : {}
                    | X86_64_Darwin  : {}
                    | X86_64_FreeBSD : {}
                    | X86_64_Linux   : {}
                    | X86_64_Solaris : {}
                    >
                    x.platforms
                    < Empty : {} | NonEmpty : Text >
                    (   λ ( element
                          : < AArch64_Linux  : {}
                            | ARMv5tel_Linux : {}
                            | ARMv7l_Linux   : {}
                            | I686_Cygwin    : {}
                            | I686_Linux     : {}
                            | MIPS64el_Linux : {}
                            | PowerPC_Linux  : {}
                            | X86_64_Cygwin  : {}
                            | X86_64_Darwin  : {}
                            | X86_64_FreeBSD : {}
                            | X86_64_Linux   : {}
                            | X86_64_Solaris : {}
                            >
                          )
                      → λ(status : < Empty : {} | NonEmpty : Text >)
                      → merge
                        { Empty    =
                              λ(_ : {})
                            → < NonEmpty =
                                  merge
                                  { AArch64_Linux  = λ(_ : {}) → "aarch64-linux"
                                  , ARMv5tel_Linux =
                                      λ(_ : {}) → "armv5tel-linux"
                                  , ARMv7l_Linux   = λ(_ : {}) → "armv7l-linux"
                                  , I686_Cygwin    = λ(_ : {}) → "i686-cygwin"
                                  , I686_Linux     = λ(_ : {}) → "i686-linux"
                                  , MIPS64el_Linux =
                                      λ(_ : {}) → "mips64el-linux"
                                  , PowerPC_Linux  = λ(_ : {}) → "powerpc-linux"
                                  , X86_64_Cygwin  = λ(_ : {}) → "x86_64-cygwin"
                                  , X86_64_Darwin  = λ(_ : {}) → "x86_64-darwin"
                                  , X86_64_FreeBSD =
                                      λ(_ : {}) → "x86_64-freebsd"
                                  , X86_64_Linux   = λ(_ : {}) → "x86_64-linux"
                                  , X86_64_Solaris =
                                      λ(_ : {}) → "x86_64-solaris"
                                  }
                                  element
                              | Empty    : {}
                              >
                        , NonEmpty =
                              λ(result : Text)
                            → < NonEmpty =
                                      ( merge
                                        { AArch64_Linux  =
                                            λ(_ : {}) → "aarch64-linux"
                                        , ARMv5tel_Linux =
                                            λ(_ : {}) → "armv5tel-linux"
                                        , ARMv7l_Linux   =
                                            λ(_ : {}) → "armv7l-linux"
                                        , I686_Cygwin    =
                                            λ(_ : {}) → "i686-cygwin"
                                        , I686_Linux     =
                                            λ(_ : {}) → "i686-linux"
                                        , MIPS64el_Linux =
                                            λ(_ : {}) → "mips64el-linux"
                                        , PowerPC_Linux  =
                                            λ(_ : {}) → "powerpc-linux"
                                        , X86_64_Cygwin  =
                                            λ(_ : {}) → "x86_64-cygwin"
                                        , X86_64_Darwin  =
                                            λ(_ : {}) → "x86_64-darwin"
                                        , X86_64_FreeBSD =
                                            λ(_ : {}) → "x86_64-freebsd"
                                        , X86_64_Linux   =
                                            λ(_ : {}) → "x86_64-linux"
                                        , X86_64_Solaris =
                                            λ(_ : {}) → "x86_64-solaris"
                                        }
                                        element
                                      )
                                  ++  ","
                                  ++  result
                              | Empty    : {}
                              >
                        }
                        status
                        : < Empty : {} | NonEmpty : Text >
                    )
                    < Empty = {=} | NonEmpty : Text >
                  )
                  : Text
                )
            ++  " "
            ++  x.key
            ++  " "
            ++  Integer/show (Natural/toInteger x.cores)
            ++  " "
            ++  Integer/show (Natural/toInteger x.speedFactor)
            ++  " "
            ++  ( merge
                  { Empty    = λ(_ : {}) → ""
                  , NonEmpty = λ(result : Text) → result
                  }
                  ( List/fold
                    Text
                    x.supportedFeatures
                    < Empty : {} | NonEmpty : Text >
                    (   λ(element : Text)
                      → λ(status : < Empty : {} | NonEmpty : Text >)
                      → merge
                        { Empty    =
                            λ(_ : {}) → < NonEmpty = element | Empty : {} >
                        , NonEmpty =
                              λ(result : Text)
                            → < NonEmpty = element ++ "," ++ result
                              | Empty    : {}
                              >
                        }
                        status
                        : < Empty : {} | NonEmpty : Text >
                    )
                    < Empty = {=} | NonEmpty : Text >
                  )
                  : Text
                )
            ++  " "
            ++  ( merge
                  { Empty    = λ(_ : {}) → ""
                  , NonEmpty = λ(result : Text) → result
                  }
                  ( List/fold
                    Text
                    x.mandatoryFeatures
                    < Empty : {} | NonEmpty : Text >
                    (   λ(element : Text)
                      → λ(status : < Empty : {} | NonEmpty : Text >)
                      → merge
                        { Empty    =
                            λ(_ : {}) → < NonEmpty = element | Empty : {} >
                        , NonEmpty =
                              λ(result : Text)
                            → < NonEmpty = element ++ "," ++ result
                              | Empty    : {}
                              >
                        }
                        status
                        : < Empty : {} | NonEmpty : Text >
                    )
                    < Empty = {=} | NonEmpty : Text >
                  )
                  : Text
                )
            ++  "\n"
          )
      ++  y
  )
  ""