--- /dev/null
+[3 of 3] Compiling Main ( Demo.hs, .build/Main.o )
+
+==================== Desugared, before opt ====================
+@ co_aLI::() ~ ()
+co_aLI = TYPE ()
+
+@ co_aHe::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ ~ ()
+co_aHe = TYPE trans GArrowTikZ.TFCo:R:GArrowUnitGArrowTikZ co_aLI
+
+Rec {
+$dGArrowSTKC_aHd
+ :: GHC.HetMet.GArrow.GArrowSTKC GArrowTikZ.GArrowTikZ
+[LclId]
+$dGArrowSTKC_aHd = GArrowTikZ.$fGArrowSTKCGArrowTikZ
+
+Main.foo
+ :: forall (t_aD6 :: * -> * -> *) t_aD7.
+ <[t_aD7]>@t_aD6 -> <[t_aD7]>@t_aD6
+[LclId]
+Main.foo =
+ \ (@ t_aD6::* -> * -> *) (@ t_aD7) ->
+ letrec {
+ foo_aD5 :: <[t_aD7]>@t_aD6 -> <[t_aD7]>@t_aD6
+ [LclId]
+ foo_aD5 =
+ \ (x_aD4 :: <[t_aD7]>@t_aD6) ->
+ GHC.HetMet.CodeTypes.hetmet_brak
+ @ t_aD6
+ @ t_aD7
+ ((GHC.HetMet.CodeTypes.hetmet_esc @ t_aD6 @ t_aD7 x_aD4)
+ `cast` (t_aD7 :: t_aD7 ~ t_aD7)); } in
+ foo_aD5
+
+Main.foo'
+ :: forall (g_aFo :: * -> * -> *) y_aFp.
+ (GHC.HetMet.GArrow.GArrowSTKC g_aFo,
+ GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()) =>
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp -> g_aFo () y_aFp
+[LclId]
+Main.foo' =
+ \ (@ g_aFo::* -> * -> *)
+ (@ y_aFp)
+ ($dGArrowSTKC_aFq :: GHC.HetMet.GArrow.GArrowSTKC g_aFo)
+ (@ co_aFr::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()) ->
+ let {
+ @ co_aMM::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMM = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aML::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aML = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMK::() ~ ()
+ co_aMK = TYPE () } in
+ let {
+ @ co_aMJ::() ~ ()
+ co_aMJ = TYPE () } in
+ let {
+ @ co_aMI::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMI = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMH::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMH = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMG::() ~ ()
+ co_aMG = TYPE () } in
+ let {
+ @ co_aMF::() ~ ()
+ co_aMF = TYPE () } in
+ let {
+ @ co_aME::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aME = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMD::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMD = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMC::() ~ ()
+ co_aMC = TYPE () } in
+ let {
+ @ co_aMB::() ~ ()
+ co_aMB = TYPE () } in
+ let {
+ @ co_aMz::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aMz = TYPE trans co_aFr (sym co_aMB) } in
+ let {
+ @ co_aMu::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aMu = TYPE trans co_aFr (sym co_aMF) } in
+ let {
+ @ co_aMp::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aMp = TYPE trans co_aFr (sym co_aMJ) } in
+ let {
+ @ co_aM1::GHC.HetMet.GArrow.GArrowUnit g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowUnit g_aFo
+ co_aM1 = TYPE GHC.HetMet.GArrow.GArrowUnit g_aFo } in
+ let {
+ @ co_aM4::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aM4 = TYPE trans (sym co_aM1) co_aFr } in
+ let {
+ @ co_aLZ::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aLZ = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aMn::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMn = TYPE trans co_aLZ (sym co_aML) } in
+ let {
+ @ co_aMs::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMs = TYPE trans co_aLZ (sym co_aMH) } in
+ let {
+ @ co_aMx::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aMx = TYPE trans co_aLZ (sym co_aMD) } in
+ let {
+ @ co_aLV::GHC.HetMet.GArrow.GArrowUnit g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowUnit g_aFo
+ co_aLV = TYPE GHC.HetMet.GArrow.GArrowUnit g_aFo } in
+ let {
+ @ co_aM5::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aM5 = TYPE trans (sym co_aLV) co_aFr } in
+ let {
+ @ co_aLT::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aLT = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aM6::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aM6 = TYPE trans (sym co_aLT) co_aLZ } in
+ let {
+ @ co_aLP::GHC.HetMet.GArrow.GArrowUnit g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowUnit g_aFo
+ co_aLP = TYPE GHC.HetMet.GArrow.GArrowUnit g_aFo } in
+ let {
+ @ co_aM7::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aM7 = TYPE trans (sym co_aLP) co_aFr } in
+ let {
+ @ co_aLN::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aLN = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aM8::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aM8 = TYPE trans (sym co_aLN) co_aLZ } in
+ let {
+ $dGArrowSwap_aLL
+ :: GHC.HetMet.GArrow.GArrowSwap
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrowSwap_aLL =
+ GHC.HetMet.GArrow.$p3GArrowSTKC @ g_aFo $dGArrowSTKC_aFq } in
+ let {
+ $dGArrow_aM2
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrow_aM2 =
+ GHC.HetMet.GArrow.$p1GArrowSwap
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrowSwap_aLL } in
+ let {
+ $dCategory_aM3 :: Control.Category.Category g_aFo
+ [LclId]
+ $dCategory_aM3 =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrow_aM2 } in
+ let {
+ $dGArrow_aMa
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrow_aMa =
+ $dGArrow_aM2
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM4
+ :: GHC.HetMet.GArrow.T:GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrowSwap_aM9
+ :: GHC.HetMet.GArrow.GArrowSwap
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrowSwap_aM9 =
+ $dGArrowSwap_aLL
+ `cast` (GHC.HetMet.GArrow.T:GArrowSwap
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM4
+ :: GHC.HetMet.GArrow.T:GArrowSwap
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrowSwap
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrowCopy_aLK
+ :: GHC.HetMet.GArrow.GArrowCopy
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrowCopy_aLK =
+ GHC.HetMet.GArrow.$p2GArrowSTKC @ g_aFo $dGArrowSTKC_aFq } in
+ let {
+ $dGArrow_aLW
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrow_aLW =
+ GHC.HetMet.GArrow.$p1GArrowCopy
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrowCopy_aLK } in
+ let {
+ $dCategory_aLX :: Control.Category.Category g_aFo
+ [LclId]
+ $dCategory_aLX =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrow_aLW } in
+ let {
+ $dGArrow_aMd
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrow_aMd =
+ $dGArrow_aLW
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM5
+ :: GHC.HetMet.GArrow.T:GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrow_aMe
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrow_aMe =
+ $dGArrow_aMd
+ `cast` (GHC.HetMet.GArrow.T:GArrow g_aFo co_aM6 ()
+ :: GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrowCopy_aMb
+ :: GHC.HetMet.GArrow.GArrowCopy
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrowCopy_aMb =
+ $dGArrowCopy_aLK
+ `cast` (GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo co_aM6 (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ :: GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)) } in
+ let {
+ $dGArrowCopy_aMc
+ :: GHC.HetMet.GArrow.GArrowCopy
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrowCopy_aMc =
+ $dGArrowCopy_aMb
+ `cast` (GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM5
+ :: GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrowCopy
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrowDrop_aLJ
+ :: GHC.HetMet.GArrow.GArrowDrop
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrowDrop_aLJ =
+ GHC.HetMet.GArrow.$p1GArrowSTKC @ g_aFo $dGArrowSTKC_aFq } in
+ let {
+ $dGArrow_aLQ
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrow_aLQ =
+ GHC.HetMet.GArrow.$p1GArrowDrop
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrowDrop_aLJ } in
+ let {
+ $dCategory_aLR :: Control.Category.Category g_aFo
+ [LclId]
+ $dCategory_aLR =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ g_aFo
+ @ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ @ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ $dGArrow_aLQ } in
+ let {
+ $dGArrow_aMh
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrow_aMh =
+ $dGArrow_aLQ
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM7
+ :: GHC.HetMet.GArrow.T:GArrow
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrow_aMi
+ :: GHC.HetMet.GArrow.GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrow_aMi =
+ $dGArrow_aMh
+ `cast` (GHC.HetMet.GArrow.T:GArrow g_aFo co_aM8 ()
+ :: GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ $dGArrowDrop_aMf
+ :: GHC.HetMet.GArrow.GArrowDrop
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ [LclId]
+ $dGArrowDrop_aMf =
+ $dGArrowDrop_aLJ
+ `cast` (GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo co_aM8 (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ :: GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)) } in
+ let {
+ $dGArrowDrop_aMg
+ :: GHC.HetMet.GArrow.GArrowDrop
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()
+ [LclId]
+ $dGArrowDrop_aMg =
+ $dGArrowDrop_aMf
+ `cast` (GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aM7
+ :: GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo
+ (GHC.HetMet.GArrow.GArrowTensor g_aFo)
+ (GHC.HetMet.GArrow.GArrowUnit g_aFo)
+ ~
+ GHC.HetMet.GArrow.T:GArrowDrop
+ g_aFo (GHC.HetMet.GArrow.GArrowTensor g_aFo) ()) } in
+ let {
+ @ co_aF3::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aF3 = TYPE co_aFr } in
+ let {
+ @ co_aEX::() ~ ()
+ co_aEX = TYPE () } in
+ let {
+ @ co_aEI::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEI = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aEG::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEG = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aEF::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEF = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aEE::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aEE =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowUnit g_aFo) co_aF3)
+ (sym co_aEX) } in
+ let {
+ @ co_aEz::() ~ ()
+ co_aEz = TYPE () } in
+ let {
+ @ co_aF0::() ~ ()
+ co_aF0 = TYPE trans co_aEz co_aEX } in
+ let {
+ @ co_aEy::() ~ ()
+ co_aEy = TYPE () } in
+ let {
+ @ co_aEx::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEx =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aEI)
+ (sym co_aEG) } in
+ let {
+ @ co_aEw::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEw = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aEH::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEH = TYPE trans co_aEw co_aEG } in
+ let {
+ @ co_aEv::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEv = TYPE GHC.HetMet.GArrow.GArrowTensor g_aFo } in
+ let {
+ @ co_aEu::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aEu =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowUnit g_aFo) co_aEE)
+ (sym co_aEz) } in
+ let {
+ @ co_aEq::() ~ ()
+ co_aEq = TYPE () } in
+ let {
+ @ co_aEC::() ~ ()
+ co_aEC = TYPE trans co_aEq co_aEz } in
+ let {
+ @ co_aEZ::() ~ ()
+ co_aEZ = TYPE trans co_aEC co_aEX } in
+ let {
+ @ co_aEp::() ~ ()
+ co_aEp = TYPE () } in
+ let {
+ @ co_aEo::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aEo =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowUnit g_aFo) co_aEu)
+ (sym co_aEq) } in
+ let {
+ @ co_aEl::() ~ ()
+ co_aEl = TYPE () } in
+ let {
+ @ co_aEs::() ~ ()
+ co_aEs = TYPE trans co_aEl co_aEq } in
+ let {
+ @ co_aED::() ~ ()
+ co_aED = TYPE trans co_aEs co_aEz } in
+ let {
+ @ co_aF1::() ~ ()
+ co_aF1 = TYPE trans co_aED co_aEX } in
+ let {
+ @ co_aEk::() ~ ()
+ co_aEk = TYPE () } in
+ let {
+ @ co_aEj::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aEj =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowUnit g_aFo) co_aEo)
+ (sym co_aEl) } in
+ let {
+ @ co_aEh::() ~ ()
+ co_aEh = TYPE () } in
+ let {
+ @ co_aEn::() ~ ()
+ co_aEn = TYPE trans co_aEh co_aEl } in
+ let {
+ @ co_aEr::() ~ ()
+ co_aEr = TYPE trans co_aEn co_aEq } in
+ let {
+ @ co_aEA::() ~ ()
+ co_aEA = TYPE trans co_aEr co_aEz } in
+ let {
+ @ co_aEY::() ~ ()
+ co_aEY = TYPE trans co_aEA co_aEX } in
+ let {
+ @ co_aEg::() ~ ()
+ co_aEg = TYPE () } in
+ let {
+ @ co_aEf::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aEf = TYPE GHC.HetMet.Private.PGArrow g_aFo () y_aFp } in
+ let {
+ @ co_aEi::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aEi =
+ TYPE trans
+ co_aEf (GHC.HetMet.Private.PGArrow g_aFo co_aEh y_aFp) } in
+ let {
+ @ co_aEm::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aEm =
+ TYPE trans
+ co_aEi (GHC.HetMet.Private.PGArrow g_aFo co_aEl y_aFp) } in
+ let {
+ @ co_aEt::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aEt =
+ TYPE trans
+ co_aEm (GHC.HetMet.Private.PGArrow g_aFo co_aEq y_aFp) } in
+ let {
+ @ co_aEB::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aEB =
+ TYPE trans
+ co_aEt (GHC.HetMet.Private.PGArrow g_aFo co_aEz y_aFp) } in
+ let {
+ @ co_aF2::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aF2 =
+ TYPE trans
+ co_aEB (GHC.HetMet.Private.PGArrow g_aFo co_aEX y_aFp) } in
+ let {
+ @ co_aEd::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aEd = TYPE trans co_aEj (sym co_aEk) } in
+ let {
+ @ co_aEb::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aEb =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowTensor g_aFo) co_aEx)
+ (sym co_aEw) } in
+ let {
+ @ co_aE8::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aE8 = TYPE trans co_aEo (sym co_aEp) } in
+ let {
+ @ co_aE6::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aE6 = TYPE trans co_aEb (sym co_aEv) } in
+ let {
+ @ co_aE3::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aE3 = TYPE trans co_aEu (sym co_aEy) } in
+ let {
+ @ co_aE1::GHC.HetMet.GArrow.GArrowTensor g_aFo
+ ~
+ GHC.HetMet.GArrow.GArrowTensor g_aFo
+ co_aE1 = TYPE trans co_aEx (sym co_aEF) } in
+ let {
+ @ co_aDD::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aDD = TYPE GHC.HetMet.Private.PGArrow g_aFo () y_aFp } in
+ let {
+ @ co_aDC::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aDC =
+ TYPE trans
+ (trans (GHC.HetMet.GArrow.GArrowUnit g_aFo) co_aEj)
+ (sym co_aEh) } in
+ let {
+ @ co_aDA::GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowUnit g_aFo) y_aFp
+ co_aDA =
+ TYPE trans
+ co_aDD
+ (GHC.HetMet.Private.PGArrow
+ g_aFo
+ (trans (sym co_aDC) (GHC.HetMet.GArrow.GArrowUnit g_aFo))
+ y_aFp) } in
+ let {
+ @ co_aDv::GHC.HetMet.Private.PGArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowUnit g_aFo) y_aFp
+ ~
+ GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ co_aDv = TYPE sym co_aDA } in
+ let {
+ @ co_aDr::GHC.HetMet.GArrow.GArrowUnit g_aFo ~ ()
+ co_aDr = TYPE trans co_aDC (sym co_aEg) } in
+ let {
+ $dGArrowSTKC_aDm :: GHC.HetMet.GArrow.GArrowSTKC g_aFo
+ [LclId]
+ $dGArrowSTKC_aDm = $dGArrowSTKC_aFq } in
+ letrec {
+ foo'_aDw
+ :: GHC.HetMet.Private.PGArrow g_aFo () y_aFp -> g_aFo () y_aFp
+ [LclId]
+ foo'_aDw =
+ GHC.Base..
+ @ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp)
+ @ (g_aFo () y_aFp)
+ @ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp)
+ (GHC.HetMet.Private.unG @ g_aFo @ () @ y_aFp $dGArrowSTKC_aDm)
+ (GHC.Base..
+ @ <[y_aFp]>@g_aFo
+ @ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp)
+ @ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp)
+ ((GHC.HetMet.CodeTypes.pga_flatten @ g_aFo @ GHC.Prim.Any @ y_aFp)
+ `cast` (<[y_aFp]>@g_aFo
+ -> GHC.HetMet.Private.PGArrow g_aFo co_aDr y_aFp
+ :: (<[y_aFp]>@g_aFo
+ -> GHC.HetMet.Private.PGArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowUnit g_aFo) y_aFp)
+ ~
+ (<[y_aFp]>@g_aFo -> GHC.HetMet.Private.PGArrow g_aFo () y_aFp)))
+ (GHC.Base..
+ @ <[y_aFp]>@g_aFo
+ @ <[y_aFp]>@g_aFo
+ @ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp)
+ (Main.foo @ g_aFo @ y_aFp)
+ ((GHC.HetMet.CodeTypes.pga_unflatten
+ @ g_aFo @ GHC.Prim.Any @ y_aFp)
+ `cast` (co_aDv -> <[y_aFp]>@g_aFo
+ :: (GHC.HetMet.Private.PGArrow
+ g_aFo (GHC.HetMet.GArrow.GArrowUnit g_aFo) y_aFp
+ -> <[y_aFp]>@g_aFo)
+ ~
+ (GHC.HetMet.Private.PGArrow g_aFo () y_aFp
+ -> <[y_aFp]>@g_aFo))))); } in
+ foo'_aDw
+
+Main.main :: GHC.Types.IO ()
+[LclIdX]
+Main.main =
+ let {
+ @ co_aLu::GHC.Types.Int ~ GHC.Types.Int
+ co_aLu = TYPE GHC.Types.Int } in
+ let {
+ @ co_aLt::GHC.Types.Int ~ GHC.Types.Int
+ co_aLt = TYPE GHC.Types.Int } in
+ letrec {
+ main_aHj :: GHC.Types.IO ()
+ [LclId]
+ main_aHj =
+ GArrowTikZ.tikz
+ @ ()
+ @ GHC.Types.Int
+ (Main.foo'
+ @ GArrowTikZ.GArrowTikZ
+ @ GHC.Types.Int
+ $dGArrowSTKC_aHd
+ @ co_aHe
+ (GHC.HetMet.Private.PGArrowD
+ @ GArrowTikZ.GArrowTikZ
+ @ ()
+ @ GHC.Types.Int
+ (\ ($dGArrowSTKC_aHg
+ :: GHC.HetMet.GArrow.GArrowSTKC GArrowTikZ.GArrowTikZ) ->
+ let {
+ @ co_aHD::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ co_aHD =
+ TYPE GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aHG::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ ~ ()
+ co_aHG =
+ TYPE trans (sym co_aHD) GArrowTikZ.TFCo:R:GArrowUnitGArrowTikZ } in
+ let {
+ @ co_aHB::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ co_aHB =
+ TYPE GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aHH::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ (,)
+ co_aHH =
+ TYPE trans
+ (sym co_aHB) GArrowTikZ.TFCo:R:GArrowTensorGArrowTikZ } in
+ let {
+ @ co_aHx::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ co_aHx =
+ TYPE GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aLd::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ ~ ()
+ co_aLd =
+ TYPE trans (sym co_aHx) GArrowTikZ.TFCo:R:GArrowUnitGArrowTikZ } in
+ let {
+ @ co_aHv::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ co_aHv =
+ TYPE GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aLe::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ (,)
+ co_aLe =
+ TYPE trans
+ (sym co_aHv) GArrowTikZ.TFCo:R:GArrowTensorGArrowTikZ } in
+ let {
+ @ co_aHr::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ
+ co_aHr =
+ TYPE GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aLf::GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ ~ ()
+ co_aLf =
+ TYPE trans (sym co_aHr) GArrowTikZ.TFCo:R:GArrowUnitGArrowTikZ } in
+ let {
+ @ co_aHp::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ co_aHp =
+ TYPE GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ } in
+ let {
+ @ co_aLg::GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ
+ ~
+ (,)
+ co_aLg =
+ TYPE trans
+ (sym co_aHp) GArrowTikZ.TFCo:R:GArrowTensorGArrowTikZ } in
+ let {
+ $dGArrowSwap_aHn
+ :: GHC.HetMet.GArrow.GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrowSwap_aHn =
+ GHC.HetMet.GArrow.$p3GArrowSTKC
+ @ GArrowTikZ.GArrowTikZ $dGArrowSTKC_aHg } in
+ let {
+ $dGArrow_aHE
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrow_aHE =
+ GHC.HetMet.GArrow.$p1GArrowSwap
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrowSwap_aHn } in
+ let {
+ $dCategory_aHF :: Control.Category.Category GArrowTikZ.GArrowTikZ
+ [LclId]
+ $dCategory_aHF =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrow_aHE } in
+ let {
+ $dGArrow_aLj
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrow_aLj =
+ $dGArrow_aHE
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ co_aHH
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)) } in
+ let {
+ $dGArrow_aLk
+ :: GHC.HetMet.GArrow.GArrow GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrow_aLk =
+ $dGArrow_aLj
+ `cast` (GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ (,) co_aHG
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ $dGArrowSwap_aLh
+ :: GHC.HetMet.GArrow.GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ [LclId]
+ $dGArrowSwap_aLh =
+ $dGArrowSwap_aHn
+ `cast` (GHC.HetMet.GArrow.T:GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ co_aHG
+ :: GHC.HetMet.GArrow.T:GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()) } in
+ let {
+ $dGArrowSwap_aLi
+ :: GHC.HetMet.GArrow.GArrowSwap GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrowSwap_aLi =
+ $dGArrowSwap_aLh
+ `cast` (GHC.HetMet.GArrow.T:GArrowSwap
+ GArrowTikZ.GArrowTikZ co_aHH ()
+ :: GHC.HetMet.GArrow.T:GArrowSwap
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ ~
+ GHC.HetMet.GArrow.T:GArrowSwap GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ $dGArrowCopy_aHm
+ :: GHC.HetMet.GArrow.GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrowCopy_aHm =
+ GHC.HetMet.GArrow.$p2GArrowSTKC
+ @ GArrowTikZ.GArrowTikZ $dGArrowSTKC_aHg } in
+ let {
+ $dGArrow_aHy
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrow_aHy =
+ GHC.HetMet.GArrow.$p1GArrowCopy
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrowCopy_aHm } in
+ let {
+ $dCategory_aHz :: Control.Category.Category GArrowTikZ.GArrowTikZ
+ [LclId]
+ $dCategory_aHz =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrow_aHy } in
+ let {
+ $dGArrow_aLn
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ [LclId]
+ $dGArrow_aLn =
+ $dGArrow_aHy
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ co_aLd
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()) } in
+ let {
+ $dGArrow_aLo
+ :: GHC.HetMet.GArrow.GArrow GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrow_aLo =
+ $dGArrow_aLn
+ `cast` (GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ co_aLe ()
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ ~
+ GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ $dGArrowCopy_aLl
+ :: GHC.HetMet.GArrow.GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrowCopy_aLl =
+ $dGArrowCopy_aHm
+ `cast` (GHC.HetMet.GArrow.T:GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ co_aLe
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ :: GHC.HetMet.GArrow.T:GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)) } in
+ let {
+ $dGArrowCopy_aLm
+ :: GHC.HetMet.GArrow.GArrowCopy GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrowCopy_aLm =
+ $dGArrowCopy_aLl
+ `cast` (GHC.HetMet.GArrow.T:GArrowCopy
+ GArrowTikZ.GArrowTikZ (,) co_aLd
+ :: GHC.HetMet.GArrow.T:GArrowCopy
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrowCopy GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ $dGArrowDrop_aHl
+ :: GHC.HetMet.GArrow.GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrowDrop_aHl =
+ GHC.HetMet.GArrow.$p1GArrowSTKC
+ @ GArrowTikZ.GArrowTikZ $dGArrowSTKC_aHg } in
+ let {
+ $dGArrow_aHs
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrow_aHs =
+ GHC.HetMet.GArrow.$p1GArrowDrop
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrowDrop_aHl } in
+ let {
+ $dCategory_aHt :: Control.Category.Category GArrowTikZ.GArrowTikZ
+ [LclId]
+ $dCategory_aHt =
+ GHC.HetMet.GArrow.$p1GArrow
+ @ GArrowTikZ.GArrowTikZ
+ @ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ @ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ $dGArrow_aHs } in
+ let {
+ $dGArrow_aLr
+ :: GHC.HetMet.GArrow.GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ [LclId]
+ $dGArrow_aLr =
+ $dGArrow_aHs
+ `cast` (GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ co_aLf
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()) } in
+ let {
+ $dGArrow_aLs
+ :: GHC.HetMet.GArrow.GArrow GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrow_aLs =
+ $dGArrow_aLr
+ `cast` (GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ co_aLg ()
+ :: GHC.HetMet.GArrow.T:GArrow
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ ()
+ ~
+ GHC.HetMet.GArrow.T:GArrow GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ $dGArrowDrop_aLp
+ :: GHC.HetMet.GArrow.GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ [LclId]
+ $dGArrowDrop_aLp =
+ $dGArrowDrop_aHl
+ `cast` (GHC.HetMet.GArrow.T:GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ co_aLg
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ :: GHC.HetMet.GArrow.T:GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ (GHC.HetMet.GArrow.GArrowTensor GArrowTikZ.GArrowTikZ)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)) } in
+ let {
+ $dGArrowDrop_aLq
+ :: GHC.HetMet.GArrow.GArrowDrop GArrowTikZ.GArrowTikZ (,) ()
+ [LclId]
+ $dGArrowDrop_aLq =
+ $dGArrowDrop_aLp
+ `cast` (GHC.HetMet.GArrow.T:GArrowDrop
+ GArrowTikZ.GArrowTikZ (,) co_aLf
+ :: GHC.HetMet.GArrow.T:GArrowDrop
+ GArrowTikZ.GArrowTikZ
+ (,)
+ (GHC.HetMet.GArrow.GArrowUnit GArrowTikZ.GArrowTikZ)
+ ~
+ GHC.HetMet.GArrow.T:GArrowDrop GArrowTikZ.GArrowTikZ (,) ()) } in
+ let {
+ @ co_aHh::GHC.Types.Int ~ GHC.Types.Int
+ co_aHh = TYPE sym co_aLt } in
+ (GArrowTikZ.$WTikZ_const (GHC.Types.I# 12))
+ `cast` (GArrowTikZ.GArrowTikZ () co_aHh
+ :: GArrowTikZ.GArrowTikZ () GHC.Types.Int
+ ~
+ GArrowTikZ.GArrowTikZ () GHC.Types.Int)))); } in
+ main_aHj
+
+:Main.main :: GHC.Types.IO ()
+[LclIdX]
+:Main.main = GHC.TopHandler.runMainIO @ () Main.main
+end Rec }
+
+
+
+
+==================== Desugar ====================
+Main.foo
+ :: forall (tv_~N6 :: * -> * -> *) tv_~N7.
+ GHC.HetMet.Private.PGArrow
+ tv_~N6 (GHC.HetMet.GArrow.GArrowUnit tv_~N6) tv_~N7
+ -> GHC.HetMet.Private.PGArrow
+ tv_~N6 (GHC.HetMet.GArrow.GArrowUnit tv_~N6) tv_~N7
+[LclId]
+Main.foo =
+ \ (@ tv_~N6::* -> * -> *)
+ (@ tv_~N7)
+ (ev_~N8
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6 (GHC.HetMet.GArrow.GArrowUnit tv_~N6) tv_~N7) ->
+ let {
+ ev_~N9
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ [LclId]
+ ev_~N9 =
+ GHC.HetMet.Private.pga_id
+ @ tv_~N6 @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6) } in
+ let {
+ ev_~Na
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6 (GHC.HetMet.GArrow.GArrowUnit tv_~N6) tv_~N7
+ [LclId]
+ ev_~Na =
+ let {
+ ev_~Nh
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ [LclId]
+ ev_~Nh =
+ GHC.HetMet.Private.pga_id
+ @ tv_~N6 @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6) } in
+ let {
+ ev_~Ni
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6 (GHC.HetMet.GArrow.GArrowUnit tv_~N6) tv_~N7
+ [LclId]
+ ev_~Ni = ev_~N8 } in
+ let {
+ ev_~Nj
+ :: GHC.HetMet.Private.PGArrow
+ tv_~N6
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ [LclId]
+ ev_~Nj =
+ GHC.HetMet.Private.pga_drop
+ @ tv_~N6 @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6) } in
+ GHC.HetMet.Private.pga_comp
+ @ tv_~N6
+ @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ @ tv_~N7
+ ev_~Nj
+ ev_~Ni } in
+ GHC.HetMet.Private.pga_comp
+ @ tv_~N6
+ @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ @ (GHC.HetMet.GArrow.GArrowUnit tv_~N6)
+ @ tv_~N7
+ ev_~N9
+ ev_~Na
+
+Main.maincoercionKind
+ base:GHC.HetMet.GArrow.GArrowUnit{tc 02y}
+ main:GArrowTikZ.GArrowTikZ{tc roV}
+ ~
+ ghc-prim:GHC.Unit.(){(w) tc 40}
+ghc-stage2: coreTypeToWeakType
+ hit a bare EqPred