{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances #-} module FullSession.DeferredInstances where import FullSession.Base instance (SList ss l, Sub l (S n), PickupR ss (SubT l (S n)) s) => Pickup ss n s where pickup ss n = pickupR ss (sub (len_ ss) (S n)) instance (SList ss l, Sub l (S n), UpdateR ss (SubT l (S n)) t ss') => Update ss n t ss' where update ss n t = updateR ss (sub (len_ ss) (S n)) t