Mon Sep 18 14:48:53 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* fixed bug in product unboxing
Sat Aug 5 21:46:18 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* fixed bug in product unboxing
Mon Jul 17 09:10:34 EDT 2006 kevind@bu.edu
; let {result
| isNewTyCon tycon && not (isRecursiveTyCon tycon)
= deepSplitProductType_maybe (newTyConInstRhs tycon tycon_args)
+ | isNewTyCon tycon = Nothing -- cannot unbox through recursive newtypes
| otherwise = Just res}
; result
}
(tycon, tycon_args, pack_con, con_arg_tys) = splitProductType "mkProductBox" ty
result_expr
- | isNewTyCon tycon
+ | isNewTyCon tycon && not (isRecursiveTyCon tycon)
= wrap (mkProductBox arg_ids (newTyConInstRhs tycon tycon_args))
| otherwise = mkConApp pack_con (map Type tycon_args ++ map Var arg_ids)