>>634
ならReaderアプリカティブを利用して、

instance F X where f = X <$> f <*> f <*> f <*> f

-- > (f 43 :: X)
-- X (A 43) (B "43") (C '+') (D 43.0)

ではいかが