1f80c0ba14aa3bf4526d68767c26116eb30ecaa8Christian Maeder{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable #-}
06a671f19b2f76097ca4997268954721a831c527Christian MaederDescription : basic ShATermConvertible instances
383aa66e5142365fe9b1f88b18c1da5b27cc8c04Christian MaederCopyright : (c) Christian Maeder, Uni Bremen 2005-2006
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuLicense : GPLv2 or higher, see LICENSE.txt
3f69b6948966979163bdfe8331c38833d5d90ecdChristian MaederMaintainer : Christian.Maeder@dfki.de
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian MaederStability : provisional
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian MaederPortability : portable
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maedera few basic 'ShATermConvertible' instances needed by "Haskell.ATC_Haskell"
1f80c0ba14aa3bf4526d68767c26116eb30ecaa8Christian Maederderiving instance Typeable SrcLoc
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maederinstance ShATermConvertible SrcLoc where
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder toShATermAux att0 xv = case xv of
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder SrcLoc a b c d -> do
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder (att1, a') <- toShATerm' att0 a
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder (att2, b') <- toShATerm' att1 b
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder (att3, c') <- toShATerm' att2 c
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder (att4, d') <- toShATerm' att3 d
1f80c0ba14aa3bf4526d68767c26116eb30ecaa8Christian Maeder return $ addATerm (ShAAppl "SrcLoc" [a', b', c', d'] []) att4
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder fromShATermAux ix att0 = case getShATerm ix att0 of
1f80c0ba14aa3bf4526d68767c26116eb30ecaa8Christian Maeder ShAAppl "SrcLoc" [a, b, c, d] _ ->
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder case fromShATerm' a att0 of { (att1, a') ->
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder case fromShATerm' b att1 of { (att2, b') ->
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder case fromShATerm' c att2 of { (att3, c') ->
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder case fromShATerm' d att3 of { (att4, d') ->
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder (att4, SrcLoc a' b' c' d') }}}}
64f2afbaadbbc9ffc4d10eb413325777f7e7fef8Christian Maeder u -> fromShATermError "SrcLoc" u