{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}
-- This module contains overloaded functions for updating an element from a tuple.
-- The /updN/ function updates element /N/ from any supported tuple size.
module Data.Tuple.Update where
import Data.Tuple.OneTuple

instance Upd1 b (OneTuple a) (OneTuple b) where upd1 x (OneTuple _) = OneTuple x

--snip-----------------

---- Machine generated code below, see Tools/MkTuple.hs

---- mkTuple update 32

class Upd1 a b c | a b -> c , b c -> a where upd1 :: a -> b -> c
instance Upd1 b (a1,a2) (b,a2) where upd1 b (a1,a2) = (b,a2)
instance Upd1 b (a1,a2,a3) (b,a2,a3) where upd1 b (a1,a2,a3) = (b,a2,a3)
instance Upd1 b (a1,a2,a3,a4) (b,a2,a3,a4) where upd1 b (a1,a2,a3,a4) = (b,a2,a3,a4)
instance Upd1 b (a1,a2,a3,a4,a5) (b,a2,a3,a4,a5) where upd1 b (a1,a2,a3,a4,a5) = (b,a2,a3,a4,a5)
instance Upd1 b (a1,a2,a3,a4,a5,a6) (b,a2,a3,a4,a5,a6) where upd1 b (a1,a2,a3,a4,a5,a6) = (b,a2,a3,a4,a5,a6)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7) (b,a2,a3,a4,a5,a6,a7) where upd1 b (a1,a2,a3,a4,a5,a6,a7) = (b,a2,a3,a4,a5,a6,a7)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8) (b,a2,a3,a4,a5,a6,a7,a8) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8) = (b,a2,a3,a4,a5,a6,a7,a8)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) (b,a2,a3,a4,a5,a6,a7,a8,a9) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) = (b,a2,a3,a4,a5,a6,a7,a8,a9)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31)
instance Upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) where upd1 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) = (b,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)

class Upd2 a b c | a b -> c , b c -> a where upd2 :: a -> b -> c
instance Upd2 b (a1,a2) (a1,b) where upd2 b (a1,a2) = (a1,b)
instance Upd2 b (a1,a2,a3) (a1,b,a3) where upd2 b (a1,a2,a3) = (a1,b,a3)
instance Upd2 b (a1,a2,a3,a4) (a1,b,a3,a4) where upd2 b (a1,a2,a3,a4) = (a1,b,a3,a4)
instance Upd2 b (a1,a2,a3,a4,a5) (a1,b,a3,a4,a5) where upd2 b (a1,a2,a3,a4,a5) = (a1,b,a3,a4,a5)
instance Upd2 b (a1,a2,a3,a4,a5,a6) (a1,b,a3,a4,a5,a6) where upd2 b (a1,a2,a3,a4,a5,a6) = (a1,b,a3,a4,a5,a6)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7) (a1,b,a3,a4,a5,a6,a7) where upd2 b (a1,a2,a3,a4,a5,a6,a7) = (a1,b,a3,a4,a5,a6,a7)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8) (a1,b,a3,a4,a5,a6,a7,a8) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8) = (a1,b,a3,a4,a5,a6,a7,a8)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) (a1,b,a3,a4,a5,a6,a7,a8,a9) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) = (a1,b,a3,a4,a5,a6,a7,a8,a9)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31)
instance Upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) where upd2 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) = (a1,b,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)

class Upd3 a b c | a b -> c , b c -> a where upd3 :: a -> b -> c
instance Upd3 b (a1,a2,a3) (a1,a2,b) where upd3 b (a1,a2,a3) = (a1,a2,b)
instance Upd3 b (a1,a2,a3,a4) (a1,a2,b,a4) where upd3 b (a1,a2,a3,a4) = (a1,a2,b,a4)
instance Upd3 b (a1,a2,a3,a4,a5) (a1,a2,b,a4,a5) where upd3 b (a1,a2,a3,a4,a5) = (a1,a2,b,a4,a5)
instance Upd3 b (a1,a2,a3,a4,a5,a6) (a1,a2,b,a4,a5,a6) where upd3 b (a1,a2,a3,a4,a5,a6) = (a1,a2,b,a4,a5,a6)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7) (a1,a2,b,a4,a5,a6,a7) where upd3 b (a1,a2,a3,a4,a5,a6,a7) = (a1,a2,b,a4,a5,a6,a7)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8) (a1,a2,b,a4,a5,a6,a7,a8) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8) = (a1,a2,b,a4,a5,a6,a7,a8)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) (a1,a2,b,a4,a5,a6,a7,a8,a9) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) = (a1,a2,b,a4,a5,a6,a7,a8,a9)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31)
instance Upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) where upd3 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) = (a1,a2,b,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)

class Upd4 a b c | a b -> c , b c -> a where upd4 :: a -> b -> c
instance Upd4 b (a1,a2,a3,a4) (a1,a2,a3,b) where upd4 b (a1,a2,a3,a4) = (a1,a2,a3,b)
instance Upd4 b (a1,a2,a3,a4,a5) (a1,a2,a3,b,a5) where upd4 b (a1,a2,a3,a4,a5) = (a1,a2,a3,b,a5)
instance Upd4 b (a1,a2,a3,a4,a5,a6) (a1,a2,a3,b,a5,a6) where upd4 b (a1,a2,a3,a4,a5,a6) = (a1,a2,a3,b,a5,a6)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7) (a1,a2,a3,b,a5,a6,a7) where upd4 b (a1,a2,a3,a4,a5,a6,a7) = (a1,a2,a3,b,a5,a6,a7)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8) (a1,a2,a3,b,a5,a6,a7,a8) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8) = (a1,a2,a3,b,a5,a6,a7,a8)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) (a1,a2,a3,b,a5,a6,a7,a8,a9) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9) = (a1,a2,a3,b,a5,a6,a7,a8,a9)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) where upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) = (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23)
instance Upd4 b (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) (a1,a2,a3,b,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,