Hello.

TupleInstances It's a really small library that provides
instances for Functor, Applicative, Foldable and Traversable for
tuples of the form (a,a...a). It uses newtypes to wrap the tuples
and Template Haskell to generate the code.

Here's an example of these instances in action:

example6 :: (Int, Int) -> [(Int, Int)]
example6 p = map unT $ liftA2 (+) (T2 p) <$> moves
         where moves = tail $ traverse (\x -> [0,x+1,x-1]) (pure 0 :: T2 Int)
-- > Result with (1,1): [(1,2),(1,0),(2,1),(2,2),(2,0),(0,1),(0,2),(0,0)]

More examples here: http://github.com/diegoeche/tupleinstances/raw/master/README

PS: This is also my first package uploaded to Hackage. I would
appreciate any feedback.

Best Regards,
Diego Echeverri
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to