
#14937: QuantifiedConstraints: Reify implication constraints from terms lacking them -------------------------------------+------------------------------------- Reporter: Bj0rn | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.5 Resolution: | Keywords: | QuantifiedConstraints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #14822, #15635 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Bj0rn): I just realized that the "implicit pattern match" is nonsense, as it's not indicated at compile time which constructor the pattern match resulted in. So something more like: {{{#!hs ev :: SomeSing Nat -> Some1 EmptyVec ev s = case forall (n :: Nat). SingI n => singIToKnownNat @n of Dict -> readKnowingTypeIndex s "EmptyVec" }}} Also makes it clear that the expression is being evaluated. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14937#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler