import * as O from 'fp-ts/Option';
type Option = O.Option;
export const hasKey = (o: T, k: keyof T): boolean =>
Object.prototype.hasOwnProperty.call(o, k);
export const lookup = (o: T, k: K): Option =>
hasKey(o, k) ? O.some(o[k]) : O.none;
export const map = (o: Record, f: (a: A) => B): Record => {
const r: Record = {};
for (const k of Object.keys(o)) {
r[k] = f(o[k]);
}
return r;
};
export const fromPairs = (pairs: Array<[string, A]>): Record => {
const r: Record = {};
pairs.forEach(([ k, v ]) => {
r[k] = v;
});
return r;
};