horrible, horrible experiments with folds
[packages/hoopl.git] / src / FAQ
1  > in GHC we quite often we want to get the entry or the last node of a block.
2  > Currently that can take up to linear time in the length of a block, right?
3  > Are there any plans to improve it, perhaps by changing the representation
4  > of a block?
5
6 Milan,
7
8 The current representation can be either 'front-biased' or
9 'back-biased' to make one of those operations constant time.
10 The previous representation was always front-biased and we never noted
11 any performance problems.
12
13 If, and only if, you find a situation where you have measured a
14 significant performance problem, I suggest that you wrap the existing
15 block in a new block type that caches the information you need.
16 The representation Graph' is polymorphic precisely to enable this sort
17 of trickery; you'll see a different application in the dataflow
18 module, where a fact is stored with every block.
19
20