Actually, difference is that condition on 'coerce' is redundant.
Spad compiler uses 'false' to mark conditianal signatures with
conditions that are not known to be true. In conditional part
when condition is true condition in the signature is effectively
replaced by true. That worked for 'bar'. But Spad compiler
knew that condition is true so did not bother with replacement
for 'coerce'. I have commited a patch so that code handling
conditions allows false condition, so now this extra signature
causes no trouble.
>
> Ralf
>
> --
> You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
fricas-devel...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/4c02fab8-c770-431d-90b0-04dac78e7ce9%40hemmecke.org.
> xxx ==> bar
> )abbrev package FOO Foo
> Foo(C: Ring): Exports == Implementation where
> Exports ==> with
> if C has xxx: Integer -> C then
> foo: () -> C
> Implementation ==> add
> if C has xxx: Integer -> C then
> blah(x: Integer): C == xxx x
> foo(): C == 1
--
Waldek Hebisch