1 class PriorityQueue q :: (* -> *) where {splitMin :: __forall [a] {PrelBase.Ord a} => q a -> SeqView q a; meld :: __forall [a] {PrelBase.Ord a} => q a -> q a -> q a; insert = :: __forall [a] {PrelBase.Ord a} => a -> q a -> q a; single :: __forall [a] {PrelBase.Ord a} => a -> q a; empty :: __forall [a] {PrelBase.Ord a} => q a} ;
1 data SeqView t :: (* -> *) a = Null | Cons a (t a) ;
1 insertMany :: __forall [a q :: (* -> *)] {PrelBase.Ord a, PriorityQueue q} => [a] -> q a -> q a ;
1 class PriorityQueue q :: (* -> *) where {splitMin :: __forall [a] {PrelBase.Ord a} => q a -> SeqView q a; meld :: __forall [a] {PrelBase.Ord a} => q a -> q a -> q a; insert = :: __forall [a] {PrelBase.Ord a} => a -> q a -> q a; single :: __forall [a] {PrelBase.Ord a} => a -> q a; empty :: __forall [a] {PrelBase.Ord a} => q a} ;
1 data SeqView t :: (* -> *) a = Null | Cons a (t a) ;
1 insertMany :: __forall [a q :: (* -> *)] {PrelBase.Ord a, PriorityQueue q} => [a] -> q a -> q a ;