Skip to content

Commit e5bfab3

Browse files
who2: Configurable AST normalization, patricia-tree data structures
1 parent 58e6c96 commit e5bfab3

File tree

25 files changed

+2243
-281
lines changed

25 files changed

+2243
-281
lines changed

who2/src/Who2/Builder.hs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,19 @@ import Who2.Unsupported (unsupported)
5454
-- and that this overhead largely arises from What4's normalizing data
5555
-- structures (see "What4.Expr.App"). Such data structures can make building
5656
-- expressions take @O(n log n)@. 'Builder' performs local rewrites and tracks
57-
-- abstract domains, but does not include such heavyweight datastructures.
58-
-- It strives to keep construction approximately linear.
57+
-- abstract domains, but by default it does not include such heavyweight
58+
-- datastructures.
59+
--
60+
-- 'Builder' is configurable via compile-time options in "Who2.Config". This
61+
-- enables experimentation with different options that can have considerable
62+
-- positive or negative effects on performance, and likely depend on workload.
63+
-- In this way, Who2 also provides a platform for experimenting with different
64+
-- techniques and trade-offs.
65+
--
66+
-- In the default configuration, 'Builder' uses approximately linear time
67+
-- operations and datastructures based on bloom filters. When 'hashConsing' is
68+
-- enabled, 'Builder' can optionally utilize heavier-weight datastructures for
69+
-- more agressive simplification. See "Who2.Expr.App" for more details.
5970
data Builder t
6071
= Builder
6172
{ bNonceGen :: !(NonceGenerator IO t)

0 commit comments

Comments
 (0)