Inline some functions and simplify

This commit is contained in:
George Thomas 2026-01-04 02:40:22 +00:00
parent 8e6179f103
commit c4b85eac71
2 changed files with 1 additions and 11 deletions

View File

@ -3,7 +3,6 @@ module Main (main) where
import Pre import Pre
import Data.Functor.Contravariant import Data.Functor.Contravariant
import Data.Functor.Identity
import Data.Text.IO qualified as T import Data.Text.IO qualified as T
import Puzzles.Day1 qualified as Day1 import Puzzles.Day1 qualified as Day1
import Puzzles.Day10 qualified as Day10 import Puzzles.Day10 qualified as Day10
@ -42,7 +41,7 @@ main =
describe pt do describe pt do
input <- liftIO $ parseFile $ "../inputs/" <> t <> "/" <> pt input <- liftIO $ parseFile $ "../inputs/" <> t <> "/" <> pt
let (rs, os) = let (rs, os) =
((unHListF . mapHListF (Const . fst)) &&& (fromHListF . mapHListF (Identity . snd))) $ ((getConst . foldHListF (\x r -> Const $ fst x : getConst r) (Const [])) &&& foldHListF (HCons . snd) HNil) $
mapHListF (\(Fanout (f, Op o)) -> (o &&& id) $ f input) parts mapHListF (\(Fanout (f, Op o)) -> (o &&& id) $ f input) parts
for_ (zip [1 :: Int ..] rs) $ uncurry $ \(show -> n) -> for_ (zip [1 :: Int ..] rs) $ uncurry $ \(show -> n) ->
it n . pureGoldenTextFile ("../outputs/" <> t <> "/" <> pt <> "/" <> n) . (<> "\n") it n . pureGoldenTextFile ("../outputs/" <> t <> "/" <> pt <> "/" <> n) . (<> "\n")

View File

@ -44,8 +44,6 @@ module Pre (
HListF (..), HListF (..),
foldHListF, foldHListF,
mapHListF, mapHListF,
fromHListF,
unHListF,
(/\), (/\),
(/\\), (/\\),
nil, nil,
@ -78,7 +76,6 @@ import Data.Foldable1
import Data.Function import Data.Function
import Data.Functor import Data.Functor
import Data.Functor.Contravariant import Data.Functor.Contravariant
import Data.Functor.Identity
import Data.Kind (Type) import Data.Kind (Type)
import Data.List (List, sortOn, transpose) import Data.List (List, sortOn, transpose)
import Data.List.Extra (dropEnd, enumerate, firstJust, notNull, splitOn) import Data.List.Extra (dropEnd, enumerate, firstJust, notNull, splitOn)
@ -158,12 +155,6 @@ foldHListF f e = \case
mapHListF :: (forall a. f a -> g a) -> HListF f as -> HListF g as mapHListF :: (forall a. f a -> g a) -> HListF f as -> HListF g as
mapHListF t = foldHListF (\x r -> HConsF (t x) $ r) HNilF mapHListF t = foldHListF (\x r -> HConsF (t x) $ r) HNilF
fromHListF :: HListF Identity as -> HList as
fromHListF = foldHListF (\(Identity x) r -> HCons x r) HNil
unHListF :: HListF (Const b) as -> List b
unHListF = getConst . foldHListF (\(Const x) (Const r) -> Const $ x : r) (Const [])
instance Semigroup (TestDefM a b ()) where instance Semigroup (TestDefM a b ()) where
(<>) = (>>) (<>) = (>>)
instance Monoid (TestDefM a b ()) where instance Monoid (TestDefM a b ()) where