|
10 | 10 | GenOut :: { value :: a, state :: GenState } -> GenOut a |
11 | 11 |
|
12 | 12 | data GenState where |
13 | | - GenState :: { size :: Number, seed :: Number } -> GenState |
| 13 | + GenState :: { size :: Size, seed :: Seed } -> GenState |
14 | 14 |
|
15 | 15 | data GenT f a where |
16 | 16 | GenT :: Mealy.MealyT f GenState (GenOut a) -> GenT f a |
17 | 17 |
|
18 | | - type LCG = Number |
| 18 | + type Seed = Number |
19 | 19 |
|
20 | 20 | type Size = Number |
21 | 21 |
|
22 | 22 |
|
23 | 23 | ### Type Class Instances |
24 | 24 |
|
| 25 | + instance altGenT :: (Monad f) => Alt (GenT f) |
| 26 | + |
| 27 | + instance alternativeGenT :: (Monad f) => Alternative (GenT f) |
| 28 | + |
25 | 29 | instance applicativeGenT :: (Monad f) => Applicative (GenT f) |
26 | 30 |
|
27 | 31 | instance applyGenOut :: Apply GenOut |
|
36 | 40 |
|
37 | 41 | instance monadGenT :: (Monad f) => Monad (GenT f) |
38 | 42 |
|
| 43 | + instance monadPlusGenT :: (Monad f) => MonadPlus (GenT f) |
| 44 | + |
39 | 45 | instance monoidGenOut :: (Monoid a) => Monoid (GenOut a) |
40 | 46 |
|
41 | 47 | instance monoidGenState :: Monoid GenState |
42 | 48 |
|
43 | 49 | instance monoidGenT :: (Monad f) => Monoid (GenT f a) |
44 | 50 |
|
| 51 | + instance plusGenT :: (Monad f) => Plus (GenT f) |
| 52 | + |
45 | 53 | instance semigroupGenOut :: (Semigroup a) => Semigroup (GenOut a) |
46 | 54 |
|
47 | 55 | instance semigroupGenState :: Semigroup GenState |
|
51 | 59 |
|
52 | 60 | ### Values |
53 | 61 |
|
| 62 | + allInArray :: forall f a. (Monad f) => [a] -> GenT f a |
| 63 | + |
| 64 | + allInRange :: forall f a. (Monad f) => Number -> Number -> GenT f Number |
| 65 | + |
54 | 66 | arrayOf :: forall f a. (Monad f) => GenT f a -> GenT f [a] |
55 | 67 |
|
56 | 68 | arrayOf1 :: forall f a. (Monad f) => GenT f a -> GenT f (Tuple a [a]) |
|
61 | 73 |
|
62 | 74 | collectAll :: forall f a. (Monad f) => GenState -> GenT f a -> f [a] |
63 | 75 |
|
64 | | - detArray :: forall f a. (Monad f) => [a] -> GenT f a |
65 | | - |
66 | | - detRange :: forall f a. (Monad f) => Number -> Number -> GenT f Number |
67 | | - |
68 | 76 | dropGen :: forall f a. (Monad f) => Number -> GenT f a -> GenT f a |
69 | 77 |
|
70 | 78 | elements :: forall f a. (Monad f) => a -> [a] -> GenT f a |
|
73 | 81 |
|
74 | 82 | foldGen :: forall f a b. (Monad f) => (b -> a -> Maybe b) -> b -> GenState -> GenT f a -> f b |
75 | 83 |
|
| 84 | + foldGen' :: forall f a b. (Monad f) => (b -> a -> Maybe b) -> b -> GenState -> GenT f a -> f (Tuple b (GenT f a)) |
| 85 | + |
76 | 86 | frequency :: forall f a. (Monad f) => Tuple Number (GenT f a) -> [Tuple Number (GenT f a)] -> GenT f a |
77 | 87 |
|
78 | 88 | infinite :: forall f a. (Monad f) => GenT f a -> GenT f a |
79 | 89 |
|
80 | 90 | oneOf :: forall f a. (Monad f) => GenT f a -> [GenT f a] -> GenT f a |
81 | 91 |
|
| 92 | + perms :: forall f a. (Monad f) => [a] -> GenT f [a] |
| 93 | + |
82 | 94 | perturbGen :: forall f a. (Monad f) => Number -> GenT f a -> GenT f a |
83 | 95 |
|
84 | 96 | repeatable :: forall a b. (a -> Gen b) -> Gen (a -> b) |
85 | 97 |
|
86 | | - resize :: forall f a. (Monad f) => Number -> GenT f a -> GenT f a |
| 98 | + resize :: forall f a. (Monad f) => Size -> GenT f a -> GenT f a |
| 99 | + |
| 100 | + runGen :: forall f a. (Monad f) => Number -> GenState -> GenT f a -> f (Tuple [a] (GenT f a)) |
87 | 101 |
|
88 | 102 | sample :: forall f a. (Monad f) => Number -> GenT f a -> f [a] |
89 | 103 |
|
|
93 | 107 |
|
94 | 108 | showSample' :: forall r a. (Show a) => Number -> Gen a -> Eff (trace :: Trace | r) Unit |
95 | 109 |
|
96 | | - sized :: forall f a. (Monad f) => (Number -> GenT f a) -> GenT f a |
| 110 | + sized :: forall f a. (Monad f) => (Size -> GenT f a) -> GenT f a |
97 | 111 |
|
98 | 112 | stateful :: forall f a. (Monad f) => (GenState -> GenT f a) -> GenT f a |
99 | 113 |
|
|
103 | 117 |
|
104 | 118 | takeGen :: forall f a. (Monad f) => Number -> GenT f a -> GenT f a |
105 | 119 |
|
106 | | - unfoldGen :: forall f a b c. (Monad f) => (b -> a -> Tuple b (Maybe c)) -> b -> GenT f a -> GenT f c |
| 120 | + transGen :: forall f a b c. (Monad f) => (b -> a -> Tuple b (Maybe c)) -> b -> GenT f a -> GenT f c |
107 | 121 |
|
108 | | - uniform :: forall f. (Monad f) => GenT f Number |
| 122 | + uniform :: forall f. (Monad f) => GenT f Seed |
109 | 123 |
|
110 | | - variant :: forall f a. (Monad f) => Number -> GenT f a -> GenT f a |
| 124 | + variant :: forall f a. (Monad f) => Seed -> GenT f a -> GenT f a |
111 | 125 |
|
112 | 126 | vectorOf :: forall f a. (Monad f) => Number -> GenT f a -> GenT f [a] |
113 | 127 |
|
|
0 commit comments