@@ -226,7 +226,7 @@ pow :: (Columnable a, Num a) => Expr a -> Int -> Expr a
226226pow = (.^^)
227227
228228relu :: (Columnable a , Num a , Ord a ) => Expr a -> Expr a
229- relu = lift (Prelude. max 0 )
229+ relu = liftDecorated (Prelude. max 0 ) " relu " Nothing
230230
231231min :: (Columnable a , Ord a ) => Expr a -> Expr a -> Expr a
232232min = lift2Decorated Prelude. min " max" Nothing True 1
@@ -240,19 +240,19 @@ reduce ::
240240reduce expr start f = Agg (FoldAgg " foldUdf" (Just start) f) expr
241241
242242toMaybe :: (Columnable a ) => Expr a -> Expr (Maybe a )
243- toMaybe = lift Just
243+ toMaybe = liftDecorated Just " toMaybe " Nothing
244244
245245fromMaybe :: (Columnable a ) => a -> Expr (Maybe a ) -> Expr a
246- fromMaybe d = lift (Maybe. fromMaybe d)
246+ fromMaybe d = liftDecorated (Maybe. fromMaybe d) " fromMaybe " Nothing
247247
248248isJust :: (Columnable a ) => Expr (Maybe a ) -> Expr Bool
249- isJust = lift Maybe. isJust
249+ isJust = liftDecorated Maybe. isJust " isJust " Nothing
250250
251251isNothing :: (Columnable a ) => Expr (Maybe a ) -> Expr Bool
252- isNothing = lift Maybe. isNothing
252+ isNothing = liftDecorated Maybe. isNothing " isNothing " Nothing
253253
254254fromJust :: (Columnable a ) => Expr (Maybe a ) -> Expr a
255- fromJust = lift Maybe. fromJust
255+ fromJust = liftDecorated Maybe. fromJust " fromJust " Nothing
256256
257257whenPresent ::
258258 forall a b .
@@ -268,7 +268,14 @@ whenBothPresent f = lift2 (\l r -> f <$> l <*> r)
268268recode ::
269269 forall a b .
270270 (Columnable a , Columnable b ) => [(a , b )] -> Expr a -> Expr (Maybe b )
271- recode mapping = lift (`lookup` mapping)
271+ recode mapping =
272+ Unary
273+ ( MkUnaryOp
274+ { unaryFn = (`lookup` mapping)
275+ , unaryName = " recode " <> T. pack (show mapping)
276+ , unarySymbol = Nothing
277+ }
278+ )
272279
273280recodeWithCondition ::
274281 forall a b .
@@ -280,28 +287,55 @@ recodeWithCondition fallback ((cond, value) : rest) expr = ifThenElse (cond expr
280287recodeWithDefault ::
281288 forall a b .
282289 (Columnable a , Columnable b ) => b -> [(a , b )] -> Expr a -> Expr b
283- recodeWithDefault d mapping = lift (Maybe. fromMaybe d . (`lookup` mapping))
290+ recodeWithDefault d mapping =
291+ Unary
292+ ( MkUnaryOp
293+ { unaryFn = Maybe. fromMaybe d . (`lookup` mapping)
294+ , unaryName =
295+ " recodeWithDefault " <> T. pack (show d) <> " " <> T. pack (show mapping)
296+ , unarySymbol = Nothing
297+ }
298+ )
284299
285300firstOrNothing :: (Columnable a ) => Expr [a ] -> Expr (Maybe a )
286- firstOrNothing = lift Maybe. listToMaybe
301+ firstOrNothing = liftDecorated Maybe. listToMaybe " firstOrNothing " Nothing
287302
288303lastOrNothing :: (Columnable a ) => Expr [a ] -> Expr (Maybe a )
289- lastOrNothing = lift (Maybe. listToMaybe . reverse )
304+ lastOrNothing = liftDecorated (Maybe. listToMaybe . reverse ) " lastOrNothing " Nothing
290305
291306splitOn :: T. Text -> Expr T. Text -> Expr [T. Text ]
292- splitOn delim = lift (T. splitOn delim)
307+ splitOn delim = liftDecorated (T. splitOn delim) " splitOn " Nothing
293308
294309match :: T. Text -> Expr T. Text -> Expr (Maybe T. Text )
295- match regex = lift ((\ r -> if T. null r then Nothing else Just r) . (=~ regex))
310+ match regex =
311+ liftDecorated
312+ ((\ r -> if T. null r then Nothing else Just r) . (=~ regex))
313+ (" match " <> T. pack (show regex))
314+ Nothing
296315
297316matchAll :: T. Text -> Expr T. Text -> Expr [T. Text ]
298- matchAll regex = lift (getAllTextMatches . (=~ regex))
317+ matchAll regex =
318+ liftDecorated
319+ (getAllTextMatches . (=~ regex))
320+ (" matchAll " <> T. pack (show regex))
321+ Nothing
299322
300- parseDate :: T. Text -> Expr T. Text -> Expr (Maybe Day )
301- parseDate format = lift (parseTimeM True defaultTimeLocale (T. unpack format) . T. unpack)
323+ parseDate ::
324+ (ParseTime t , Columnable t ) => T. Text -> Expr T. Text -> Expr (Maybe t )
325+ parseDate format =
326+ liftDecorated
327+ (parseTimeM True defaultTimeLocale (T. unpack format) . T. unpack)
328+ (" parseDate " <> format)
329+ Nothing
302330
303331daysBetween :: Expr Day -> Expr Day -> Expr Int
304- daysBetween d1 d2 = lift fromIntegral (lift2 diffDays d1 d2)
332+ daysBetween =
333+ lift2Decorated
334+ (\ d1 d2 -> fromIntegral (diffDays d1 d2))
335+ " daysBetween"
336+ Nothing
337+ True
338+ 2
305339
306340bind ::
307341 forall a b m .
0 commit comments