確かに、ここにJavaScriptとC#におけるモナドの2つの例がある：

JavaScript：

```javascript
class Maybe {
  constructor(value) {
    this.value = value;
  }

  static of(value) {
    return new Maybe(value);
  }

  map(fn) {
    return this.value ? Maybe.of(fn(this.value)) : Maybe.of(null);
  }

  chain(fn) {
    return this.value ? fn(this.value) : Maybe.of(null);
  }
}
```

C#:
```csharp
public class Maybe<T>
{
    public T Value { get; }
    public bool HasValue { get; }

    public Maybe(T value)
    {
        Value = value;
        HasValue = value != null;
    }

    public Maybe<U> Select<U>(Func<T, U> selector)
    {
        return HasValue ? new Maybe<U>(selector(Value)) : new Maybe<U>(default(U));
    }

    public Maybe<U> SelectMany<U>(Func<T, Maybe<U>> selector)
    {
        return HasValue ? selector(Value) : new Maybe<U>(default(U));
    }
}
```
Certainly, here are two examples of monads in JavaScript and C#:

JavaScript:

```javascript
class Maybe {
  constructor(value) {
    this.value = value;
  }

  static of(value) {
    return new Maybe(value);
  }

  map(fn) {
    return this.value ? Maybe.of(fn(this.value)) : Maybe.of(null);
  }

  chain(fn) {
    return this.value ? fn(this.value) : Maybe.of(null);
  }
}
```

C#:
```csharp
public class Maybe<T>
{
    public T Value { get; }
    public bool HasValue { get; }

    public Maybe(T value)
    {
        Value = value;
        HasValue = value != null;
    }

    public Maybe<U> Select<U>(Func<T, U> selector)
    {
        return HasValue ? new Maybe<U>(selector(Value)) : new Maybe<U>(default(U));
    }

    public Maybe<U> SelectMany<U>(Func<T, Maybe<U>> selector)
    {
        return HasValue ? selector(Value) : new Maybe<U>(default(U));
    }
}
```