DefaultMorphism.hs revision 656f17ae9b7610ff2de1b6eedeeadea0c3bcdc8d
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyModule : $Header$
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerDescription : supply a default morphism for a given signature type
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyCopyright : (c) C. Maeder, and Uni Bremen 2002-2006
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyLicense : GPLv2 or higher, see LICENSE.txt
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyMaintainer : Christian.Maeder@dfki.de
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyStability : provisional
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillyPortability : portable
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'ReillySupply a default morphism for a given signature type
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'Reilly-- due to functional deps the instance for Logic.Category cannot be supplied
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder ( DefaultMorphism(..) -- constructor is only exported for ATC
66bc8d6e69cde43f1ccbeb76104cf7b8038acd6cChristian Maeder , ideOfDefaultMorphism
66bc8d6e69cde43f1ccbeb76104cf7b8038acd6cChristian Maeder , compOfDefaultMorphism
e90dc723887d541f809007ae81c9bb73ced9592eChristian Maeder , defaultInclusion
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reillydata DefaultMorphism sign = MkMorphism
53bd0c89aa4743dc41a6394db5a90717c1ca4517Liam O'Reilly { domOfDefaultMorphism :: sign
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder , codOfDefaultMorphism :: sign
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder } deriving (Show, Eq, Ord)
f21c7417bdd1c0282025cba0f5cb0ff5bc5c98eeLiam O'Reillyinstance Pretty a => Pretty (DefaultMorphism a) where
648fe1220044aac847acbdfbc4155af5556063ebChristian Maeder pretty = printDefaultMorphism pretty
33bdce26495121cdbce30331ef90a1969126a840Liam O'ReillyprintDefaultMorphism :: (a -> Doc) -> DefaultMorphism a -> Doc
c0833539c8cf577dd3f2497792fbdd818442744cChristian MaederprintDefaultMorphism fA (MkMorphism s t) =
33bdce26495121cdbce30331ef90a1969126a840Liam O'Reilly text "inclusion" $+$ specBraces (fA s) $+$ text mapsTo <+> specBraces (fA t)
7830e8fa7442fb7452af7ecdba102bc297ae367eChristian MaederideOfDefaultMorphism :: sign -> DefaultMorphism sign
33bdce26495121cdbce30331ef90a1969126a840Liam O'ReillyideOfDefaultMorphism s = MkMorphism s s
036ecbd8f721096321f47cf6a354a9d1bf3d032fChristian MaedercompOfDefaultMorphism :: Monad m => DefaultMorphism sign
aa4d26536fffe0153cd81d28925985892ac2f300Christian Maeder -> DefaultMorphism sign -> m (DefaultMorphism sign)
2a5b885d9350ec6dd8bc4992ee91d2f68aa592f4Christian MaedercompOfDefaultMorphism (MkMorphism s1 _) (MkMorphism _ s3) =
f21c7417bdd1c0282025cba0f5cb0ff5bc5c98eeLiam O'Reilly return $ MkMorphism s1 s3
b1f12c962a6fb28a298b36cf6a1dcf2ad788fb58Christian MaederdefaultInclusion :: Monad m => sign -> sign -> m (DefaultMorphism sign)
b1f12c962a6fb28a298b36cf6a1dcf2ad788fb58Christian MaederdefaultInclusion s = return . MkMorphism s