import { curry } from '@typed/lambda'
/**
* Map over an object into a list of values.
*/
export const mapToList: {
(fn: (key: A, value: B) => C, obj: Record): C[]
(fn: (key: A, value: B) => C): (obj: Record) => C[]
} = curry(__mapToList)
function __mapToList(
fn: (key: A, value: B) => C,
obj: Record,
): C[] {
const keys = Object.keys(obj) as A[]
return keys.map((key) => fn(key, obj[key]))
}