~/bend-docscommunity

set.bend checks

raw source on the hub · import 0x4c3090ea8722081700f9d99ea7503e43/set.bend as MSet

1 import
import Base

Laws

law set_mem_hit provedsource · line 119 · raw

{smember(sinsert(sempty, 5), 5) == (US{[5]}, True{}) : Pair(USet, Bool)}

law set_size_two provedsource · line 125 · raw

{ssize(sinsert(sinsert(sempty, 1), 2)) == 2 : U32}

law set_size_dedup provedsource · line 131 · raw

{ssize(sinsert(sinsert(sempty, 1), 1)) == 1 : U32}

law ssize_empty provedsource · line 137 · raw

{ssize(sempty) == 0 : U32}

Types

type USet source · line 12 · raw

Data

Definitions

def sempty source · line 15 · raw

USet

def sput source · line 21 · raw

@lt:Bool -> @eq:Bool -> @x:U32 -> @h:U32 -> @t:List<&2, U32> -> @r:List<&2, U32> -> List<&2, U32>

sput: insert-branch. lt/eq compare x against head h; t is the original tail, r the recursively-inserted tail. x<h -> x<>h<>t (drop r); x==h -> h<>t (drop r, dedup); else h<>r (drop t).

def sinsert_go source · line 30 · raw

@xs:List<&2, U32> -> @+x:U32 -> List<&2, U32>

def sinsert source · line 37 · raw

@s:USet -> @+x:U32 -> USet

def smem_list source · line 42 · raw

@xs:List<&2, U32> -> @+x:U32 -> Bool

def smem_b source · line 49 · raw

@+s:USet -> @+x:U32 -> Bool

def smember source · line 54 · raw

@+s:USet -> @+x:U32 -> Pair(USet, Bool)

def sunion_go source · line 57 · raw

@ys:List<&2, U32> -> @acc:USet -> USet

def sunion source · line 64 · raw

@+a:USet -> @+b:USet -> USet

def sinter_put source · line 69 · raw

@keep:Bool -> @h:U32 -> @r:List<&2, U32> -> List<&2, U32>

def sinter_go source · line 76 · raw

@xs:List<&2, U32> -> @+b:USet -> List<&2, U32>

def sinter source · line 83 · raw

@a:USet -> @+b:USet -> USet

def sdiff_put source · line 88 · raw

@found:Bool -> @h:U32 -> @r:List<&2, U32> -> List<&2, U32>

def sdiff_go source · line 95 · raw

@xs:List<&2, U32> -> @+b:USet -> List<&2, U32>

def sdiff source · line 102 · raw

@a:USet -> @+b:USet -> USet

def sllen source · line 107 · raw

@xs:List<&2, U32> -> @acc:U32 -> U32

def ssize source · line 114 · raw

@s:USet -> U32