Open javanwood opened 2 years ago
Thanks for reporting this! To set expectations:
Finally, please be patient with the core team. They are trying their best with limited resources.
Hello,
We encountered the same problem in our code after I mistakenly swapped the arguments of the set function in a lens. It looks to me that we encountered the same typechecker bug:
module Main exposing (..)
type alias Lens a b =
{ get : a -> b
, set : b -> a -> a
}
oopsLens : Lens { b | oops : a } b
oopsLens = Lens .oops (\x oops -> { x | oops = oops })
Ran into a similar issue, though not from mistakenly swapping arguments, this was from a use of elm-form
that I thought would actually compile. Boiled it down to
module Main exposing (..)
type X r
= X
f : X r -> X { r | y : () }
f _ =
X
x : X { z : () }
x =
X
example : ()
example =
x
|> (if True then
f
else
identity
)
|> always ()
That causes elm make
to hang and balloon in memory usage (even after exiting with Ctrl+c).
Quick Summary: Compilation hangs and an elm process remains active after
<ctrl-c>
. Memory usage of this process reaches >16GB (memory available to system) which bogged down my system.SSCCE
Additional Details
elm make
hangs after printingCompiling ...
. The orphan elm process only continues if waiting for longer than 5-6 seconds before usingWhen changing
(\( low, high ) x ->
to(\x ( low, high ) ->
the snippet compiles as expected, and changing( min low x, max high x )
to( x, x )
results in the compiler error`foldMap` needs the 4th argument to be: ( ∞, ∞ )
.Came across this writing a foldMap to calculate the min and max of a List Float but have simplified to get a minimal reproduction.
Love your work!