
#14362: Allow: Coercing (a:~:b) to (b:~:a) -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: roles Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj):
Is it not ultimately about implication of constraints?
I don't thuink so. Take `:~:`. Could I write this function? {{{ convert :: (a :~: b) -> (b :~: a) }}} Sure! Thus {{{ convert Refl = Refl }}} Plus, the two represntationns are the same. So yes, they should be coercible. No quantification stuff. I think. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14362#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler