No. You'll have to use a newtype. Type parameter order is a huge deal for some types, e.g. monad transformers, you'd better think about it beforehand.
On Thu, 09 May 2013 19:39:12 -0800 Christopher Howard <christopher.how...@frigidcode.com> wrote: > Hi. Does Haskell allow you to flip around type parameters somehow? I > was playing around with toy code (still learning the fundamentals) > and I came up with a class like this: > > code: > -------- > class Rotatable2D a where > > rotate :: (Num b) => (a b) -> b -> (a b) > -------- > > It was easy to make an instance of a generic single-parameter type: > > code: > -------- > data Angle a = Angle a > deriving (Show) > > instance Rotatable2D Angle where > > rotate (Angle a) b = Angle (a + b) > -------- > > But let's say I have something a little more complicated: > > code: > -------- > data CircAppr a b = CircAppr a a b -- radius, rotation angle, number > of points > -------- > > I think I need something like so: > -------- > instance Rotatable2D (\x -> CircAppr x a) where > > rotate (CircAppr a b c) d = CircAppr a (b + d) c > -------- > > But I tried that and it isn't valid syntax. > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe