adamc@794: datatype t = datatype Basis.list adamc@794: adamc@794: val show : a ::: Type -> show a -> show (list a) adamc@794: adamc@794: val rev : a ::: Type -> t a -> t a adamc@794: adamc@821: val revAppend : a ::: Type -> t a -> t a -> t a adamc@821: adamc@821: val append : a ::: Type -> t a -> t a -> t a adamc@821: adamc@794: val mp : a ::: Type -> b ::: Type -> (a -> b) -> t a -> t b adamc@794: adamc@821: val mapPartial : a ::: Type -> b ::: Type -> (a -> option b) -> t a -> t b adamc@821: adamc@796: val mapX : a ::: Type -> ctx ::: {Unit} -> (a -> xml ctx [] []) -> t a -> xml ctx [] [] adamc@800: adamc@800: val mapM : m ::: (Type -> Type) -> monad m -> a ::: Type -> b ::: Type adamc@800: -> (a -> m b) -> list a -> m (list b) adamc@821: adamc@821: val filter : a ::: Type -> (a -> bool) -> t a -> t a adamc@822: adamc@822: val exists : a ::: Type -> (a -> bool) -> t a -> bool adamc@822: adamc@822: val foldlMap : a ::: Type -> b ::: Type -> c ::: Type adamc@822: -> (a -> b -> c * b) -> b -> t a -> t c * b