generate types for a typescript function const load = value => {
  switch (type(value)) {
    case 'Number':
      return new Decimal(value);
    case 'Array':
      return map(load, value);
    case 'Object':
      return compose(
        reduce(applyRecursively(load), {}),
        toPairs
      )(value);
    default:
      return value;
  }
}