import public Language.Implicits.IfUnsolveddata LazyLst : Bool -> Type -> TypeNil : LazyLst False a(::) : {auto 0 _ : IfUnsolved True ine} -> {auto 0 _ : IfUnsolved True ne} -> a -> Lazy (LazyLst ine a) -> LazyLst ne aApplicative (LazyLst ne)Biinjective (\x, y => x :: Delay y)Cast (LazyLst ne a) (LazyList a)Foldable (LazyLst ne)Functor (LazyLst ne)Monad (LazyLst ne)Semigroup (LazyLst ne a)Show a => Show (LazyLst ne a)Uninhabited ([] = x :: Delay xs)Uninhabited (x :: Delay xs = [])Either (Uninhabited (x = y)) (Uninhabited (xs = ys)) => Uninhabited (x :: Delay xs = y :: Delay ys)Zippable (LazyLst ne)LazyLst0 : Type -> TypeAn alias for a list that definitely may be empty.
Don't use this if you can be polymorphic on the boolean type argument.
LazyLst1 : Type -> Typelength : LazyLst ne a -> Nat.length : LazyLst ne a -> Nat(++) : LazyLst nel a -> Lazy (LazyLst ner a) -> LazyLst (nel || Delay ner) aindex' : (xs : LazyLst ne a) -> Fin (xs .length) -> aindex : Fin n -> (xs : LazyLst ne a) -> {auto 0 _ : n = xs .length} -> aiterateN : (n : Nat) -> (a -> a) -> a -> LazyLst (n /= 0) atabulateN : (n : Nat) -> (Fin n -> a) -> LazyLst (n /= 0) areplicate : (n : Nat) -> a -> LazyLst (n /= 0) aiterate : (a -> Maybe a) -> a -> LazyLst0 aunfoldr : (b -> Maybe (a, b)) -> b -> LazyLst0 arelaxF : LazyLst ne a -> LazyLst0 arelaxT : LazyLst1 a -> LazyLst ne arelaxAnd : LazyLst ne a -> LazyLst (ne && nx) astrengthen : LazyLst ne a -> Maybe (LazyLst1 a)bind : LazyLst nel a -> (a -> LazyLst ner b) -> LazyLst (nel && Delay ner) bbind' : LazyLst nel a -> LazyLst ner b -> LazyLst (nel && Delay ner) bjoin' : LazyLst nel (LazyLst ner a) -> LazyLst (nel && Delay ner) aap : LazyLst nel (a -> b) -> LazyLst ner a -> LazyLst (nel && Delay ner) bfoldrLazy : (a -> Lazy b -> b) -> Lazy b -> LazyLst ne a -> bfoldl1 : (a -> a -> a) -> LazyLst1 a -> afoldr1 : (a -> Lazy a -> a) -> LazyLst1 a -> atraverse_ : Monad m => (a -> m b) -> LazyLst ne a -> m ()for_ : Monad m => LazyLst ne a -> (a -> m b) -> m ()sequence_ : Monad m => LazyLst ne (m a) -> m ()head : LazyLst1 a -> ahead' : LazyLst ne a -> Maybe atail : LazyLst1 a -> LazyLst0 atail' : LazyLst ne a -> Maybe (LazyLst0 a)last : LazyLst1 a -> alast' : LazyLst ne a -> Maybe ainit : LazyLst1 a -> LazyLst0 ainit' : LazyLst ne a -> Maybe (LazyLst0 a)tails : LazyLst ne a -> LazyLst1 (LazyLst0 a)tails1 : LazyLst ne a -> LazyLst ne (LazyLst1 a)inits : LazyLst ne a -> LazyLst1 (LazyLst0 a)inits1 : LazyLst ne a -> LazyLst ne (LazyLst1 a)take : (n : Nat) -> LazyLst ne a -> LazyLst (ne && Delay (n /= 0)) adrop : Nat -> LazyLst ne a -> LazyLst0 atakeWhile : (a -> Bool) -> LazyLst ne a -> LazyLst0 adropWhile : (a -> Bool) -> LazyLst ne a -> LazyLst0 azipWithStream : (a -> b -> c) -> Stream a -> LazyLst ne b -> LazyLst ne czipStream : Stream a -> LazyLst ne b -> LazyLst ne (a, b)filter : (a -> Bool) -> LazyLst ne a -> LazyLst0 amapMaybe : (a -> Maybe b) -> LazyLst ne a -> LazyLst0 bfromFoldable : Foldable f => f a -> LazyLst0 afromList : (xs : List a) -> LazyLst (not (null xs)) afromLazyList : (xs : LazyList a) -> LazyLst (not (null xs)) atoLazyList : LazyLst ne a -> LazyList afromStream : Stream a -> LazyLst1 arangeFromTo : Range a => a -> a -> LazyLst0 arangeFromThenTo : Range a => a -> a -> a -> LazyLst0 arangeFrom : Range a => {auto 0 _ : IfUnsolved ne True} -> a -> LazyLst ne arangeFromThen : Range a => {auto 0 _ : IfUnsolved ne True} -> a -> a -> LazyLst ne amapFusion : (g : (b -> c)) -> (f : (a -> b)) -> (xs : LazyLst ne a) -> map g (map f xs) = map (g . f) xsmapExt : (xs : LazyLst ne {_:6028}) -> ((x : {_:6028}) -> f x = g x) -> map f xs = map g xs