PreviousUpNext

15.3.515  src/lib/std/src/null-or.api

## null-or.api

# Compiled by:
#     src/lib/std/src/standard-core.sublib



api Null_Or {

    Null_Or X
        =
        NULL | THE X;

    exception NULL_OR;

    the_else:          ((Null_Or(X), X)) -> X;

    not_null:          Null_Or(X) -> Bool;
    the:               Null_Or(X) -> X;

    filter:            (X -> Bool) -> X -> Null_Or(X);
    join:              Null_Or( Null_Or(X) ) -> Null_Or(X);

    apply:             (X -> Void)       -> Null_Or(X) -> Void;                         # fun apply f (THE x) =>       f x;     apply f NULL => ();     end;
    map:               (X -> Y)          -> Null_Or(X) -> Null_Or(Y);                   # fun map   f (THE x) =>  THE (f x);    map   f NULL =>  NULL;  end;
    map': (X -> Null_Or(Y)) -> Null_Or(X) -> Null_Or(Y);                        # fun map' f (THE x) =>  f x;        map' f NULL    =>  NULL;    end;

    compose:           (((X -> Y),          (Z -> Null_Or(X)))) -> Z -> Null_Or(Y);
    compose_partial:   (((X -> Null_Or(Y)), (Z -> Null_Or(X)))) -> Z -> Null_Or(Y);

};




## COPYRIGHT (c) 1997 AT&T Labs Research.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext