Go backward to Quantification and Modules
Go up to Top
Go forward to A Circle Package

Parametric Modules

type ExtendedPointWRT[PointRep] =
   PointWRT[PointRep] &
   {add: (PointRep x PointRep) -> PointRep}

value ExtendedPoint =
   exists PointRep. ExtendedPointWRT[PointRep]

value extendPointPackage =
   fun(pointPackage: Point)
   open pointPackage as p[PointRep] in
      pack[PointRep' = PointRep
         in ExtendedPointWRT[PointRep']]
      p &
     {add = fun(a: PointRep, b: PointRep)
      p.mkpoint(p.x-coord(a)+p.x-coord(b),
      p.y-coord(a)+p.x-coord(b))}

value extendedCartesianPointPackage =
   extendPointPackage(cartesianPointPackage)


Wolfgang.Schreiner@risc.uni-linz.ac.at
Id: understand.tex,v 1.1 1996/06/12 09:38:21 schreine Exp schreine

Prev Up Next