Created
May 27, 2019 14:14
-
-
Save isovector/040d54e473a3ead0cd406394d2f8547b to your computer and use it in GitHub Desktop.
inspection-testing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| LHS: | |
| recursive | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s -> Sem (e : r) a -> Sem r (s, a) | |
| recursive = recursive | |
| recursive_s9LZ | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s | |
| -> Sem (e : r) a | |
| -> forall (m :: * -> *). | |
| Monad m => | |
| (forall x. Union r (Sem r) x -> m x) -> m (s, a) | |
| recursive_s9LZ | |
| = \ (@ (e :: (* -> *) -> * -> *)) | |
| (@ s) | |
| (@ (r :: [(* -> *) -> * -> *])) | |
| (@ a) | |
| (f :: forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| (s :: s) | |
| (ds_d9mO :: Sem (e : r) a) | |
| (@ (m :: * -> *)) | |
| ($dMonad_a7S2 :: Monad m) -> | |
| let { | |
| $dMonad_samK :: Monad (StateT s m) | |
| $dMonad_samK = $fMonadStateT @ m @ s $dMonad_a7S2 } in | |
| let { | |
| $dApplicative_samJ :: Applicative m | |
| $dApplicative_samJ = $p1Monad @ m $dMonad_a7S2 } in | |
| let { | |
| $dFunctor_samI :: Functor m | |
| $dFunctor_samI = $p1Applicative @ m $dApplicative_samJ } in | |
| \ (k :: forall x. Union r (Sem r) x -> m x) -> | |
| fmap | |
| @ m | |
| $dFunctor_samI | |
| @ (a, s) | |
| @ (s, a) | |
| (swap @ a @ s) | |
| ((((ds_d9mO `cast` <Co:13>) | |
| @ (StateT s m) | |
| $dMonad_samK | |
| (\ (@ x) (u :: Union (e : r) (Sem (e : r)) x) -> | |
| case u of { Union @ n_i9l5 p a1 -> | |
| case p of { | |
| SZ co -> | |
| case a1 `cast` <Co:48> of | |
| { Yo @ f @ m1 @ a1 $dFunctor_sayJ e z ds_sayM y -> | |
| let { | |
| lvl_sani :: (a1, s) -> (x, s) | |
| lvl_sani | |
| = \ (w_savE :: (a1, s)) -> | |
| (y (<$ | |
| @ f | |
| $dFunctor_sayJ | |
| @ a1 | |
| @ () | |
| (case w_savE of { (a1, s') -> a1 }) | |
| z), | |
| case w_savE of { (a1, s') -> s' }) } in | |
| let { | |
| m1 :: StateT s (Sem r) a1 | |
| m1 = f @ a1 @ m1 e } in | |
| (\ (s1 :: s) -> | |
| fmap | |
| @ m | |
| $dFunctor_samI | |
| @ (a1, s) | |
| @ (x, s) | |
| lvl_sani | |
| ((((m1 `cast` <Co:5>) s1) `cast` <Co:5>) @ m $dMonad_a7S2 k)) | |
| `cast` <Co:5> | |
| }; | |
| SS @ n1_i9lz co n2 -> | |
| case a1 `cast` <Co:49> of | |
| { Yo @ f1_sayQ @ m1_sayR @ a1_sayS $dFunctor3 e1 s2 nt f2 -> | |
| (\ (s' :: s) -> | |
| k @ (x, s) | |
| (Union | |
| @ r | |
| @ (Sem r) | |
| @ (x, s) | |
| @ n1 | |
| n2 | |
| (Yo | |
| @ (IndexOf r n1) | |
| @ (Sem r) | |
| @ (x, s) | |
| @ (Compose ((,) s) f1) | |
| @ m1 | |
| @ a1 | |
| ($fFunctorCompose | |
| @ ((,) s) @ f1 ($fFunctor(,) @ s) $dFunctor3) | |
| e1 | |
| ((s', s2) `cast` <Co:10>) | |
| (\ (@ x) (x1 :: Compose ((,) s) f1 (m1 x)) -> | |
| let { | |
| p :: (s, Sem (e : r) (f1 x)) | |
| p = case x1 `cast` <Co:10> of { (x, y) -> | |
| (x, nt @ x y) | |
| } } in | |
| let { | |
| ds_samQ :: s | |
| ds_samQ = case p of { (x, ds) -> x } } in | |
| let { | |
| ds_samP :: Sem (e : r) (f1 x) | |
| ds_samP = case p of { (ds, y) -> y } } in | |
| (\ (@ (m :: * -> *)) | |
| ($dMonad :: Monad m) | |
| (eta_B1 :: forall x. Union r (Sem r) x -> m x) -> | |
| fmap | |
| @ m | |
| ($p1Applicative @ m ($p1Monad @ m $dMonad)) | |
| @ (s, f1 x) | |
| @ (Compose ((,) s) f1 x) | |
| ((poly_f4_san7 @ x @ f1 @ s) `cast` <Co:15>) | |
| (((recursive | |
| @ e @ s @ r @ (f1 x) f ds_samQ ds_samP) | |
| `cast` <Co:6>) | |
| @ m $dMonad eta_B1)) | |
| `cast` <Co:12>) | |
| (\ (x :: Compose ((,) s) f1 a1) -> | |
| case x `cast` <Co:9> of { (x, y) -> (f2 y, x) })))) | |
| `cast` <Co:5> | |
| } | |
| } | |
| })) | |
| `cast` <Co:4>) | |
| s) | |
| recursive | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s -> Sem (e : r) a -> Sem r (s, a) | |
| recursive = recursive_s9LZ `cast` <Co:62> | |
| RHS: | |
| mutual | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s -> Sem (e : r) a -> Sem r (s, a) | |
| mutual = mutual_s9Mk `cast` <Co:62> | |
| mutual2 | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s -> Sem (e : r) a -> Sem r (s, a) | |
| mutual2 = mutual | |
| mutual_s9Mk | |
| :: forall (e :: (* -> *) -> * -> *) s (r :: [(* -> *) | |
| -> * -> *]) a. | |
| (forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| -> s | |
| -> Sem (e : r) a | |
| -> forall (m :: * -> *). | |
| Monad m => | |
| (forall x. Union r (Sem r) x -> m x) -> m (s, a) | |
| mutual_s9Mk | |
| = \ (@ (e :: (* -> *) -> * -> *)) | |
| (@ s) | |
| (@ (r :: [(* -> *) -> * -> *])) | |
| (@ a) | |
| (f :: forall x (m :: * -> *). e m x -> StateT s (Sem r) x) | |
| (s :: s) | |
| (ds_d9kz :: Sem (e : r) a) | |
| (@ (m :: * -> *)) | |
| ($dMonad_a7Oo :: Monad m) -> | |
| let { | |
| $dMonad_samu :: Monad (StateT s m) | |
| $dMonad_samu = $fMonadStateT @ m @ s $dMonad_a7Oo } in | |
| let { | |
| $dApplicative_samt :: Applicative m | |
| $dApplicative_samt = $p1Monad @ m $dMonad_a7Oo } in | |
| let { | |
| $dFunctor_sams :: Functor m | |
| $dFunctor_sams = $p1Applicative @ m $dApplicative_samt } in | |
| \ (k :: forall x. Union r (Sem r) x -> m x) -> | |
| fmap | |
| @ m | |
| $dFunctor_sams | |
| @ (a, s) | |
| @ (s, a) | |
| (swap @ a @ s) | |
| ((((ds_d9kz `cast` <Co:13>) | |
| @ (StateT s m) | |
| $dMonad_samu | |
| (\ (@ x) (u :: Union (e : r) (Sem (e : r)) x) -> | |
| case u of { Union @ n_i9l5 p a1 -> | |
| case p of { | |
| SZ co -> | |
| case a1 `cast` <Co:48> of | |
| { Yo @ f @ m1 @ a1 $dFunctor_saz3 e z ds_saz6 y -> | |
| let { | |
| lvl_sanF :: (a1, s) -> (x, s) | |
| lvl_sanF | |
| = \ (w_sawd :: (a1, s)) -> | |
| (y (<$ | |
| @ f | |
| $dFunctor_saz3 | |
| @ a1 | |
| @ () | |
| (case w_sawd of { (a1, s') -> a1 }) | |
| z), | |
| case w_sawd of { (a1, s') -> s' }) } in | |
| let { | |
| m1 :: StateT s (Sem r) a1 | |
| m1 = f @ a1 @ m1 e } in | |
| (\ (s1 :: s) -> | |
| fmap | |
| @ m | |
| $dFunctor_sams | |
| @ (a1, s) | |
| @ (x, s) | |
| lvl_sanF | |
| ((((m1 `cast` <Co:5>) s1) `cast` <Co:5>) @ m $dMonad_a7Oo k)) | |
| `cast` <Co:5> | |
| }; | |
| SS @ n1_i9lz co n2 -> | |
| case a1 `cast` <Co:49> of | |
| { Yo @ f1_saza @ m1_sazb @ a1_sazc $dFunctor3 e1 s2 nt f2 -> | |
| (\ (s' :: s) -> | |
| k @ (x, s) | |
| (Union | |
| @ r | |
| @ (Sem r) | |
| @ (x, s) | |
| @ n1 | |
| n2 | |
| (Yo | |
| @ (IndexOf r n1) | |
| @ (Sem r) | |
| @ (x, s) | |
| @ (Compose ((,) s) f1) | |
| @ m1 | |
| @ a1 | |
| ($fFunctorCompose | |
| @ ((,) s) @ f1 ($fFunctor(,) @ s) $dFunctor3) | |
| e1 | |
| ((s', s2) `cast` <Co:10>) | |
| (\ (@ x) (x1 :: Compose ((,) s) f1 (m1 x)) -> | |
| let { | |
| p :: (s, Sem (e : r) (f1 x)) | |
| p = case x1 `cast` <Co:10> of { (x, y) -> | |
| (x, nt @ x y) | |
| } } in | |
| let { | |
| ds_samA :: s | |
| ds_samA = case p of { (x, ds) -> x } } in | |
| let { | |
| ds_samz :: Sem (e : r) (f1 x) | |
| ds_samz = case p of { (ds, y) -> y } } in | |
| (\ (@ (m :: * -> *)) | |
| ($dMonad :: Monad m) | |
| (eta_B1 :: forall x. Union r (Sem r) x -> m x) -> | |
| fmap | |
| @ m | |
| ($p1Applicative @ m ($p1Monad @ m $dMonad)) | |
| @ (s, f1 x) | |
| @ (Compose ((,) s) f1 x) | |
| ((poly_f4_san7 @ x @ f1 @ s) `cast` <Co:15>) | |
| (((mutual2 @ e @ s @ r @ (f1 x) f ds_samA ds_samz) | |
| `cast` <Co:6>) | |
| @ m $dMonad eta_B1)) | |
| `cast` <Co:12>) | |
| (\ (x :: Compose ((,) s) f1 a1) -> | |
| case x `cast` <Co:9> of { (x, y) -> (f2 y, x) })))) | |
| `cast` <Co:5> | |
| } | |
| } | |
| })) | |
| `cast` <Co:4>) | |
| s) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment