
#13585: ala from Control.Lens.Wrapped panics -------------------------------------+------------------------------------- Reporter: fumieval | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: Component: Compiler (Type | Version: checker) | Resolution: | Keywords: TypeInType Operating System: Linux | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * keywords: => TypeInType * priority: normal => highest * cc: goldfire (added) Comment: Thank you pacak! Core Lint fails when compiling `Panic.hs` with {{{ Data alternative when scrutinee is not a tycon application Scrutinee type: (Exchange (Unwrapped (First ())) (Unwrapped (First ())) |> <*->*->*>_N) (Maybe ()) ((Identity |> <*->*>_N) (Maybe ())) Alternative: Exchange sa_a36Y bt_a36Z -> Exchange @ (Unwrapped (First ())) @ (Unwrapped (First ())) @ (First ()) @ (Identity (First ())) (\ (x_a377 :: First ()) -> sa_a36Y (x_a377 `cast` Co:2)) ((\ (x_a377 :: Unwrapped (First ())) -> bt_a36Z x_a377) `cast` Co:36) }}} Richard, this is a live example of where `splitTyConApp` (in `CoreLint.lintCoreAlt`) fails on a type that looks like {{{ (Exchange t1 t2 |> Refl) t3 t4 }}} The `Refl` is getting in the way of the `splitTyConApp`. I think we agreed to make it an invariant that no such `Refl` casts will exist in types. How are you getting on with making it so? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13585#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler