From 61acb58a229a833e41e517bc0461993d6a310518 Mon Sep 17 00:00:00 2001 From: Madeleine Sydney Date: Thu, 27 Jun 2024 19:51:31 -0600 Subject: [PATCH] Derive lenses without prefix_record_projections --- src/Derive/Lens.idr | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Derive/Lens.idr b/src/Derive/Lens.idr index cd2bbd6..250e331 100644 --- a/src/Derive/Lens.idr +++ b/src/Derive/Lens.idr @@ -5,6 +5,11 @@ import public Language.Reflection.Util %default total +toField : Name -> Name +toField (NS ns nm) = NS ns (toField nm) +toField (UN (Basic nm)) = UN (Field nm) +toField nm = nm + parameters (o : LensOptions) lname : Name -> Name lname n = UN $ Basic (o.fieldName $ nameStr n) @@ -17,7 +22,7 @@ parameters (o : LensOptions) ldef : BoundArg 0 RegularNamed -> Decl ldef (BA x _ _) = - let fld := argName x + let fld := toField $ argName x nme := lname fld u := update [ISetField [nameStr fld] `(y)] `(x) in def nme [patClause (var nme) `(lens ~(var fld) $ \x,y => ~(u))]