#2110: Rules to eliminate casted id's
---------------------------------+------------------------------------------
Reporter: igloo | Owner:
Type: feature request | Status: new
Priority: lowest | Milestone: 7.6.2
Component: Compiler | Version: 6.8.2
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by nomeata):
Looking at
Replying to [comment:5 simonpj]:
> {{{
> RULE "map/cast" forall (a::*) (b::*) (c::*)
> (co :: (a->b ~ a->c))
> (f::a->b)
> map a c (f |> co) = map a b f |> [right co]
>
> RULE "map/id" forall (a::*) map a a id = id
> }}}
I wonder whether it is realistic to have the types inferred here, e.g.
{{{
{-# RULES "map/cast" forall f co. map (f `cast` co) = map f `cast` right
co
"map/id" map id = id
#-}
}}}
This way, the current issue can be solved independently from #2600, and
the remaining question is how to expose the Core expressions cast and
right to the RULES parser – it seems that they are currently not exported
as Haskell values.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2110#comment:21>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs