Theory ML_Lenses

✐‹creator "Kevin Kappelmann"›
section ‹Lenses›
theory ML_Lenses
  imports
    ML_ICategories
begin

ML_gen_file‹lens.ML›

(*standard function space lense*)
MLstructure evalsfx_ParaT_nargs "SLens" =
evalsfx_ParaT_nargs "Lens"(
  structure L = evalsfx_ParaT_nargs "Lens_Base"(
    evalsfx_ParaT_nargs "Arrow_Apply"(
      evalsfx_ParaT_nargs "SArrow_Apply"))
  structure A = evalsfx_ParaT_nargs "Arrow"(evalsfx_ParaT_nargs "SArrow_Apply"))

signature evalsfx_ParaT_nargs "SLENS" =
  evalsfx_ParaT_nargs "LENS"
  where type (@{ParaT_args} 'a, 'b) C.morph = 'a -> 'b
  where type (@{ParaT_args} 't, 'o, 's, 'i) lens =
    (@{ParaT_args} 't, 'o, 's, 'i) evalsfx_ParaT_nargs "SLens" ^ ".lens"

end