public IBuildIntention <IImplementationDefinition> GetBuildIntention(IConversionContext context) { var(toBuild, maker) = ImplementationDefinition.Create(); return(new BuildIntention <IImplementationDefinition>(toBuild, () => { maker.Build( TransformerExtensions.Convert <IVerifiableType>(OutputType.GetOrThrow(), context), ContextDefinition.IfIs(x => x.GetValue()).GetOrThrow().Convert(context), ParameterDefinition.IfIs(x => x.GetValue()).GetOrThrow().Convert(context), Scope.Convert(context), MethodBody.Select(x => x.GetOrThrow().ConvertElementOrThrow(context)).ToArray(), StaticInitialzers.Select(x => x.ConvertElementOrThrow(context)).ToArray()); })); }