You can template it out with higher-kinded type synonyms.
type PersonFields f =
( name :: f String
, age :: f Number
)
-- You can pass synonyms like this to other type synonyms
type Unlifted a = a
type Person = { | PersonFields Unlifted }
type PersonMaybe = { | PersonFields Maybe }