packages feed

KiCS-debugger-0.1.0: biosphere/src/Curry/Debugger/PartCalls.hs

module Curry.Debugger.PartCalls where
import qualified Curry.Debugger.DebugMonad as DM
import qualified Curry.Debugger.DebugInfo as DI
 
partCall1 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b) =>
            DI.Term -> (a -> dm b) -> DM.Func dm a b
partCall1 (DI.Term name info args) f
  = DM.FuncRep (term []) (\ x1 -> f x1)
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall2 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c) =>
            DI.Term -> (a -> b -> dm c) -> DM.Func dm a (DM.Func dm b c)
partCall2 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return (DM.FuncRep (term [t1]) (\ x2 -> f x1 x2)))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall3 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c,
           DI.GenTerm d) =>
            DI.Term ->
              (a -> b -> c -> dm d) ->
                DM.Func dm a (DM.Func dm b (DM.Func dm c d))
partCall3 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return (DM.FuncRep (term [t1, t2]) (\ x3 -> f x1 x2 x3)))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall4 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e) =>
            DI.Term ->
              (a -> b -> c -> d -> dm e) ->
                DM.Func dm a (DM.Func dm b (DM.Func dm c (DM.Func dm d e)))
partCall4 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3]) (\ x4 -> f x1 x2 x3 x4)))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall5 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e, DI.GenTerm f) =>
            DI.Term ->
              (a -> b -> c -> d -> e -> dm f) ->
                DM.Func dm a
                  (DM.Func dm b (DM.Func dm c (DM.Func dm d (DM.Func dm e f))))
partCall5 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 -> f x1 x2 x3 x4 x5)))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall6 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e, DI.GenTerm f, DI.GenTerm g) =>
            DI.Term ->
              (a -> b -> c -> d -> e -> f -> dm g) ->
                DM.Func dm a
                  (DM.Func dm b
                     (DM.Func dm c (DM.Func dm d (DM.Func dm e (DM.Func dm f g)))))
partCall6 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 ->
                                                     do let t5 = DI.genTerm x5
                                                        Prelude.return
                                                          (DM.FuncRep (term [t1, t2, t3, t4, t5])
                                                             (\ x6 -> f x1 x2 x3 x4 x5 x6)))))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall7 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e, DI.GenTerm f, DI.GenTerm g, DI.GenTerm h) =>
            DI.Term ->
              (a -> b -> c -> d -> e -> f -> g -> dm h) ->
                DM.Func dm a
                  (DM.Func dm b
                     (DM.Func dm c
                        (DM.Func dm d (DM.Func dm e (DM.Func dm f (DM.Func dm g h))))))
partCall7 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 ->
                                                     do let t5 = DI.genTerm x5
                                                        Prelude.return
                                                          (DM.FuncRep (term [t1, t2, t3, t4, t5])
                                                             (\ x6 ->
                                                                do let t6 = DI.genTerm x6
                                                                   Prelude.return
                                                                     (DM.FuncRep
                                                                        (term
                                                                           [t1, t2, t3, t4, t5, t6])
                                                                        (\ x7 ->
                                                                           f x1 x2 x3 x4 x5 x6
                                                                             x7)))))))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall8 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e, DI.GenTerm f, DI.GenTerm g, DI.GenTerm h,
           DI.GenTerm i) =>
            DI.Term ->
              (a -> b -> c -> d -> e -> f -> g -> h -> dm i) ->
                DM.Func dm a
                  (DM.Func dm b
                     (DM.Func dm c
                        (DM.Func dm d
                           (DM.Func dm e (DM.Func dm f (DM.Func dm g (DM.Func dm h i)))))))
partCall8 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 ->
                                                     do let t5 = DI.genTerm x5
                                                        Prelude.return
                                                          (DM.FuncRep (term [t1, t2, t3, t4, t5])
                                                             (\ x6 ->
                                                                do let t6 = DI.genTerm x6
                                                                   Prelude.return
                                                                     (DM.FuncRep
                                                                        (term
                                                                           [t1, t2, t3, t4, t5, t6])
                                                                        (\ x7 ->
                                                                           do let t7 = DI.genTerm x7
                                                                              Prelude.return
                                                                                (DM.FuncRep
                                                                                   (term
                                                                                      [t1, t2, t3,
                                                                                       t4, t5, t6,
                                                                                       t7])
                                                                                   (\ x8 ->
                                                                                      f x1 x2 x3 x4
                                                                                        x5
                                                                                        x6
                                                                                        x7
                                                                                        x8)))))))))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall9 ::
          (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
           DI.GenTerm e, DI.GenTerm f, DI.GenTerm g, DI.GenTerm h,
           DI.GenTerm i, DI.GenTerm j) =>
            DI.Term ->
              (a -> b -> c -> d -> e -> f -> g -> h -> i -> dm j) ->
                DM.Func dm a
                  (DM.Func dm b
                     (DM.Func dm c
                        (DM.Func dm d
                           (DM.Func dm e
                              (DM.Func dm f (DM.Func dm g (DM.Func dm h (DM.Func dm i j))))))))
