annotate demo/more/dlist.urs @ 2129:e0843b2a636d
Make flattening of reactive HTML trees iterative instead of recursive, to avoid stack overflows
author |
Adam Chlipala <adam@chlipala.net> |
date |
Sun, 08 Mar 2015 11:12:28 -0400 |
parents |
68429cfce8db |
children |
|
rev |
line source |
adamc@915
|
1 con dlist :: Type -> Type
|
adamc@915
|
2 type position
|
adamc@915
|
3
|
adamc@951
|
4 val create : t ::: Type -> transaction (dlist t)
|
adamc@915
|
5 val clear : t ::: Type -> dlist t -> transaction unit
|
adamc@915
|
6 val append : t ::: Type -> dlist t -> t -> transaction position
|
adamc@954
|
7 val replace : t ::: Type -> dlist t -> list t -> transaction unit
|
adamc@954
|
8
|
adamc@915
|
9 val delete : position -> transaction unit
|
adamc@915
|
10 val elements : t ::: Type -> dlist t -> signal (list t)
|
adamc@964
|
11 val size : t ::: Type -> dlist t -> signal int
|
adamc@965
|
12 val numPassing : t ::: Type -> (t -> signal bool) -> dlist t -> signal int
|
adamc@937
|
13 val foldl : t ::: Type -> acc ::: Type -> (t -> acc -> signal acc) -> acc -> dlist t -> signal acc
|
adamc@915
|
14
|
adam@1641
|
15 val render : ctx ::: {Unit} -> [ctx ~ [Dyn]] => t ::: Type
|
adam@1641
|
16 -> (t -> position -> xml (ctx ++ [Dyn]) [] [])
|
adamc@962
|
17 -> {StartPosition : signal (option int),
|
adamc@963
|
18 MaxLength : signal (option int),
|
adamc@962
|
19 Filter : t -> signal bool,
|
adamc@952
|
20 Sort : signal (option (t -> t -> signal bool)) (* <= *)}
|
adamc@915
|
21 -> dlist t
|
adam@1641
|
22 -> xml (ctx ++ [Dyn]) [] []
|