loalang 0.1.15

Loa is a general-purpose, purely immutable, object-oriented programming language.
Documentation
namespace Loa.

import Loa/Boolean.
import Loa/True.
import Loa/False.

export partial class Maybe<a> {
  public otherwise: a -> a.
  
  public isSome -> Boolean.
  
  public isNone -> Boolean.
}

export class None {
  is Maybe<_>.
  
  public isSome =>
    False.
  
  public isNone =>
    True.
  
  public <a> otherwise: a fallback =>
    fallback.
}

class Some<a> {
  is Maybe<a>.
  
  private var a value.
  
  public init of: a value =>
    value: value.
  
  public isSome =>
    True.
  
  public isNone =>
    False.
  
  public otherwise: _ =>
    self value.
}