API Reference

class adt.ADT(*args, **kwargs)
class adt.ADTMeta(name, bases, namespace)
adt.adt(_cls=None)

Make a class into an ADT (Algebraic Data Type).

Inspired by dataclasses.

No support for:
  • Inheritance

Notes:
  • Annotations are used, but there’s no inherent reason to do so.

Return type

adt.ADTMeta

adt.fieldmethod(funcobj)
adt.is_adt(obj)
Return type

bool

adt.is_adt_field(obj)
Return type

bool