{-# LANGUAGE ConstraintKinds #-} {-# OPTIONS_GHC -fcontext-stack=100 #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE DataKinds #-} import Data.HList.CommonMain import Control.Lens makeLabelable (unwords [ "r" ++ show n | n <- [0 .. 9 :: Int] ]) r :: RecordU '[Tagged "r0" Int , Tagged "r1" Int, Tagged "r2" Int, Tagged "r3" Int, Tagged "r4" Int, Tagged "r5" Int, Tagged "r6" Int, Tagged "r7" Int, Tagged "r8" Int, Tagged "r9" Int] r = [1 .. 10] ^?! listAsHList . from unlabeled . unboxed main = print $ r^.r0 + r^.r1 + r^.r2 + r^.r3 + r^.r4 + r^.r5 + r^.r6 + r^.r7 + r^.r8 + r^.r9