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

Migration to ghc-8.0 with subhask-branch ghc-8.0 #84

Open
Drezil opened this issue Sep 17, 2016 · 1 comment
Open

Migration to ghc-8.0 with subhask-branch ghc-8.0 #84

Drezil opened this issue Sep 17, 2016 · 1 comment

Comments

@Drezil
Copy link

Drezil commented Sep 17, 2016

There are many things changed from subhask for ghc-7.10 to subhask-branch for ghc-8.0

i tried to compile it naively, but i run into many problems when trying to compile HLearn (Currently stuck on Distributions.hs.. with many things not properly defined, like >< as data-kind instead of type family, VectorSpace renamed to Vector and many other things i cannot solve properly without deeper knowledge).

A brief example of the errors i currently get are

src/HLearn/Models/Distributions.hs:60:12: error:
    • Could not deduce: v ~ (forall g. Monoid g => g)
      from the context: Hilbert v
        bound by the instance declaration
        at src/HLearn/Models/Distributions.hs:59:10-40
      ‘v’ is a rigid type variable bound by
        the instance declaration
        at src/HLearn/Models/Distributions.hs:59:10
      Expected type: Moments v
        Actual type: Moments (forall g. Monoid g => g)
    • In the expression: Moments zero zero zero
      In an equation for ‘zero’: zero = Moments zero zero zero
      In the instance declaration for ‘Monoid (Moments v)’
    • Relevant bindings include
        zero :: Moments v
          (bound at src/HLearn/Models/Distributions.hs:60:5)

src/HLearn/Models/Distributions.hs:71:51: error:
    • Could not deduce: Scalar v ~ Scalar (Square v)
      from the context: Hilbert v
        bound by the instance declaration
        at src/HLearn/Models/Distributions.hs:70:10-40
      Expected type: Scalar (Square v)
        Actual type: Scalar (Moments v)
      NB: ‘Scalar’ is a type function, and may not be injective
    • In the second argument of ‘(.*)’, namely ‘r’
      In the third argument of ‘Moments’, namely ‘(c .* r)’
      In the expression: Moments (r * a) (b .* r) (c .* r)
    • Relevant bindings include
        r :: Scalar (Moments v)
          (bound at src/HLearn/Models/Distributions.hs:71:22)
        c :: Square v (bound at src/HLearn/Models/Distributions.hs:71:18)
        b :: v (bound at src/HLearn/Models/Distributions.hs:71:16)
        a :: Scalar v (bound at src/HLearn/Models/Distributions.hs:71:14)
        (.*) :: Moments v -> Scalar (Moments v) -> Moments v
          (bound at src/HLearn/Models/Distributions.hs:71:5)

src/HLearn/Models/Distributions.hs:78:51: error:
    • Could not deduce: Scalar v ~ Scalar (Square v)
      from the context: Hilbert v
        bound by the instance declaration
        at src/HLearn/Models/Distributions.hs:77:10-40
      Expected type: Scalar (Square v)
        Actual type: Scalar (Moments v)
      NB: ‘Scalar’ is a type function, and may not be injective
    • In the second argument of ‘(./)’, namely ‘r’
      In the third argument of ‘Moments’, namely ‘(c ./ r)’
      In the expression: Moments (r / a) (b ./ r) (c ./ r)
    • Relevant bindings include
        r :: Scalar (Moments v)
          (bound at src/HLearn/Models/Distributions.hs:78:22)
        c :: Square v (bound at src/HLearn/Models/Distributions.hs:78:18)
        b :: v (bound at src/HLearn/Models/Distributions.hs:78:16)
        a :: Scalar v (bound at src/HLearn/Models/Distributions.hs:78:14)
        (./) :: Moments v -> Scalar (Moments v) -> Moments v
          (bound at src/HLearn/Models/Distributions.hs:78:5)

src/HLearn/Models/Distributions.hs:117:17: error:
    • Could not deduce: Scalar (Square v) ~ r
      from the context: (FiniteModule v, Hilbert v)
        bound by the instance declaration
        at src/HLearn/Models/Distributions.hs:112:10-63
      ‘r’ is a rigid type variable bound by
        a type expected by the context:
          forall r. Real r => r
        at src/HLearn/Models/Distributions.hs:117:17
      Expected type: forall r. Real r => r
        Actual type: Scalar (Square v)
    • In the second argument of ‘(*)’, namely ‘size sigma’
      In the first argument of ‘(**)’, namely ‘(2 * pi * size sigma)’
      In the first argument of ‘(*)’, namely
        ‘(2 * pi * size sigma) ** (- fromIntegral (dim v) / 2)’
    • Relevant bindings include
        v' :: v (bound at src/HLearn/Models/Distributions.hs:119:13)
        sigma :: Square v
          (bound at src/HLearn/Models/Distributions.hs:122:13)
        mu :: v (bound at src/HLearn/Models/Distributions.hs:121:13)
        v :: Elem (Normal v)
          (bound at src/HLearn/Models/Distributions.hs:116:37)
        m2 :: Square v (bound at src/HLearn/Models/Distributions.hs:116:32)
        m1 :: v (bound at src/HLearn/Models/Distributions.hs:116:29)
        (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds)

src/HLearn/Models/Distributions.hs:117:67: error:
    • Could not deduce: Scalar v ~ (forall r. Real r => r)
      from the context: (FiniteModule v, Hilbert v)
        bound by the instance declaration
        at src/HLearn/Models/Distributions.hs:112:10-63
    • In the second argument of ‘(*)’, namely
        ‘(v' `vXm` reciprocal sigma) <> v'’
      In the first argument of ‘exp’, namely
        ‘((- 1 / 2) * (v' `vXm` reciprocal sigma) <> v')’
      In the second argument of ‘(*)’, namely
        ‘exp ((- 1 / 2) * (v' `vXm` reciprocal sigma) <> v')’
    • Relevant bindings include
        v' :: v (bound at src/HLearn/Models/Distributions.hs:119:13)
        sigma :: Square v
          (bound at src/HLearn/Models/Distributions.hs:122:13)
        mu :: v (bound at src/HLearn/Models/Distributions.hs:121:13)
        v :: Elem (Normal v)
          (bound at src/HLearn/Models/Distributions.hs:116:37)
        m2 :: Square v (bound at src/HLearn/Models/Distributions.hs:116:32)
        m1 :: v (bound at src/HLearn/Models/Distributions.hs:116:29)
        (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds)

Are you planning on upgrading HLearn or do you want to focus on subhask for now?

Greetings,

Drezil

@mikeizbicki
Copy link
Owner

Thanks for the report.

I don't have immediate plans for upgrading hlearn. I want to do it, but I have a lot of other work getting in the way. I'm not sure when I'll get around to it.

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