partCall9 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 ->
                                                     do let t5 = DI.genTerm x5
                                                        Prelude.return
                                                          (DM.FuncRep (term [t1, t2, t3, t4, t5])
                                                             (\ x6 ->
                                                                do let t6 = DI.genTerm x6
                                                                   Prelude.return
                                                                     (DM.FuncRep
                                                                        (term
                                                                           [t1, t2, t3, t4, t5, t6])
                                                                        (\ x7 ->
                                                                           do let t7 = DI.genTerm x7
                                                                              Prelude.return
                                                                                (DM.FuncRep
                                                                                   (term
                                                                                      [t1, t2, t3,
                                                                                       t4, t5, t6,
                                                                                       t7])
                                                                                   (\ x8 ->
                                                                                      do let t8
                                                                                               = DI.genTerm
                                                                                                   x8
                                                                                         Prelude.return
                                                                                           (DM.FuncRep
                                                                                              (term
                                                                                                 [t1,
                                                                                                  t2,
                                                                                                  t3,
                                                                                                  t4,
                                                                                                  t5,
                                                                                                  t6,
                                                                                                  t7,
                                                                                                  t8])
                                                                                              (\ x9
                                                                                                 ->
                                                                                                 f
                                                                                                   x1
                                                                                                   x2
                                                                                                   x3
                                                                                                   x4
                                                                                                   x5
                                                                                                   x6
                                                                                                   x7
                                                                                                   x8
                                                                                                   x9)))))))))))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))
 
partCall10 ::
           (DM.DM dm, DI.GenTerm a, DI.GenTerm b, DI.GenTerm c, DI.GenTerm d,
            DI.GenTerm e, DI.GenTerm f, DI.GenTerm g, DI.GenTerm h,
            DI.GenTerm i, DI.GenTerm j, DI.GenTerm k) =>
             DI.Term ->
               (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> dm k) ->
                 DM.Func dm a
                   (DM.Func dm b
                      (DM.Func dm c
                         (DM.Func dm d
                            (DM.Func dm e
                               (DM.Func dm f
                                  (DM.Func dm g (DM.Func dm h (DM.Func dm i (DM.Func dm j k)))))))))
partCall10 (DI.Term name info args) f
  = DM.FuncRep (term [])
      (\ x1 ->
         do let t1 = DI.genTerm x1
            Prelude.return
              (DM.FuncRep (term [t1])
                 (\ x2 ->
                    do let t2 = DI.genTerm x2
                       Prelude.return
                         (DM.FuncRep (term [t1, t2])
                            (\ x3 ->
                               do let t3 = DI.genTerm x3
                                  Prelude.return
                                    (DM.FuncRep (term [t1, t2, t3])
                                       (\ x4 ->
                                          do let t4 = DI.genTerm x4
                                             Prelude.return
                                               (DM.FuncRep (term [t1, t2, t3, t4])
                                                  (\ x5 ->
                                                     do let t5 = DI.genTerm x5
                                                        Prelude.return
                                                          (DM.FuncRep (term [t1, t2, t3, t4, t5])
                                                             (\ x6 ->
                                                                do let t6 = DI.genTerm x6
                                                                   Prelude.return
                                                                     (DM.FuncRep
                                                                        (term
                                                                           [t1, t2, t3, t4, t5, t6])
                                                                        (\ x7 ->
                                                                           do let t7 = DI.genTerm x7
                                                                              Prelude.return
                                                                                (DM.FuncRep
                                                                                   (term
                                                                                      [t1, t2, t3,
                                                                                       t4, t5, t6,
                                                                                       t7])
                                                                                   (\ x8 ->
                                                                                      do let t8
                                                                                               = DI.genTerm
                                                                                                   x8
                                                                                         Prelude.return
                                                                                           (DM.FuncRep
                                                                                              (term
                                                                                                 [t1,
                                                                                                  t2,
                                                                                                  t3,
                                                                                                  t4,
                                                                                                  t5,
                                                                                                  t6,
                                                                                                  t7,
                                                                                                  t8])
                                                                                              (\ x9
                                                                                                 ->
                                                                                                 do let t9
                                                                                                          = DI.genTerm
                                                                                                              x9
                                                                                                    Prelude.return
                                                                                                      (DM.FuncRep
                                                                                                         (term
                                                                                                            [t1,
                                                                                                             t2,
                                                                                                             t3,
                                                                                                             t4,
                                                                                                             t5,
                                                                                                             t6,
                                                                                                             t7,
                                                                                                             t8,
                                                                                                             t9])
                                                                                                         (\
                                                                                                            x10
                                                                                                            ->
                                                                                                            f
                                                                                                              x1
                                                                                                              x2
                                                                                                              x3
                                                                                                              x4
                                                                                                              x5
                                                                                                              x6
                                                                                                              x7
                                                                                                              x8
                                                                                                              x9
                                                                                                              x10)))))))))))))))))))
  where term = (DI.Term name info) Prelude.. ((args Prelude.++))