README.Hets-DrIFT revision 0a139d5a923d7c07a9c0ecb10bb43c716a23f1cd
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederThese source files are adapted for the special purposes of Hets!
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederFor the original or most recent sources, license, and authors see:
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maederhttp://repetae.net/computer/haskell/DrIFT/
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederSource files containing DrIFT directives have extension .der.hs and are
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maederconverted to .hs files via the (GNU) make-rule:
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder%.hs: %.der.hs DrIFT
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder $(RM) $@
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder DrIFT $< > $@
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederThe environment variable DERIVEPATH can be set to find sources in other paths.
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederImported modules that are not found are simply ignored.
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederFor individual types example directives are:
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder{-! for Common.Id.Pos derive : Typeable !-}
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder{-! for Common.Id.Range derive : Typeable !-}
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder{-! for Common.Id.Pos derive : ShATermConvertible !-}
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder{-! for Common.Id.Range derive : ShATermConvertible !-}
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederInstances (for the class getRange) of all types of a file are created by the
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maederdirective:
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder{-! global: GetRange !-}
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder(Instances for the class Binary can also be created.)
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian MaederFurthermore the class ShATermLG (and BinaryLG) with an additional logic graph
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maederargument when reading in (for some existential types) is supported. But the
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maederinstances created for existential types need to be corrected manually!
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder
0a139d5a923d7c07a9c0ecb10bb43c716a23f1cdChristian Maeder(We don't use DrIFT in any other way.)