package Ġcom . example . instagram _ clone _ clean _ architecture . feature . profile . domain . use case Ċ Ċ import Ġcom . example . instagram _ clone _ clean _ architecture . feature . profile . domain . repository . Profile Repository Ċ import Ġcom . example . library _ base . domain . exception . Failure Ċ import Ġcom . example . library _ base . domain . user case . UseCase Ċ import Ġcom . example . library _ base . domain . utility . Either Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ Ċ class ĠRemove User Relation UseCase ( ĊĠĠĠ Ġprivate Ġval Ġprofile Repository : ĠProfile Repository , ĊĠĠĠ Ġdefault Dispatcher : ĠCor outine Dispatcher Ġ= ĠDispatch ers . IO Ċ ) Ġ: ĠUse Case < Unit , ĠRemove User Relation UseCase . Param >( default Dispatcher ) Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrun ( params : ĠParam ): ĠEither < Unit , ĠFailure > Ġ= ĊĠĠĠĠĠĠĠ Ġprofile Repository . remove User Relation ( params . follow er , Ġparams . following ) ĊĊĠĠĠ Ġdata Ġclass ĠParam ( val Ġfollow er : ĠString , Ġval Ġfollowing : ĠString ) Ċ }