| You might expect there to be a prefix form of the unboxed tuple: | | Prelude> case (#,#) 1 2 of (# a , b #) -> error $ show (a,b) | <interactive>:1:7: parse error on input `,' | | But there isn't.
No real reason why not. If you write foo :: a -> b -> (# a,b #) foo x y = (# x, y #) then foo should work just fine. So what you want needs two things: * We would have to define a collection of such functions in the Prelude (see Data.Tuple, for the (,,,,) functions). * We'd have to do is to make the parser understand '(#,,,#)'. Do add a feature request if you like. (And/or implement it!) It'd be a good "rounding out" thing. Another feature I'd like is for unboxed tuples to be more first class. For example, we don't currently allow f :: (# a, b #) -> ... But there's no real reason why not; we could transform them away just before code generation. That would eliminate all special cases for unboxed tuples, except the constraints that apply to all unboxed types (notably: you can't instantiate a type variable with an unboxed type; unboxed types are strict). If you add a feature request, add that too! Simon _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users