module EXP is ------------------------------------------------------------------------------- type EXP is !implementedby "EXP" !comparedby "CMP_EXP" !printedby "PRINT_EXP" !external 0 !implementedby "ZERO", X1 !implementedby "X1", X2 !implementedby "X2", X3 !implementedby "X3", X4 !implementedby "X4", X5 !implementedby "X5", X6 !implementedby "X6", X7 !implementedby "X7", X8 !implementedby "X8", X9 !implementedby "X9", X10 !implementedby "X10", X11 !implementedby "X11", X12 !implementedby "X12", X13 !implementedby "X13", X14 !implementedby "X14", X15 !implementedby "X15", X16 !implementedby "X16", X17 !implementedby "X17", X18 !implementedby "X18", X19 !implementedby "X19", X20 !implementedby "X20", X21 !implementedby "X21", X22 !implementedby "X22", X23 !implementedby "X23", X24 !implementedby "X24", X25 !implementedby "X25", X26 !implementedby "X26", W1 !implementedby "W1", W2 !implementedby "W2", W3 !implementedby "W3", W4 !implementedby "W4", W5 !implementedby "W5", W6 !implementedby "W6", W7 !implementedby "W7", + (E1, E2: EXP) !implementedby "Plus", * (E1, E2: EXP) !implementedby "Star" -- "+" is actually a non-free constructor that implements the algebraic -- reductions: 0 + X = X and X + 0 = X end type ------------------------------------------------------------------------------- channel WIRE is (E: EXP) end channel ------------------------------------------------------------------------------- end module