adamc@794: datatype t = datatype Basis.list adamc@794: adamc@846: val show : a ::: Type -> show a -> show (t a) adamc@846: val eq : a ::: Type -> eq a -> eq (t a) adamc@794: adamc@845: val foldl : a ::: Type -> b ::: Type -> (a -> b -> b) -> b -> t a -> b adamc@850: val foldlAbort : a ::: Type -> b ::: Type -> (a -> b -> option b) -> b -> t a -> option b adamc@850: val foldlMapAbort : a ::: Type -> b ::: Type -> c ::: Type adamc@850: -> (a -> b -> option (c * b)) -> b -> t a -> option (t c * b) adamc@845: adamc@1057: val foldr : a ::: Type -> b ::: Type -> (a -> b -> b) -> b -> t a -> b adamc@1057: adamc@916: val length : a ::: Type -> t a -> int adamc@916: 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@830: -> (a -> m b) -> t a -> m (t b) adamc@830: adamc@1107: val mapPartialM : m ::: (Type -> Type) -> monad m -> a ::: Type -> b ::: Type -> (a -> m (option b)) -> t a -> m (t b) adamc@1107: adamc@830: val mapXM : m ::: (Type -> Type) -> monad m -> a ::: Type -> ctx ::: {Unit} adamc@830: -> (a -> m (xml ctx [] [])) -> t a -> m (xml ctx [] []) 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@840: val foldlM : m ::: (Type -> Type) -> monad m -> a ::: Type -> b ::: Type adamc@840: -> (a -> b -> m b) -> b -> t a -> m b adamc@840: adamc@822: val foldlMap : a ::: Type -> b ::: Type -> c ::: Type adamc@822: -> (a -> b -> c * b) -> b -> t a -> t c * b adamc@839: adamc@839: val search : a ::: Type -> b ::: Type -> (a -> option b) -> t a -> option b adamc@843: adamc@843: val all : a ::: Type -> (a -> bool) -> t a -> bool adamc@844: adamc@844: val app : m ::: (Type -> Type) -> monad m -> a ::: Type adamc@844: -> (a -> m unit) -> t a -> m unit adamc@845: adamc@908: val mapQuery : tables ::: {{Type}} -> exps ::: {Type} -> t ::: Type adamc@908: -> [tables ~ exps] => adamc@1191: sql_query [] tables exps adamc@908: -> ($(exps ++ map (fn fields :: {Type} => $fields) tables) -> t) adamc@908: -> transaction (list t) adamc@845: adamc@1107: val mapQueryM : tables ::: {{Type}} -> exps ::: {Type} -> t ::: Type adamc@1107: -> [tables ~ exps] => adamc@1191: sql_query [] tables exps adamc@1107: -> ($(exps ++ map (fn fields :: {Type} => $fields) tables) -> transaction t) adamc@1107: -> transaction (list t) adamc@1107: adamc@1107: val mapQueryPartialM : tables ::: {{Type}} -> exps ::: {Type} -> t ::: Type adamc@1107: -> [tables ~ exps] => adamc@1191: sql_query [] tables exps adamc@1107: -> ($(exps ++ map (fn fields :: {Type} => $fields) tables) -> transaction (option t)) adamc@1107: -> transaction (list t) adamc@1107: adamc@845: (** Association lists *) adamc@845: adamc@845: val assoc : a ::: Type -> b ::: Type -> eq a -> a -> t (a * b) -> option b adamc@845: adamc@845: val assocAdd : a ::: Type -> b ::: Type -> eq a -> a -> b -> t (a * b) -> t (a * b)