Re: [Haskell] Polymorphic types in RHS of type instances
Hi, [Moving to glasgow-haskell-users@haskell.org] I would also like to know the answer to this question. While I can imagine it has something to do with type checking/inference, it is not immediately clear to me where the problem lies. Thanks, Pedro On Sat, Feb 5, 2011 at 12:25, Steven Keuchel <steven.keuchel@gmail.com>wrote:
Hi list,
I was wondering why GHC doesn't allow usage of polymorphic types in the right-hand side of type instance declarations for type families. The GHC user guide states: "The right-hand side of a type instance must be a monotype (i.e., it may not include foralls) [...]", but it doesn't state the reason.
I stumbled upon this limitation when I was trying to generically calculate Johann's and Ghani's interpreter (transformers) for nested data types from their "Initial Algebra Semantics is Enough!" paper.
Cheers, Steven
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Can you give an example of what you'd like to write, but can't? Simon From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-bounces@haskell.org] On Behalf Of José Pedro Magalhães Sent: 04 April 2011 10:53 To: GHC users Cc: Steven Keuchel Subject: Re: [Haskell] Polymorphic types in RHS of type instances Hi, [Moving to glasgow-haskell-users@haskell.org<mailto:glasgow-haskell-users@haskell.org>] I would also like to know the answer to this question. While I can imagine it has something to do with type checking/inference, it is not immediately clear to me where the problem lies. Thanks, Pedro On Sat, Feb 5, 2011 at 12:25, Steven Keuchel <steven.keuchel@gmail.com<mailto:steven.keuchel@gmail.com>> wrote: Hi list, I was wondering why GHC doesn't allow usage of polymorphic types in the right-hand side of type instance declarations for type families. The GHC user guide states: "The right-hand side of a type instance must be a monotype (i.e., it may not include foralls) [...]", but it doesn't state the reason. I stumbled upon this limitation when I was trying to generically calculate Johann's and Ghani's interpreter (transformers) for nested data types from their "Initial Algebra Semantics is Enough!" paper. Cheers, Steven _______________________________________________ Haskell mailing list Haskell@haskell.org<mailto:Haskell@haskell.org> http://www.haskell.org/mailman/listinfo/haskell
Hi Simon, For instance: data Su n
data Fin n where FSu :: Fin n -> Fin (Su n) -- equivalent to data Fin n = forall m. n ~ Su m => FSu (Fin m)
data a :=: b where Refl :: a :=: a
type instance Rep (Fin n) = forall m. (n :=: Su m, Fin m)
But I think I found the answer in the meantime: this would quickly leave GHC trying to prove things such as (forall m. ... ~ forall m1. ...), which I guess is undecidable in general. Cheers, Pedro 2011/4/4 Simon Peyton-Jones <simonpj@microsoft.com>
Can you give an example of what you’d like to write, but can’t?
Simon
*From:* glasgow-haskell-users-bounces@haskell.org [mailto: glasgow-haskell-users-bounces@haskell.org] *On Behalf Of *José Pedro Magalhães *Sent:* 04 April 2011 10:53 *To:* GHC users *Cc:* Steven Keuchel *Subject:* Re: [Haskell] Polymorphic types in RHS of type instances
Hi,
[Moving to glasgow-haskell-users@haskell.org]
I would also like to know the answer to this question. While I can imagine it has something to do with type checking/inference, it is not immediately clear to me where the problem lies.
Thanks, Pedro
On Sat, Feb 5, 2011 at 12:25, Steven Keuchel <steven.keuchel@gmail.com> wrote:
Hi list,
I was wondering why GHC doesn't allow usage of polymorphic types in the right-hand side of type instance declarations for type families. The GHC user guide states: "The right-hand side of a type instance must be a monotype (i.e., it may not include foralls) [...]", but it doesn't state the reason.
I stumbled upon this limitation when I was trying to generically calculate Johann's and Ghani's interpreter (transformers) for nested data types from their "Initial Algebra Semantics is Enough!" paper.
Cheers, Steven
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
participants (2)
-
José Pedro Magalhães -
Simon Peyton-Jones