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

Code doesn't typecheck when moving a type alias between modules #4542

Open
NomisIV opened this issue Apr 18, 2024 · 0 comments
Open

Code doesn't typecheck when moving a type alias between modules #4542

NomisIV opened this issue Apr 18, 2024 · 0 comments

Comments

@NomisIV
Copy link

NomisIV commented Apr 18, 2024

Description

I discovered a weird compiler error in a large project, and narrowed it down to an alias having to be defined in the right module. Moving the alias to another module breaks type checking, with the error being something about Pos not being implemented. See the below output:

compiler-bug-example on 󰘬 master via <=> v0.15.10 via  impure (nix-shell-env) took 2m43s
$ spago build
[1 of 1] Compiling Main
[1/1 NoInstanceFound] src/Main.purs:16:7

  16  bar = discreteFromDense
            ^^^^^^^^^^^^^^^^^

  No type class instance was found for

    Data.Typelevel.Num.Sets.Pos t0

  The instance head contains unknown type variables. Consider adding a type annotation.

  while checking that type forall (c :: Symbol) (u :: Symbol) (m :: Type) (n :: Type). Pos m => Pos n => UnitScale @Type c u (Tuple m n) => Approximation -> Dense c -> Tuple ... ...
    is at least as general as type Approximation -> Dense "SEK" -> Tuple (Discrete "SEK" "öre") (Dense "SEK")
  while checking that expression discreteFromDense
    has type Approximation -> Dense "SEK" -> Tuple (Discrete "SEK" "öre") (Dense "SEK")
  in value declaration bar

  where t0 is an unknown type

           Src   Lib   All
Warnings   0     0     0
Errors     1     0     1
[error] Failed to build.

To Reproduce

Steps to reproduce the behavior.

I have set up a minimal repository here

Steps:

Expected behavior

Expected to be able to move type alias between modules.

Additional context

Add any other context about the problem here.

PureScript version

0.15.10

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

No branches or pull requests

1 participant