[GHC] #9622: GHCi command to solve a constraint
GHC
ghc-devs at haskell.org
Sun Sep 21 14:10:40 UTC 2014
#9622: GHCi command to solve a constraint
-------------------------------------+-------------------------------------
Reporter: monoidal | Owner:
Type: feature | Status: new
request | Milestone:
Priority: normal | Version: 7.8.3
Component: Compiler | Keywords:
(Type checker) | Architecture: Unknown/Multiple
Resolution: | Difficulty: Unknown
Operating System: | Blocked By:
Unknown/Multiple | Related Tickets:
Type of failure: |
None/Unknown |
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Description changed by monoidal:
Old description:
> It would be nice to have a `:solve` command for ghci that took a class
> constraint and returned either its derivation or an error message. A
> possible interface could look like so:
>
> {{{
> ghci> :solve Eq (Maybe Type1, Bool)
> 1) instance Eq Type1 -- Defined in ‘MyModule’
> 2) instance Eq a => Eq (Maybe a) -- Defined in ‘GHC.Classes’
> 3) instance Eq (Maybe Type1) -- Put a ~ Int in 2) and use 1)
> 4) instance Eq Bool -- Defined in ‘GHC.Classes’
> 5) instance (Eq a, Eq b) => Eq (a,b) -- Defined in ‘GHC.Classes’
> 6) instance Eq (Maybe Type1, Bool) -- Put a ~ Maybe Type1, b ~ Bool in
> 5) and use 3), 4)
> ghci> :solve Eq (Int -> Int)
> No instance for Eq (Int -> Int)
> }}}
New description:
It would be nice to have a `:solve` command for ghci that took a class
constraint and returned either its derivation or an error message. A
possible interface could look like so:
{{{
ghci> :solve Eq (Maybe Type1, Bool)
1) Eq Type1 -- Defined in ‘MyModule’
2) Eq a => Eq (Maybe a) -- Defined in ‘GHC.Classes’
3) Eq (Maybe Type1) -- Put a ~ Int in 2) and use 1)
4) Eq Bool -- Defined in ‘GHC.Classes’
5) (Eq a, Eq b) => Eq (a,b) -- Defined in ‘GHC.Classes’
6) Eq (Maybe Type1, Bool) -- Put a ~ Maybe Type1, b ~ Bool in 5) and use
3), 4)
ghci> :solve Eq (Int -> Int)
No instance for Eq (Int -> Int)
}}}
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9622#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list