Of course it depends what's inside the braces, and what you want to do with it, but I'd be inclined to do something like this:
 
1) data IX a = IX { constructor :: Int -> a, ... }
2) data IX a b = IX { constructor :: Int -> b, func :: a -> b, ... }
3) data IX a b = IX { iy :: IY a, ... }
4) data IX a b = IX { iz :: IZ b, iy :: IY a, ... }
 
Can you specify more clearly what the goal of the conversion is?  If you want "OO" style behavior the thing that is most important is existential quantification.
 
  -- ryan

 
On 1/2/08, Nicholls, Mark <Nicholls.Mark@mtvne.com> wrote:
I'm trying to translate some standard C# constucts into Haskell... some
of this seems easy....

Specifically

1)

Interface IX
{
}

2)

Interface IX<A>
{
}

3)

Interface IX<A>
       Where A : IY
{
}

4)

Interface IX<A> : IZ
       Where A : IY
{
}


I can take a punt at the first 2....but then it all falls apart
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe