+\begin{frame}[fragile]
+ \frametitle{SDS (2)}
+ \framesubtitle{Parametric Lenses}
+ \begin{block}{What is the \CI{p} for in \CI{RWShared p r w}}
+ \pause{}
+ \begin{itemize}
+ \item Parameter fixed when writing
+ \item Used for notifications
+ \item On write the SDS returns \CI{p -> Bool}
+ \end{itemize}
+ \end{block}
+%
+% \begin{lstlisting}
+%sdsFocus :: p1 (RWShared p1 r w) -> RWShared p2 r w | iTask p
+%
+%:: SDSNotifyPred p :== p -> Bool
+%:: SDSLensRead p r rs = SDSRead (p -> rs -> MaybeError TaskException r)
+% | SDSReadConst (p -> r)
+%:: SDSLensWrite p w rs ws = SDSWrite (p -> rs -> w -> MaybeError TaskException (Maybe ws))
+% | SDSWriteConst (p -> w -> MaybeError TaskException (Maybe ws))
+%:: SDSLensNotify p w rs = SDSNotify (p -> rs -> w -> SDSNotifyPred p)
+% | SDSNotifyConst (p -> w -> SDSNotifyPred p)
+%
+%sdsLens :: String (p -> ps) (SDSLensRead p r rs) (SDSLensWrite p w rs ws)
+% (SDSLensNotify p w rs) (RWShared ps rs ws) -> RWShared p r w | iTask ps
+% \end{lstlisting}
+\end{frame}