{-# LANGUAGE TypeFamilies #-} module PrioritySync.Internal.Unconstrained (Unconstrained(..)) where import PrioritySync.Internal.UserData import PrioritySync.Internal.RoomGroup import PrioritySync.Internal.ClaimContext import PrioritySync.Internal.Room -- | Don't check any 'RoomConstraint's when acquiring a 'Room'. data Unconstrained u = Unconstrained type instance UserData (Unconstrained u) = u instance RoomGroup (Unconstrained u) where roomsOf = const [] instance ClaimContext (Unconstrained u) where type ClaimHandle (Unconstrained u) = () approveClaimsEntering _ cs = mapM_ approve cs >> return () approveClaimsExiting _ cs = mapM_ approve cs >> return () waitingAction _ _ = return ()