export const fmap = (f, a) => {
  const fmap_ = (f, a) => Functor(a) ? dataType(a).fmap(f, a) : error.typeError(a, fmap);
  return partial(fmap_, f, a);
}