#### Xgrommx

`(>>=)` should be constrained with `Map`

Hello,`Monad`

should be restricted with `Map`

Here

```
type Maybe<'a> =
| Just of 'a
| Nothing
let maybeMap f m = match m with
| Just x -> Just (f x)
| Nothing -> Nothing
//type Maybe<'a> with
// static member Map (x: Maybe<'a>, f: 'a -> 'b) = maybeMap f x
//let r2' = map (fun x -> x + 1.0) (Just 10.0)
let maybeBind f m = match m with
| Just x -> f x
| Nothing -> Nothing
type Maybe<'a> with
static member (>>=) (x: Maybe<'a>, f: 'a -> Maybe<'b>) = maybeBind f x
let r2'' = Just 10 >>= fun x -> Just (x + 10)
```

Should throw error that, `Maybe`

doesn't have property `Map`

, because `Monad`

should be restricted with `Map`

But probably should be `Functor <= Applicative <= Monad`

Forked On 10 Sep 2022 at 02:23:30