Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / queue / lazy-append-reverse.fun
1 (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 *
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
6 *)
7
8 functor LazyAppendReverse(): APPEND_REVERSE =
9 struct
10
11 structure L' = LazyListLength(LazyList)
12
13 open L'
14
15 structure L = L'
16
17 end
18
19 structure LazyAppendReverse = LazyAppendReverse()
20
21 (* figure 1 of Okasaki96 *)
22 structure QueueAmortizedConst =
23 PersistentQueue(EarlyQueue(LazyAppendReverse))