Skip to content

Instantly share code, notes, and snippets.

@yfyf
Last active December 20, 2015 12:39
Show Gist options
  • Save yfyf/6132910 to your computer and use it in GitHub Desktop.
Save yfyf/6132910 to your computer and use it in GitHub Desktop.
A simple Idris type checking failure
Skipping ./ConcEnv.idr
Type checking ./ConcState.idr
ConcState.idr:134:Can't unify EffM IO effs effs () with EffM IO [(MkEff
(ConcEnv ResState Resource rsin) eff)] xs' ()
Specifically:
Can't unify effs with [MkEff (ConcEnv ResState Resource rsin) eff]
ConcState.idr:176:Incomplete term Effects.>>= {m = IO} {xs = [MkEff
(ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys = [MkEff
(ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState IO)]}
[(MkEff (ConcEnv {n = 1} ResState Resource (replaceAt {n = 1} {t =
ResState} (fZ {k = Z}) (RState 1 Nat) [(RState Z Nat)])) (ConcState
IO))] [(MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO)),(MkEff () StdIO)] (let {scriptvar0} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []})))} {a = ()} {xs'' = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b = Nat}
(lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState Resource
[(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO} {ys' =
[MkEff (ConcEnv {n = 1} ResState Resource (replaceAt {n = 1} {t =
ResState} (fZ {k = Z}) (RState 1 Nat) [(RState Z Nat)])) (ConcState
IO)]} {t = ()} {auto prf = let {scriptvar0} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (lock {n = 1} {k = Z} {ty = Nat} {rsin = [RState Z
Nat]} {m = IO} (fZ {k = Z}) (ElemAtIsHere {a = ResState} {n = Z} {x =
RState Z Nat} {xs = []}) (UnlockedHere {n = Z} {x = RState Z Nat} {xs =
[]}))) (\ {bindx0} : () => Effects.>>= {m = IO} {xs = [MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO),MkEff ()
StdIO]} {xs' = updateWith {a = EFFECT} {ys = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO)]} [(MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO))] [(MkEff
(ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO)),(MkEff () StdIO)] (let {scriptvar1} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []})))} {a = Nat} {xs'' = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b
= Nat} (lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState
1 Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO}
{ys' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO)]} {t = Nat} {auto prf = let {scriptvar1} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (read {n = 1} {k = Z} {ty = Nat} {rsin = [RState 1
Nat]} {m = IO} (fZ {k = Z}) (ElemAtIsHere {a = ResState} {n = Z} {x =
RState 1 Nat} {xs = []}))) (\ val : Nat => Effects.>>= {m = IO} {xs =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys = [MkEff ()
StdIO]} [(MkEff () StdIO)] [(MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)),(MkEff () StdIO)] (let {scriptvar2} =
findSubList (Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}}
100) in Drop {a = EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)} {xs = [MkEff () StdIO]} {ys = [MkEff
() StdIO]} (subListId {a = EFFECT} {xs = [MkEff () StdIO]}))} {a = ()}
{xs'' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO),MkEff () StdIO]} {b = Nat} (lift' {ys = [MkEff ()
StdIO]} {xs = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO} {ys' = [MkEff ()
StdIO]} {t = ()} {auto prf = let {scriptvar2} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Drop {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = [MkEff () StdIO]} {ys = [MkEff () StdIO]}
(subListId {a = EFFECT} {xs = [MkEff () StdIO]})}
(Effect.StdIO.putStrLn {e = IO} {{@Effects.Handler$[StdIO,IO]}}
(Builtins.++ "Bump single val initial " (show {a = Nat}
{{@Prelude.Show$[Nat]}} val)))) (\ {bindx0} : () => Effects.>>= {m =
IO} {xs = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO)]} [(MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO))] [(MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)),(MkEff () StdIO)] (let {scriptvar3} =
findSubList (Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}}
100) in Keep {a = EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]}
(Drop {a = EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId
{a = EFFECT} {xs = []})))} {a = ()} {xs'' = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b
= Nat} (lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState
1 Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO}
{ys' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO)]} {t = ()} {auto prf = let {scriptvar3} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (write {n = 1} {ty = Nat} {k = Z} {rsin = [RState
1 Nat]} {m = IO} (fZ {k = Z}) (+ {a = Nat} {{@Builtins.Num$[Nat]}} val
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 1))
(ElemAtIsHere {a = ResState} {n = Z} {x = RState 1 Nat} {xs = []}))) (\
{bindx0} : () => Effects.>>= {m = IO} {xs = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]}
{xs' = updateWith {a = EFFECT} {ys = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO)]} [(MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO))] [(MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)),(MkEff ()
StdIO)] (let {scriptvar4} = findSubList (Builtins.fromInteger {a = Nat}
{{@Builtins.Num$[Nat]}} 100) in Keep {a = EFFECT} {x = MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)} {xs = []}
{ys = [MkEff () StdIO]} (Drop {a = EFFECT} {x = MkEff () StdIO} {xs =
[]} {ys = []} (subListId {a = EFFECT} {xs = []})))} {a = Nat} {xs'' =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO),MkEff () StdIO]} {b = Nat} (lift' {ys = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO)]} {xs = [MkEff
(ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO),MkEff () StdIO]} {m = IO} {ys' = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO)]} {t = Nat} {auto prf = let
{scriptvar4} = findSubList (Builtins.fromInteger {a = Nat}
{{@Builtins.Num$[Nat]}} 100) in Keep {a = EFFECT} {x = MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)} {xs = []}
{ys = [MkEff () StdIO]} (Drop {a = EFFECT} {x = MkEff () StdIO} {xs =
[]} {ys = []} (subListId {a = EFFECT} {xs = []}))} (read {n = 1} {k =
Z} {ty = Nat} {rsin = [RState 1 Nat]} {m = IO} (fZ {k = Z})
(ElemAtIsHere {a = ResState} {n = Z} {x = RState 1 Nat} {xs = []}))) (\
val' : Nat => Effects.>>= {m = IO} {xs = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]}
{xs' = updateWith {a = EFFECT} {ys = [MkEff () StdIO]} [(MkEff ()
StdIO)] [(MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO)),(MkEff () StdIO)] (let {scriptvar5} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Drop {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = [MkEff () StdIO]} {ys = [MkEff () StdIO]}
(subListId {a = EFFECT} {xs = [MkEff () StdIO]}))} {a = ()} {xs'' =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO),MkEff () StdIO]} {b = Nat} (lift' {ys = [MkEff () StdIO]} {xs =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO),MkEff () StdIO]} {m = IO} {ys' = [MkEff () StdIO]} {t = ()} {auto
prf = let {scriptvar5} = findSubList (Builtins.fromInteger {a = Nat}
{{@Builtins.Num$[Nat]}} 100) in Drop {a = EFFECT} {x = MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)} {xs =
[MkEff () StdIO]} {ys = [MkEff () StdIO]} (subListId {a = EFFECT} {xs =
[MkEff () StdIO]})} (Effect.StdIO.putStrLn {e = IO}
{{@Effects.Handler$[StdIO,IO]}} (Builtins.++ "Bump single val final "
(show {a = Nat} {{@Prelude.Show$[Nat]}} val')))) (\ {bindx0} : () =>
Effects.>>= {m = IO} {xs = [MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]} {xs' = updateWith {a
= EFFECT} {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)]} [(MkEff (ConcEnv {n = 1} ResState Resource
(replaceAt {n = 1} {t = ResState} (fZ {k = Z}) (RState Z Nat) [(RState
1 Nat)])) (ConcState IO))] [(MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)),(MkEff () StdIO)] (let {scriptvar6} =
findSubList (Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}}
100) in Keep {a = EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]}
(Drop {a = EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId
{a = EFFECT} {xs = []})))} {a = ()} {xs'' = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b
= Nat} (lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState
1 Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO}
{ys' = [MkEff (ConcEnv {n = 1} ResState Resource (replaceAt {n = 1} {t
= ResState} (fZ {k = Z}) (RState Z Nat) [(RState 1 Nat)])) (ConcState
IO)]} {t = ()} {auto prf = let {scriptvar6} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (unlock {n = 1} {k = Z} {ty = Nat} {rsin = [RState
1 Nat]} {m = IO} (fZ {k = Z}) (ElemAtIsHere {a = ResState} {n = Z} {x =
RState 1 Nat} {xs = []}))) (\ {bindx0} : () => Effects.>>= {m = IO} {xs
= [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO)]} [(MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO))] [(MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)),(MkEff () StdIO)] (let {scriptvar7} =
findSubList (Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}}
100) in Keep {a = EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource
[(RState Z Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]}
(Drop {a = EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId
{a = EFFECT} {xs = []})))} {a = ()} {xs'' = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b
= Nat} (lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState
Z Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO}
{ys' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO)]} {t = ()} {auto prf = let {scriptvar7} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (ffork {n = 1} {m = IO} {effs = [MkEff (ConcEnv {n
= S [__]} ResState Resource (Prelude.Vect.:: {a = ResState} {n = [__]}
(RState [__] Nat) [__])) (ConcState IO),MkEff () StdIO]} {rsin =
[RState Z Nat]} (AllUnlAlmost {n = Z} {t = Nat} {xs = []} AllUnlYes)
(Effects.>>= {m = IO} {xs = [MkEff (ConcEnv {n = S [__]} ResState
Resource (Prelude.Vect.:: {a = ResState} {n = [__]} (RState [__] Nat)
[__])) (ConcState IO),MkEff () StdIO]} {xs' = [MkEff (ConcEnv {n = S
[__]} ResState Resource (Prelude.Vect.:: {a = ResState} {n = [__]}
(RState [__] Nat) [__])) (ConcState IO),MkEff () StdIO]} {a = Nat}
{xs'' = [MkEff (ConcEnv {n = S [__]} ResState Resource (Prelude.Vect.::
{a = ResState} {n = [__]} (RState [__] Nat) [__])) (ConcState IO),MkEff
() StdIO]} {b = ()} (bump_first_val {k = [__]} {l = [__]} {rsin =
[__]}) (\ {bpat0} : Nat => let {scvar0} = {bpat0} in
ConcState.bump_single_val_case {bindx0} val {bindx0} {bindx0} val'
{bindx0} {bindx0} (let {scriptvar7} = findSubList (Builtins.fromInteger
{a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a = EFFECT} {x = MkEff
(ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState IO)}
{xs = []} {ys = [MkEff () StdIO]} (Drop {a = EFFECT} {x = MkEff ()
StdIO} {xs = []} {ys = []} (subListId {a = EFFECT} {xs = []}))) Nat
[__] [__] [__] {bpat0} {scvar0})))) (\ {bindx0} : () => Effects.>>= {m
= IO} {xs = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO)]} [(MkEff (ConcEnv {n = 1} ResState Resource (replaceAt {n = 1} {t
= ResState} (fZ {k = Z}) (RState 1 Nat) [(RState Z Nat)])) (ConcState
IO))] [(MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO)),(MkEff () StdIO)] (let {scriptvar8} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []})))} {a = ()} {xs'' = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b = Nat}
(lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState Resource
[(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO} {ys' =
[MkEff (ConcEnv {n = 1} ResState Resource (replaceAt {n = 1} {t =
ResState} (fZ {k = Z}) (RState 1 Nat) [(RState Z Nat)])) (ConcState
IO)]} {t = ()} {auto prf = let {scriptvar8} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState Z
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (lock {n = 1} {k = Z} {ty = Nat} {rsin = [RState Z
Nat]} {m = IO} (fZ {k = Z}) (ElemAtIsHere {a = ResState} {n = Z} {x =
RState Z Nat} {xs = []}) (UnlockedHere {n = Z} {x = RState Z Nat} {xs =
[]}))) (\ {bindx0} : () => Effects.>>= {m = IO} {xs = [MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO),MkEff ()
StdIO]} {xs' = updateWith {a = EFFECT} {ys = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO)]} [(MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO))] [(MkEff
(ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO)),(MkEff () StdIO)] (let {scriptvar9} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []})))} {a = Nat} {xs'' = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState Z Nat)]) (ConcState IO),MkEff () StdIO]} {b
= Nat} (lift' {ys = [MkEff (ConcEnv {n = 1} ResState Resource [(RState
1 Nat)]) (ConcState IO)]} {xs = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO}
{ys' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)])
(ConcState IO)]} {t = Nat} {auto prf = let {scriptvar9} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = []} {ys = [MkEff () StdIO]} (Drop {a =
EFFECT} {x = MkEff () StdIO} {xs = []} {ys = []} (subListId {a =
EFFECT} {xs = []}))} (read {n = 1} {k = Z} {ty = Nat} {rsin = [RState 1
Nat]} {m = IO} (fZ {k = Z}) (ElemAtIsHere {a = ResState} {n = Z} {x =
RState 1 Nat} {xs = []}))) (\ rez : Nat => Effects.>>= {m = IO} {xs =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO),MkEff () StdIO]} {xs' = updateWith {a = EFFECT} {ys = [MkEff ()
StdIO]} [(MkEff () StdIO)] [(MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)),(MkEff () StdIO)] (let {scriptvar10}
= findSubList (Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}}
100) in Drop {a = EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource
[(RState 1 Nat)]) (ConcState IO)} {xs = [MkEff () StdIO]} {ys = [MkEff
() StdIO]} (subListId {a = EFFECT} {xs = [MkEff () StdIO]}))} {a = ()}
{xs'' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO),MkEff () StdIO]} {b = Nat} (lift' {ys = [MkEff ()
StdIO]} {xs = [MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO),MkEff () StdIO]} {m = IO} {ys' = [MkEff ()
StdIO]} {t = ()} {auto prf = let {scriptvar10} = findSubList
(Builtins.fromInteger {a = Nat} {{@Builtins.Num$[Nat]}} 100) in Drop {a
= EFFECT} {x = MkEff (ConcEnv {n = 1} ResState Resource [(RState 1
Nat)]) (ConcState IO)} {xs = [MkEff () StdIO]} {ys = [MkEff () StdIO]}
(subListId {a = EFFECT} {xs = [MkEff () StdIO]})}
(Effect.StdIO.putStrLn {e = IO} {{@Effects.Handler$[StdIO,IO]}}
(Builtins.++ "Result: " (show {a = Nat} {{@Prelude.Show$[Nat]}} rez))))
(\ {bindx0} : () => Effects.>>= {m = IO} {xs = [MkEff (ConcEnv {n = 1}
ResState Resource [(RState 1 Nat)]) (ConcState IO),MkEff () StdIO]}
{xs' = updateWith {a = EFFECT} {ys = [MkEff (ConcEnv {n = 1} ResState
Resource [(RState 1 Nat)]) (ConcState IO)]} [(MkEff (ConcEnv {n = 1}
ResState Resource (replaceAt {n = 1} {t = ResState} (fZ {k = Z})
(RState Z Nat) [(RState 1 Nat)])) (ConcState IO))] [(MkEff (ConcEnv {n
= 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)),(MkEff ()
StdIO)] (let {scriptvar11} = findSubList (Builtins.fromInteger {a =
Nat} {{@Builtins.Num$[Nat]}} 100) in Keep {a = EFFECT} {x = MkEff
(ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)}
{xs = []} {ys = [MkEff () StdIO]} (Drop {a = EFFECT} {x = MkEff ()
StdIO} {xs = []} {ys = []} (subListId {a = EFFECT} {xs = []})))} {a =
()} {xs'' = [MkEff (ConcEnv {n = 1} ResState Resource [(RState Z Nat)])
(ConcState IO),MkEff () StdIO]} {b = Nat} (lift' {ys = [MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)]} {xs =
[MkEff (ConcEnv {n = 1} ResState Resource [(RState 1 Nat)]) (ConcState
IO),MkEff () StdIO]} {m = IO} {ys' = [MkEff (ConcEnv {n = 1} ResState
Resource (replaceAt {n = 1} {t = ResState} (fZ {k = Z}) (RState Z Nat)
[(RState 1 Nat)])) (ConcState IO)]} {t = ()} {auto prf = let
{scriptvar11} = findSubList (Builtins.fromInteger {a = Nat}
{{@Builtins.Num$[Nat]}} 100) in Keep {a = EFFECT} {x = MkEff (ConcEnv
{n = 1} ResState Resource [(RState 1 Nat)]) (ConcState IO)} {xs = []}
{ys = [MkEff () StdIO]} (Drop {a = EFFECT} {x = MkEff () StdIO} {xs =
[]} {ys = []} (subListId {a = EFFECT} {xs = []}))} (unlock {n = 1} {k =
Z} {ty = Nat} {rsin = [RState 1 Nat]} {m = IO} (fZ {k = Z})
(ElemAtIsHere {a = ResState} {n = Z} {x = RState 1 Nat} {xs = []}))) (\
{bindx0} : () => Effects.return {a = Nat} {m = IO} {xs = [MkEff
(ConcEnv {n = 1} ResState Resource [(RState Z Nat)]) (ConcState
IO),MkEff () StdIO]} rez))))))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment