-module(gleamgen@function). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([new0/2, new1/3, new2/4, new3/5, new4/6, new5/7, new6/8, new7/9, new8/10, new9/11, to_unchecked/1, get_function_name/1]). -export_type([function_/2]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type function_(MRN, MRO) :: {function, list({binary(), gleamgen@types:generated_type(gleamgen@types:unchecked())}), gleamgen@types:generated_type(MRO), gleamgen@expression:expression(MRO)} | {gleam_phantom, MRN}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 12). -spec new0( gleamgen@types:generated_type(MRP), fun(() -> gleamgen@expression:expression(MRP)) ) -> function_(fun((any()) -> MRP), MRP). new0(Returns, Handler) -> Body = Handler(), {function, [], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 20). -spec new1( {binary(), gleamgen@types:generated_type(MRV)}, gleamgen@types:generated_type(MRX), fun((gleamgen@expression:expression(MRV)) -> gleamgen@expression:expression(MRX)) ) -> function_(fun((MRV) -> MRX), MRX). new1(Arg1, Returns, Handler) -> Body = Handler(gleamgen@expression:unchecked_ident(erlang:element(1, Arg1))), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 32). -spec new2( {binary(), gleamgen@types:generated_type(MSD)}, {binary(), gleamgen@types:generated_type(MSF)}, gleamgen@types:generated_type(MSH), fun((gleamgen@expression:expression(MSD), gleamgen@expression:expression(MSF)) -> gleamgen@expression:expression(MSH)) ) -> function_(fun((MSD, MSF) -> MSH), MSH). new2(Arg1, Arg2, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 54). -spec new3( {binary(), gleamgen@types:generated_type(MSO)}, {binary(), gleamgen@types:generated_type(MSQ)}, {binary(), gleamgen@types:generated_type(MSS)}, gleamgen@types:generated_type(MSU), fun((gleamgen@expression:expression(MSO), gleamgen@expression:expression(MSQ), gleamgen@expression:expression(MSS)) -> gleamgen@expression:expression(MSU)) ) -> function_(fun((MSO, MSQ, MSS) -> MSU), MSU). new3(Arg1, Arg2, Arg3, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 83). -spec new4( {binary(), gleamgen@types:generated_type(MTC)}, {binary(), gleamgen@types:generated_type(MTE)}, {binary(), gleamgen@types:generated_type(MTG)}, {binary(), gleamgen@types:generated_type(MTI)}, gleamgen@types:generated_type(MTK), fun((gleamgen@expression:expression(MTC), gleamgen@expression:expression(MTE), gleamgen@expression:expression(MTG), gleamgen@expression:expression(MTI)) -> gleamgen@expression:expression(MTK)) ) -> function_(fun((MTC, MTE, MTG, MTI) -> MTK), MTK). new4(Arg1, Arg2, Arg3, Arg4, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 116). -spec new5( {binary(), gleamgen@types:generated_type(MTT)}, {binary(), gleamgen@types:generated_type(MTV)}, {binary(), gleamgen@types:generated_type(MTX)}, {binary(), gleamgen@types:generated_type(MTZ)}, {binary(), gleamgen@types:generated_type(MUB)}, gleamgen@types:generated_type(MUD), fun((gleamgen@expression:expression(MTT), gleamgen@expression:expression(MTV), gleamgen@expression:expression(MTX), gleamgen@expression:expression(MTZ), gleamgen@expression:expression(MUB)) -> gleamgen@expression:expression(MUD)) ) -> function_(fun((MTT, MTV, MTX, MTZ, MUB) -> MUD), MUD). new5(Arg1, Arg2, Arg3, Arg4, Arg5, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}, {erlang:element(1, Arg5), begin _pipe@4 = erlang:element(2, Arg5), gleamgen_ffi:identity(_pipe@4) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 153). -spec new6( {binary(), gleamgen@types:generated_type(MUN)}, {binary(), gleamgen@types:generated_type(MUP)}, {binary(), gleamgen@types:generated_type(MUR)}, {binary(), gleamgen@types:generated_type(MUT)}, {binary(), gleamgen@types:generated_type(MUV)}, {binary(), gleamgen@types:generated_type(MUX)}, gleamgen@types:generated_type(MUZ), fun((gleamgen@expression:expression(MUN), gleamgen@expression:expression(MUP), gleamgen@expression:expression(MUR), gleamgen@expression:expression(MUT), gleamgen@expression:expression(MUV), gleamgen@expression:expression(MUX)) -> gleamgen@expression:expression(MUZ)) ) -> function_(fun((MUN, MUP, MUR, MUT, MUV, MUX) -> MUZ), MUZ). new6(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}, {erlang:element(1, Arg5), begin _pipe@4 = erlang:element(2, Arg5), gleamgen_ffi:identity(_pipe@4) end}, {erlang:element(1, Arg6), begin _pipe@5 = erlang:element(2, Arg6), gleamgen_ffi:identity(_pipe@5) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 194). -spec new7( {binary(), gleamgen@types:generated_type(MVK)}, {binary(), gleamgen@types:generated_type(MVM)}, {binary(), gleamgen@types:generated_type(MVO)}, {binary(), gleamgen@types:generated_type(MVQ)}, {binary(), gleamgen@types:generated_type(MVS)}, {binary(), gleamgen@types:generated_type(MVU)}, {binary(), gleamgen@types:generated_type(MVW)}, gleamgen@types:generated_type(MVY), fun((gleamgen@expression:expression(MVK), gleamgen@expression:expression(MVM), gleamgen@expression:expression(MVO), gleamgen@expression:expression(MVQ), gleamgen@expression:expression(MVS), gleamgen@expression:expression(MVU), gleamgen@expression:expression(MVW)) -> gleamgen@expression:expression(MVY)) ) -> function_(fun((MVK, MVM, MVO, MVQ, MVS, MVU, MVW) -> MVY), MVY). new7(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg7)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}, {erlang:element(1, Arg5), begin _pipe@4 = erlang:element(2, Arg5), gleamgen_ffi:identity(_pipe@4) end}, {erlang:element(1, Arg6), begin _pipe@5 = erlang:element(2, Arg6), gleamgen_ffi:identity(_pipe@5) end}, {erlang:element(1, Arg7), begin _pipe@6 = erlang:element(2, Arg7), gleamgen_ffi:identity(_pipe@6) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 239). -spec new8( {binary(), gleamgen@types:generated_type(MWK)}, {binary(), gleamgen@types:generated_type(MWM)}, {binary(), gleamgen@types:generated_type(MWO)}, {binary(), gleamgen@types:generated_type(MWQ)}, {binary(), gleamgen@types:generated_type(MWS)}, {binary(), gleamgen@types:generated_type(MWU)}, {binary(), gleamgen@types:generated_type(MWW)}, {binary(), gleamgen@types:generated_type(MWY)}, gleamgen@types:generated_type(MXA), fun((gleamgen@expression:expression(MWK), gleamgen@expression:expression(MWM), gleamgen@expression:expression(MWO), gleamgen@expression:expression(MWQ), gleamgen@expression:expression(MWS), gleamgen@expression:expression(MWU), gleamgen@expression:expression(MWW), gleamgen@expression:expression(MWY)) -> gleamgen@expression:expression(MXA)) ) -> function_(fun((MWK, MWM, MWO, MWQ, MWS, MWU, MWW, MWY) -> MXA), MXA). new8(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg7)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg8)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}, {erlang:element(1, Arg5), begin _pipe@4 = erlang:element(2, Arg5), gleamgen_ffi:identity(_pipe@4) end}, {erlang:element(1, Arg6), begin _pipe@5 = erlang:element(2, Arg6), gleamgen_ffi:identity(_pipe@5) end}, {erlang:element(1, Arg7), begin _pipe@6 = erlang:element(2, Arg7), gleamgen_ffi:identity(_pipe@6) end}, {erlang:element(1, Arg8), begin _pipe@7 = erlang:element(2, Arg8), gleamgen_ffi:identity(_pipe@7) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 288). -spec new9( {binary(), gleamgen@types:generated_type(MXN)}, {binary(), gleamgen@types:generated_type(MXP)}, {binary(), gleamgen@types:generated_type(MXR)}, {binary(), gleamgen@types:generated_type(MXT)}, {binary(), gleamgen@types:generated_type(MXV)}, {binary(), gleamgen@types:generated_type(MXX)}, {binary(), gleamgen@types:generated_type(MXZ)}, {binary(), gleamgen@types:generated_type(MYB)}, {binary(), gleamgen@types:generated_type(MYD)}, gleamgen@types:generated_type(MYF), fun((gleamgen@expression:expression(MXN), gleamgen@expression:expression(MXP), gleamgen@expression:expression(MXR), gleamgen@expression:expression(MXT), gleamgen@expression:expression(MXV), gleamgen@expression:expression(MXX), gleamgen@expression:expression(MXZ), gleamgen@expression:expression(MYB), gleamgen@expression:expression(MYD)) -> gleamgen@expression:expression(MYF)) ) -> function_(fun((MXN, MXP, MXR, MXT, MXV, MXX, MXZ, MYB, MYD) -> MYF), MYF). new9(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Returns, Handler) -> Body = Handler( gleamgen@expression:unchecked_ident(erlang:element(1, Arg1)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg2)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg3)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg4)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg5)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg6)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg7)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg8)), gleamgen@expression:unchecked_ident(erlang:element(1, Arg9)) ), {function, [{erlang:element(1, Arg1), begin _pipe = erlang:element(2, Arg1), gleamgen_ffi:identity(_pipe) end}, {erlang:element(1, Arg2), begin _pipe@1 = erlang:element(2, Arg2), gleamgen_ffi:identity(_pipe@1) end}, {erlang:element(1, Arg3), begin _pipe@2 = erlang:element(2, Arg3), gleamgen_ffi:identity(_pipe@2) end}, {erlang:element(1, Arg4), begin _pipe@3 = erlang:element(2, Arg4), gleamgen_ffi:identity(_pipe@3) end}, {erlang:element(1, Arg5), begin _pipe@4 = erlang:element(2, Arg5), gleamgen_ffi:identity(_pipe@4) end}, {erlang:element(1, Arg6), begin _pipe@5 = erlang:element(2, Arg6), gleamgen_ffi:identity(_pipe@5) end}, {erlang:element(1, Arg7), begin _pipe@6 = erlang:element(2, Arg7), gleamgen_ffi:identity(_pipe@6) end}, {erlang:element(1, Arg8), begin _pipe@7 = erlang:element(2, Arg8), gleamgen_ffi:identity(_pipe@7) end}, {erlang:element(1, Arg9), begin _pipe@8 = erlang:element(2, Arg9), gleamgen_ffi:identity(_pipe@8) end}], Returns, Body}. -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 348). -spec to_unchecked(function_(any(), any())) -> function_(gleamgen@types:unchecked(), gleamgen@types:unchecked()). to_unchecked(Type_) -> gleamgen_ffi:identity(Type_). -file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/function.gleam", 355). ?DOC(false). -spec get_function_name(any()) -> binary(). get_function_name(Type_) -> gleamgen_ffi:get_function_name(Type_).