basketcase (npm): JavaScript algebraic data types, pattern matching and multi methods
Keywords: match|matcher|extractor|pattern|case class|case|predicate|method|multimethod|defmulti|defmethod|dispatch|overload|adt|functional|algebraic data type