module Test.Falsify.Internal.SampleTree (
next
, left
, right
) where
import Prelude hiding (map, mod)
import Optics.Core (Lens')
import qualified Optics.Core as Optics
import Test.Falsify.SampleTree (SampleTree(..), pattern Inf, Sample(..))
next :: Lens' SampleTree Sample
next :: Lens' SampleTree Sample
next = (SampleTree -> Sample)
-> (SampleTree -> Sample -> SampleTree) -> Lens' SampleTree Sample
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Optics.lens SampleTree -> Sample
getter SampleTree -> Sample -> SampleTree
setter
where
getter :: SampleTree -> Sample
getter :: SampleTree -> Sample
getter (Inf Sample
s SampleTree
_ SampleTree
_) = Sample
s
setter :: SampleTree -> Sample -> SampleTree
setter :: SampleTree -> Sample -> SampleTree
setter SampleTree
Minimal Sample
_ = SampleTree
Minimal
setter (SampleTree Sample
_ SampleTree
l SampleTree
r) Sample
s = Sample -> SampleTree -> SampleTree -> SampleTree
SampleTree Sample
s SampleTree
l SampleTree
r
left :: Lens' SampleTree SampleTree
left :: Lens' SampleTree SampleTree
left = (SampleTree -> SampleTree)
-> (SampleTree -> SampleTree -> SampleTree)
-> Lens' SampleTree SampleTree
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Optics.lens SampleTree -> SampleTree
getter SampleTree -> SampleTree -> SampleTree
setter
where
getter :: SampleTree -> SampleTree
getter :: SampleTree -> SampleTree
getter (Inf Sample
_ SampleTree
l SampleTree
_) = SampleTree
l
setter :: SampleTree -> SampleTree -> SampleTree
setter :: SampleTree -> SampleTree -> SampleTree
setter SampleTree
Minimal SampleTree
_ = SampleTree
Minimal
setter (SampleTree Sample
s SampleTree
_ SampleTree
r) SampleTree
l = Sample -> SampleTree -> SampleTree -> SampleTree
SampleTree Sample
s SampleTree
l SampleTree
r
right :: Lens' SampleTree SampleTree
right :: Lens' SampleTree SampleTree
right = (SampleTree -> SampleTree)
-> (SampleTree -> SampleTree -> SampleTree)
-> Lens' SampleTree SampleTree
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Optics.lens SampleTree -> SampleTree
getter SampleTree -> SampleTree -> SampleTree
setter
where
getter :: SampleTree -> SampleTree
getter :: SampleTree -> SampleTree
getter (Inf Sample
_ SampleTree
_ SampleTree
r) = SampleTree
r
setter :: SampleTree -> SampleTree -> SampleTree
setter :: SampleTree -> SampleTree -> SampleTree
setter SampleTree
Minimal SampleTree
_ = SampleTree
Minimal
setter (SampleTree Sample
s SampleTree
l SampleTree
_) SampleTree
r = Sample -> SampleTree -> SampleTree -> SampleTree
SampleTree Sample
s SampleTree
l SampleTree
r