
27 Dec
2014
27 Dec
'14
3:45 p.m.
On 12/26/2014 05:39 PM, Roman Cheplyaka wrote:
On 26/12/14 20:18, Michael Orlitzky wrote:
But I'm wondering, is there any generic function that will take a simple data type and cram it into a tuple?
Should be easy to do with the generics-sop package.
Thanks, I was able to get this working in ghci: import qualified GHC.Generics as GHC import Generics.SOP data Foo = Bar Int Int Int Int deriving (Show, GHC.Generic) instance Generic Foo to_tuple :: Foo -> (Int, Int, Int, Int) to_tuple (Bar w x y z) = (w,x,y,z) toTupleG = to . from An example:
let b = Bar 1 2 3 4 to_tuple b (1,2,3,4) toTupleG b :: (Int,Int,Int,Int) (1,2,3,4)