Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

web-routing-0.6.2 benchmarks fail to compile with GHC 7.10.3 #3

Closed
RyanGlScott opened this issue May 17, 2016 · 3 comments
Closed

web-routing-0.6.2 benchmarks fail to compile with GHC 7.10.3 #3

RyanGlScott opened this issue May 17, 2016 · 3 comments

Comments

@RyanGlScott
Copy link

Steps to reproduce (with Stackage LTS 5.17):

$ stack unpack web-routing
Unpacked web-routing-0.6.2 to /home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/
$ cd web-routing-0.6.2/
$ stack init
$ stack bench
web-routing-0.6.2: build (lib + bench)
Preprocessing library web-routing-0.6.2...
In-place registering web-routing-0.6.2...
Preprocessing benchmark 'benchmarks' for web-routing-0.6.2...
[1 of 1] Compiling Main             ( bench/main.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.5.0/build/benchmarks/benchmarks-tmp/Main.o )

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:46:9:
    No instance for (Member "0" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the first argument of ‘(+)’, namely ‘get p0 d’
    In the first argument of ‘(+)’, namely ‘get p0 d + get p1 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:46:20:
    No instance for (Member "1" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p1 d’
    In the first argument of ‘(+)’, namely ‘get p0 d + get p1 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:46:31:
    No instance for (Member "2" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p2 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:46:42:
    No instance for (Member "3" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p3 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:46:53:
    No instance for (Member "4" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p4 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:47:9:
    No instance for (Member "5" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p5 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:47:20:
    No instance for (Member "6" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p6 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:47:31:
    No instance for (Member "7" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p7 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:47:42:
    No instance for (Member "8" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p8 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:47:53:
    No instance for (Member "9" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p9 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:48:9:
    No instance for (Member "10" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p10 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:48:21:
    No instance for (Member "11" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p11 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:48:33:
    No instance for (Member "12" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p12 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:48:45:
    No instance for (Member "13" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p13 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:48:57:
    No instance for (Member "14" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p14 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:9:
    No instance for (Member "15" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p15 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:21:
    No instance for (Member "16" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p16 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:33:
    No instance for (Member "17" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p17 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d
       + get p18 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:45:
    No instance for (Member "18" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p18 d’
    In the first argument of ‘(+)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d
       + get p18 d’
    In the second argument of ‘($)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d
       + get p18 d
       + get p19 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:55:
    No instance for (Num r0) arising from a use of ‘+’
    The type variable ‘r0’ is ambiguous
    Note: there are several potential instances:
      instance Num attoparsec-0.13.0.2:Data.Attoparsec.Internal.Types.Pos
        -- Defined in ‘attoparsec-0.13.0.2:Data.Attoparsec.Internal.Types’
      instance RealFloat a => Num (Data.Complex.Complex a)
        -- Defined in ‘Data.Complex’
      instance Data.Fixed.HasResolution a => Num (Data.Fixed.Fixed a)
        -- Defined in ‘Data.Fixed’
      ...plus 44 others
    In the second argument of ‘($)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d
       + get p18 d
       + get p19 d’
    In the expression:
      Just   
      $ get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
        + get p6 d
        + get p7 d
        + get p8 d
        + get p9 d
        + get p10 d
        + get p11 d
        + get p12 d
        + get p13 d
        + get p14 d
        + get p15 d
        + get p16 d
        + get p17 d
        + get p18 d
        + get p19 d
    In the second argument of ‘($)’, namely
      ‘\ d   
         -> Just
            $ get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
              + get p6 d
              + get p7 d
              + get p8 d
              + get p9 d
              + get p10 d
              + get p11 d
              + get p12 d
              + get p13 d
              + get p14 d
              + get p15 d
              + get p16 d
              + get p17 d
              + get p18 d
              + get p19 d’

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:49:57:
    No instance for (Member "19" r0 kvs0) arising from a use of ‘get’
    The type variables ‘kvs0’, ‘r0’ are ambiguous
    Relevant bindings include
      d :: Dict kvs0 (bound at bench/main.hs:45:23)
    Note: there are several potential instances:
      instance (Member k v kvs,
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Index
                  i
                ~ web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.Ix
                    k (k' ':= v' : kvs),
                GHC.TypeLits.KnownNat i) =>
               Member k v (k' ':= v' : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
      instance [overlapping] Member k v (k ':= v : kvs)
        -- Defined in ‘web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal’
    In the second argument of ‘(+)’, namely ‘get p19 d’
    In the second argument of ‘($)’, namely
      ‘get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
       + get p6 d
       + get p7 d
       + get p8 d
       + get p9 d
       + get p10 d
       + get p11 d
       + get p12 d
       + get p13 d
       + get p14 d
       + get p15 d
       + get p16 d
       + get p17 d
       + get p18 d
       + get p19 d’
    In the expression:
      Just   
      $ get p0 d + get p1 d + get p2 d + get p3 d + get p4 d + get p5 d
        + get p6 d
        + get p7 d
        + get p8 d
        + get p9 d
        + get p10 d
        + get p11 d
        + get p12 d
        + get p13 d
        + get p14 d
        + get p15 d
        + get p16 d
        + get p17 d
        + get p18 d
        + get p19 d

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:51:5:
    Illegal equational constraint web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.HasKey
                                    k d
                                  ~ 'web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.AlreadyHasKey
                                      k
    (Use GADTs or TypeFamilies to permit this)
    When checking that ‘r’ has the inferred type
      r :: forall (proxy :: GHC.TypeLits.Symbol -> *)
                  (k :: GHC.TypeLits.Symbol)
                  (d :: [KV *])
                  (m :: * -> *)
                  a.
           (GHC.TypeLits.KnownSymbol k, MonadPlus m,
            web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.HasKey
              k d
            ~ 'web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.AlreadyHasKey
                k) =>
           proxy k -> Path (k ':= Int : d) m a -> Path d m a
    In an equation for ‘largePath’:
        largePath
          = root
            $ exact "foo"
              $ r p0
                $ r p1
                  $ r p2
                    $ r p3
                      $ r p4
                        $ r p5
                          $ r p6
                            $ r p7
                              $ r p8
                                $ r p9
                                  $ r p10
                                    $ r p11
                                      $ r p12
                                        $ r p13
                                          $ r p14
                                            $ r p15
                                              $ r p16
                                                $ r p17
                                                  $ r p18
                                                    $ r p19
                                                      $ action Nothing
                                                        $ \ d
                                                            -> Just
                                                               $ get p0 d + get p1 d + get p2 d
                                                                 + get p3 d
                                                                 + get p4 d
                                                                 + get p5 d
                                                                 + get p6 d
                                                                 + get p7 d
                                                                 + get p8 d
                                                                 + get p9 d
                                                                 + get p10 d
                                                                 + get p11 d
                                                                 + get p12 d
                                                                 + get p13 d
                                                                 + get p14 d
                                                                 + get p15 d
                                                                 + get p16 d
                                                                 + get p17 d
                                                                 + get p18 d
                                                                 + get p19 d
          where
              r p = fetch p readInt

/home/ryanglscott/Documents/Hacking/Haskell/sc-haskell/web-routing-0.6.2/bench/main.hs:70:5:
    Illegal equational constraint web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.HasKey
                                    "S" d
                                  ~ 'web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.AlreadyHasKey
                                      "S"
    (Use GADTs or TypeFamilies to permit this)
    When checking that ‘param’ has the inferred type
      param :: forall (d :: [KV *]).
               (web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.HasKey
                  "S" d
                ~ 'web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.AlreadyHasKey
                    "S",
                web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.HasKey
                  "I" d
                ~ 'web-routing-0.6.2@webro_24ZBZTTXmhlH6GAwgrVcG9:Network.Routing.Dict.Internal.AlreadyHasKey
                    "I") =>
               Path d Maybe T.Text
    In an equation for ‘testRoute’:
        testRoute
          = hello
            +|
              param +| (foldr (\ i r -> deep i +| r) (after +| empty) [0 .. 100])
          where
              hello
                = exact "echo"
                  $ exact "hello-world"
                    $ action (Just "GET") $ \ _ -> Just "Hello World"
              pS = Proxy :: Proxy "S"
              pI = Proxy :: Proxy "I"
              param
                = exact "echo"
                  $ exact "plain"
                    $ fetch pS Just
                      $ fetch pI readInt
                        $ action (Just "GET")
                          $ \ d -> Just $ T.replicate (get pI d) (get pS d)
              ....
Progress: 1/2
--  While building package web-routing-0.6.2 using:
      /home/ryanglscott/.stack/setup-exe-cache/x86_64-linux/setup-Simple-Cabal-1.22.5.0-ghc-7.10.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.22.5.0 build lib:web-routing bench:benchmarks --ghc-options " -ddump-hi -ddump-to-file"
    Process exited with code: ExitFailure 1

See also iu-parfunc/sc-haskell#7

@winterland1989
Copy link
Collaborator

winterland1989 commented May 17, 2016

It looks like we need certain extension to get this constrain works in benchmark, will check tomorrow.

winterland1989 added a commit that referenced this issue May 18, 2016
@winterland1989
Copy link
Collaborator

It's fixed in 4edd987, please test build from master.

@RyanGlScott
Copy link
Author

It now works for me! Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants