advancedtelematic / quickcheck-state-machine

Test monadic programs using state machine based models
Other
203 stars 25 forks source link

Show instance for Internal has "Untyped" as part of the output #196

Closed stevana closed 6 years ago

stevana commented 6 years ago

E.g.:

ParallelProgram (Program {unProgram = [Internal (Untyped New) [...]

It seems like we have Show (Untyped act) => Show (Internal act) somewhere that causes this problem.

Lysxia commented 6 years ago

Here, the context should really be (forall a. Show (act Symbolic a), or even forall v a. (forall x. Show (v x)) => Show (act v a) if you want to keep Symbolic hidden. Untyped is a workaround for the fact that we can't express those constraints yet.

Some of the tricks I suggested in #170 to encode those constraints apply here too.

stevana commented 6 years ago

This is no longer an issue, as we moved away from GADTs for actions in #209 and thus don't need untyped anymore.