MODULE {LOAG.Rep} {}{ import CommonTypes import AbstractSyntax import LOAG.Common import qualified Data.Array as A import qualified Data.Map as Map import qualified Data.Set as Set } imports{ import Data.List (intercalate, foldl', nub) import Data.Tuple (swap) import Control.Arrow } DATA LOAGRep | LOAGRep ps : {[PLabel]} ap : A_P an : A_N ain : AI_N asn : AS_N sfp : SF_P pmp : PMP pmpr : PMP_R nmp : NMP nmpr : NMP_R gen : {A.Array Int Int} inss : {A.Array Int [Int]} ofld : {A.Array Int Int} fty : FTY fieldMap : FMap fsInP: {Map.Map PLabel [(PLabel,FLabel)]} TYPE FieldAtts = [FieldAtt] -- t is the type of the attribute this occurrence belongs to DATA FieldAtt | FieldAtt t : {MyType} p : {PLabel} f : {FLabel} a : {ALabel} TYPE MySegments = [MySegment] DATA MySegment | MySegment visnr : Int inhAttr : {[Int]} synAttr : {[Int]} inhOccs : {Maybe [Int]} synOccs : {Maybe [Int]} DERIVING MySegments MySegment : Show