Description
A shaping applies rules 'at compile time' whereas a procedure would apply the rules 'at runtime'.
Example
Disclaimer: This example assumes the usage of the 'all' strategy as described in #11, because I could not come up with a different example.
eq_f :: eq(bool(true), bool(false)) = bool(false)
eq_t :: eq(bool(A), bool(A)) = bool(true)
basic_comm :: B(X, Y) = B(Y, X)
# eq_resolve :: eq(bool(A), bool(B)) {
# eq_t | all
# eq_f | all
# basic_comm | all
# eq_f | all
# }
#
# result: eq(bool(A), bool(B))
proc eq_resolve :: eq(bool(A), bool(B)) {
eq_t | all
eq_f | all
basic_comm | all
eq_f | all
}
eq(bool(false), bool(true)) {
eq_resolve | all
}
# expected result: bool(false)
Description
A shaping applies rules 'at compile time' whereas a procedure would apply the rules 'at runtime'.
Example
Disclaimer: This example assumes the usage of the 'all' strategy as described in #11, because I could not come up with a different example.