Class IntClass

IntClass.lf:
let

  fix = load "fix.lf" // import applicative-order fixed-point operator

  IntClass =
      let

        IntClassBehavior = 
          (|
            getIntField = (\():: State.fIntField ),
            setIntField = (\Args:: self (| State, fIntField = Args.aIntField |) )
          |)

        deltaIntClass = IntClassBehavior

        IntClassState = (| fIntField = 0 |)

        deltaClass = (\State:: deltaIntClass)
         
        IntClassG = 
          (\OArgs:: deltaClass 
                    (| OArgs # (| IntClassState \ (| fIntField = OArgs.fIntField |) |) |))

        IntClassW = (\OArgs:: (fix (| f=(\self:: IntClassG) |)) OArgs)

      in

        (| W=IntClassW, G=IntClassG |)

      end)

in

  IntClass

end
    

Last modified: 2006-02-11 — Markus Lumpe