OverloadedRecordDot
HasField
impl ''User [d| greet :: String -> IO () greet message = do putStrLn $ concat [message, ", ", self.name] |]
[d|