{-# 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