]> gitweb.factorcode.org Git - factor.git/blob - core/classes/maybe/maybe.factor
Switch to https urls
[factor.git] / core / classes / maybe / maybe.factor
1 ! Copyright (C) 2011 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays classes classes.algebra
4 classes.algebra.private classes.private classes.union.private
5 kernel ;
6 IN: classes.maybe
7
8 TUPLE: maybe { class classoid initial: object read-only } ;
9
10 C: <maybe> maybe
11
12 INSTANCE: maybe classoid
13
14 M: maybe instance?
15     over [ class>> instance? ] [ 2drop t ] if ;
16
17 : maybe-class-or ( maybe -- classoid )
18     class>> \ f class-or ;
19
20 M: maybe normalize-class
21     maybe-class-or ;
22
23 M: maybe rank-class drop 6 ;
24
25 M: maybe (flatten-class)
26     maybe-class-or (flatten-class) ;
27
28 M: maybe union-of-builtins?
29     class>> union-of-builtins? ;
30
31 M: maybe class-name
32     class>> class-name ;
33
34 M: maybe predicate-def
35     class>> predicate-def [ [ t ] if* ] curry ;
36
37 M: maybe contained-classes
38     class>> 1array ;