Skip to content

max Integer y Double probadorHaskellOCL

no cumple con la firma de la documentacion
self.entero.max(10.1)=10.1
genera
invariant1 = context _Integer1 [invariantInteger1]
invariantInteger1 self = ((ocl self |.| entero' |.| (maxOCL (oclDouble 10.1)))) |==| (oclDouble 10.1)

ACCELEO.hs:200:62: error:
    • Couldn't match type ‘Double’ with ‘Int’
      Expected type: OCL Model (Val Int)
        Actual type: OCL Model (Val Double)
    • In the first argument of ‘maxOCL’, namely ‘(oclDouble 10.1)’
      In the second argument of ‘(|.|)’, namely
        ‘(maxOCL (oclDouble 10.1))’
      In the first argument of ‘(|==|)’, namely
        ‘((ocl self |.| entero' |.| (maxOCL (oclDouble 10.1))))’

ACCELEO.hs:200:87: error:
    • Couldn't match type ‘Double’ with ‘Int’
      Expected type: OCL Model (Val Int)
        Actual type: OCL Model (Val Double)
    • In the second argument of ‘(|==|)’, namely ‘(oclDouble 10.1)’
      In the expression:
        ((ocl self |.| entero' |.| (maxOCL (oclDouble 10.1))))
        |==| (oclDouble 10.1)
      In an equation for ‘invariantInteger1’:
          invariantInteger1 self
            = ((ocl self |.| entero' |.| (maxOCL (oclDouble 10.1))))
              |==| (oclDouble 10.1)

Parece que hay error de copy paste en la documentacion apendice D.2 OCL