{-# LANGUAGE AllowAmbiguousTypes #-} module Mischief.ECS.Schedules where import Language.Haskell.TH (Extension (AllowAmbiguousTypes)) import Mischief.ECS.App import Mischief.ECS.App.Schedules import Mischief.ECS.Entities import Mischief.ECS.World get :: forall sc. (Schedule sc) => System Entity get :: forall {k} (sc :: k). Schedule sc => System Entity get = forall (sch :: k). Schedule sch => System Entity forall {k} (sc :: k). Schedule sc => System Entity scheduleEntity @sc run :: forall sc. (Schedule sc) => System () run :: forall {k} (sc :: k). Schedule sc => System () run = forall (sch :: k). Schedule sch => System () forall {k} (sc :: k). Schedule sc => System () runSchedule @sc