Tue Sep 6 14:53:09 CEST 2011
The SigState class needs to be more general, and should also apply to
inputs and outputs. It should capture the relation between abstract
data and "flat" data for the compilation target.
Renamed to PrimData.
- Can have only one primitive type due to s -> p fundep. This makes
sense in that states really can be general: we can compily
anything to [p], so p needs to be fixed to one single type.
Can it be done with a quantification instead of fundeps? I don't
know. I don't understand why this doesn't make sense:
instance forall p. ((PrimData p a, PrimData p b) => PrimData p (ProdData a b))
However, only supporting a single concrete type is not a problem:
it looks like class instances can be module local, so if multiple
primitives need to be combined, they can at least be hidden behind