[GHC] #14040: Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]
GHC
ghc-devs at haskell.org
Mon Oct 29 10:44:40 UTC 2018
#14040: Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.8.1
Component: Compiler (Type | Version: 8.0.2
checker) | Keywords: TypeInType,
Resolution: | TypeFamilies,
| PartialTypeSignatures, TypedHoles
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Compile-time | Test Case: partial-
crash or panic | sigs/should_fail/T14040a
Blocked By: | Blocking:
Related Tickets: #13877, #15076 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by RyanGlScott):
simonpj, isn't it expected that GHC would complain if you implemented
`elimWeirdList` as `elimWeirdList x = error "urk"`? After all,
`elimWeirdList` contains higher-rank arguments, and trying to instantiate
them with `error "urk" :: forall a. a` would require instantiating `a`
with a polytype, which is impredicative.
Also, it's worth noting that on GHC HEAD, you get one fewer error than you
do in comment:12:
{{{
GHCi, version 8.7.20181029: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/rgscott/.ghci
[1 of 1] Compiling Bug ( Bug.hs, interpreted )
Bug.hs:37:1: error:
Can't quantify over ‘a’
bound by the partial type signature:
elimWeirdList :: forall (a :: Type)
(wl :: WeirdList a)
(p :: forall (x :: Type). x -> WeirdList x
-> Type).
Sing wl
-> (forall (y :: Type). p _ WeirdNil)
-> (forall (z :: Type) (x :: z) (xs ::
WeirdList (WeirdList z)).
Sing x -> Sing xs -> p _ xs -> p _
(WeirdCons x xs))
-> p _ wl
|
37 | elimWeirdList x = error "urk"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bug.hs:37:1: error:
Can't quantify over ‘wl’
bound by the partial type signature:
elimWeirdList :: forall (a :: Type)
(wl :: WeirdList a)
(p :: forall (x :: Type). x -> WeirdList x
-> Type).
Sing wl
-> (forall (y :: Type). p _ WeirdNil)
-> (forall (z :: Type) (x :: z) (xs ::
WeirdList (WeirdList z)).
Sing x -> Sing xs -> p _ xs -> p _
(WeirdCons x xs))
-> p _ wl
|
37 | elimWeirdList x = error "urk"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bug.hs:37:1: error:
Can't quantify over ‘p’
bound by the partial type signature:
elimWeirdList :: forall (a :: Type)
(wl :: WeirdList a)
(p :: forall (x :: Type). x -> WeirdList x
-> Type).
Sing wl
-> (forall (y :: Type). p _ WeirdNil)
-> (forall (z :: Type) (x :: z) (xs ::
WeirdList (WeirdList z)).
Sing x -> Sing xs -> p _ xs -> p _
(WeirdCons x xs))
-> p _ wl
|
37 | elimWeirdList x = error "urk"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Failed, no modules loaded.
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14040#comment:15>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list